ooxml-ui 1.18.0 → 1.18.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/README.md +28 -0
- package/dist/{chunk-CPHFMJOU.js → chunk-EVL7GFC7.js} +1 -1
- package/dist/{chunk-GSWCAZQ3.js → chunk-FHO7TEWA.js} +1 -0
- package/dist/{chunk-GILNGII2.js → chunk-MSXUCINT.js} +2 -2
- package/dist/index.js +3 -3
- package/dist/pptx/{chart-3d-view-scene-6YLA75UQ.mjs → chart-3d-view-scene-6LQRJAM3.mjs} +2 -2
- package/dist/pptx/{chart-3d-view-scene-4GGMVQNN.cjs → chart-3d-view-scene-FAKI4QKT.cjs} +38 -38
- package/dist/pptx/{chunk-6ZMCXJ32.mjs → chunk-73OUATE4.mjs} +1 -1
- package/dist/pptx/{chunk-LF2X2AOK.mjs → chunk-75S3RTSS.mjs} +1 -1
- package/dist/pptx/{chunk-OFGZWYKM.mjs → chunk-AUCJIB3M.mjs} +162 -96
- package/dist/pptx/{chunk-HKHO4GDD.cjs → chunk-G3UVZ5FO.cjs} +122 -404
- package/dist/pptx/{chunk-QG2EEFAW.cjs → chunk-LCB46TH2.cjs} +12 -12
- package/dist/pptx/{chunk-NTWYYXB2.mjs → chunk-PIIYTRLE.mjs} +69 -374
- package/dist/pptx/{chunk-6OK5Z2MQ.cjs → chunk-S2Y3VUNC.cjs} +914 -842
- package/dist/pptx/{chunk-TXMIKRYG.cjs → chunk-W7CBPO77.cjs} +1 -1
- package/dist/pptx/dom/chart-pixel-subscriptions.d.ts +7 -0
- package/dist/pptx/dom/chart-pixel-subscriptions.d.ts.map +1 -0
- package/dist/pptx/dom/elements/chart.d.ts.map +1 -1
- package/dist/pptx/dom/elements/shape-filter-defs.d.ts.map +1 -1
- package/dist/pptx/dom/index.cjs +340 -285
- package/dist/pptx/dom/index.d.ts +1 -0
- package/dist/pptx/dom/index.d.ts.map +1 -1
- package/dist/pptx/dom/index.mjs +96 -46
- package/dist/pptx/dom/presentation-rerender.d.ts.map +1 -1
- package/dist/pptx/dom/slide-stage.d.ts +5 -0
- package/dist/pptx/dom/slide-stage.d.ts.map +1 -1
- package/dist/pptx/export/html2canvas-clone.cjs +2 -2
- package/dist/pptx/export/html2canvas-clone.mjs +1 -1
- package/dist/pptx/index.cjs +3202 -3174
- package/dist/pptx/index.mjs +4 -4
- package/dist/pptx/render/chart-axis-range.d.ts +2 -36
- package/dist/pptx/render/chart-axis-range.d.ts.map +1 -1
- package/dist/pptx/render/chart-axis-style.d.ts.map +1 -1
- package/dist/pptx/render/chart-bar3d-face-picture-sample.d.ts +5 -0
- package/dist/pptx/render/chart-bar3d-face-picture-sample.d.ts.map +1 -1
- 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-helpers.d.ts +2 -1
- package/dist/pptx/render/chart-helpers.d.ts.map +1 -1
- package/dist/pptx/render/chart-marker-shape.d.ts +4 -50
- package/dist/pptx/render/chart-marker-shape.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-scale.d.ts +3 -2
- package/dist/pptx/render/chart-view-model-scale.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/pptx/render/connector-markers.d.ts +3 -1
- package/dist/pptx/render/connector-markers.d.ts.map +1 -1
- package/dist/pptx/render/custom-path-markers.d.ts +11 -0
- package/dist/pptx/render/custom-path-markers.d.ts.map +1 -0
- package/dist/pptx/render/image-color-change.d.ts +3 -1
- package/dist/pptx/render/image-color-change.d.ts.map +1 -1
- package/dist/pptx/render/image-duotone-canvas.d.ts +3 -1
- package/dist/pptx/render/image-duotone-canvas.d.ts.map +1 -1
- package/dist/pptx/render/image-native-size.d.ts +3 -1
- package/dist/pptx/render/image-native-size.d.ts.map +1 -1
- package/dist/pptx/render/image-source-effects.d.ts.map +1 -1
- package/dist/pptx/render/index.d.ts +2 -0
- package/dist/pptx/render/index.d.ts.map +1 -1
- package/dist/pptx/render/render-cache-lifecycle.d.ts +10 -0
- package/dist/pptx/render/render-cache-lifecycle.d.ts.map +1 -0
- package/dist/pptx/render/render-cache.d.ts +8 -0
- package/dist/pptx/render/render-cache.d.ts.map +1 -0
- package/dist/pptx/render/shape-geometry-cascade.d.ts.map +1 -1
- package/dist/pptx/render/stroke-outline.d.ts +3 -0
- package/dist/pptx/render/stroke-outline.d.ts.map +1 -1
- package/dist/pptx/render/text-build-spans.d.ts +1 -0
- package/dist/pptx/render/text-build-spans.d.ts.map +1 -1
- package/dist/{presentation-preview-HMEBDYEL.js → presentation-preview-KY56TONW.js} +1 -1
- package/dist/teams.js +2 -2
- package/dist/xlsx.js +4 -4
- package/package.json +11 -11
|
@@ -107,145 +107,8 @@ function reserveLegendSpace(legendPos, rect) {
|
|
|
107
107
|
}
|
|
108
108
|
return rect;
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
// src/pptx/render/chart-marker-shape.ts
|
|
112
|
-
var DEFAULT_MARKER_OUTLINE_PT = 0.75;
|
|
113
|
-
function markerOutline(marker) {
|
|
114
|
-
if (!marker.stroke) {
|
|
115
|
-
return {};
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
stroke: marker.stroke,
|
|
119
|
-
strokeWidth: (marker.strokeWidth ?? DEFAULT_MARKER_OUTLINE_PT) * CHART_PX_PER_PT
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
var AUTOMATIC_MARKER_CYCLE = [
|
|
123
|
-
"diamond",
|
|
124
|
-
"square",
|
|
125
|
-
"triangle",
|
|
126
|
-
"x",
|
|
127
|
-
"star",
|
|
128
|
-
"circle",
|
|
129
|
-
"plus",
|
|
130
|
-
"dot",
|
|
131
|
-
"dash"
|
|
132
|
-
];
|
|
133
|
-
function automaticMarkerSymbol(seriesIdx) {
|
|
134
|
-
const length = AUTOMATIC_MARKER_CYCLE.length;
|
|
135
|
-
const normalized = (seriesIdx % length + length) % length;
|
|
136
|
-
return AUTOMATIC_MARKER_CYCLE[normalized];
|
|
137
|
-
}
|
|
138
|
-
function markerRadius(size, defaultRadius) {
|
|
139
|
-
if (size === void 0 || !Number.isFinite(size) || size <= 0) {
|
|
140
|
-
return defaultRadius;
|
|
141
|
-
}
|
|
142
|
-
return size / 2;
|
|
143
|
-
}
|
|
144
|
-
function polygonPoints(vertices) {
|
|
145
|
-
return vertices.map(([x, y]) => `${x.toFixed(2)},${y.toFixed(2)}`).join(" ");
|
|
146
|
-
}
|
|
147
|
-
function starVertices(cx, cy, r) {
|
|
148
|
-
const inner = r * 0.5;
|
|
149
|
-
const out = [];
|
|
150
|
-
for (let i = 0; i < 10; i++) {
|
|
151
|
-
const radius = i % 2 === 0 ? r : inner;
|
|
152
|
-
const angle = -Math.PI / 2 + Math.PI * i / 5;
|
|
153
|
-
out.push([cx + radius * Math.cos(angle), cy + radius * Math.sin(angle)]);
|
|
154
|
-
}
|
|
155
|
-
return out;
|
|
156
|
-
}
|
|
157
|
-
function rectPolygon(x, y, w, h) {
|
|
158
|
-
return polygonPoints([
|
|
159
|
-
[x, y],
|
|
160
|
-
[x + w, y],
|
|
161
|
-
[x + w, y + h],
|
|
162
|
-
[x, y + h]
|
|
163
|
-
]);
|
|
164
|
-
}
|
|
165
110
|
function buildMarkerPrimitive(input) {
|
|
166
|
-
|
|
167
|
-
if (symbol === "none") {
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
const r = markerRadius(input.size, input.defaultRadius);
|
|
171
|
-
const outline = input.stroke ? {
|
|
172
|
-
stroke: input.stroke,
|
|
173
|
-
strokeWidth: input.strokeWidth ?? DEFAULT_MARKER_OUTLINE_PT * CHART_PX_PER_PT
|
|
174
|
-
} : void 0;
|
|
175
|
-
const polygonStroke = outline ?? { stroke: fill, strokeWidth: 0 };
|
|
176
|
-
const lineStroke = input.stroke ?? fill;
|
|
177
|
-
switch (symbol) {
|
|
178
|
-
case "square":
|
|
179
|
-
case "dash": {
|
|
180
|
-
const h = symbol === "dash" ? r * 0.64 : r * 2;
|
|
181
|
-
const y = cy - h / 2;
|
|
182
|
-
if (outline) {
|
|
183
|
-
return {
|
|
184
|
-
kind: "polygon",
|
|
185
|
-
points: rectPolygon(cx - r, y, r * 2, h),
|
|
186
|
-
fill,
|
|
187
|
-
...outline,
|
|
188
|
-
part
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
return { kind: "rect", x: cx - r, y, w: r * 2, h, fill, part };
|
|
192
|
-
}
|
|
193
|
-
case "diamond":
|
|
194
|
-
return {
|
|
195
|
-
kind: "polygon",
|
|
196
|
-
points: polygonPoints([
|
|
197
|
-
[cx, cy - r],
|
|
198
|
-
[cx + r, cy],
|
|
199
|
-
[cx, cy + r],
|
|
200
|
-
[cx - r, cy]
|
|
201
|
-
]),
|
|
202
|
-
fill,
|
|
203
|
-
...polygonStroke,
|
|
204
|
-
part
|
|
205
|
-
};
|
|
206
|
-
case "triangle":
|
|
207
|
-
return {
|
|
208
|
-
kind: "polygon",
|
|
209
|
-
points: polygonPoints([
|
|
210
|
-
[cx, cy - r],
|
|
211
|
-
[cx + r * 0.9, cy + r * 0.75],
|
|
212
|
-
[cx - r * 0.9, cy + r * 0.75]
|
|
213
|
-
]),
|
|
214
|
-
fill,
|
|
215
|
-
...polygonStroke,
|
|
216
|
-
part
|
|
217
|
-
};
|
|
218
|
-
case "star":
|
|
219
|
-
return {
|
|
220
|
-
kind: "polygon",
|
|
221
|
-
points: polygonPoints(starVertices(cx, cy, r)),
|
|
222
|
-
fill,
|
|
223
|
-
...polygonStroke,
|
|
224
|
-
part
|
|
225
|
-
};
|
|
226
|
-
case "plus":
|
|
227
|
-
return {
|
|
228
|
-
kind: "path",
|
|
229
|
-
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)}`,
|
|
230
|
-
fill: "none",
|
|
231
|
-
stroke: lineStroke,
|
|
232
|
-
strokeWidth: Math.max(1, r * 0.4),
|
|
233
|
-
part
|
|
234
|
-
};
|
|
235
|
-
case "x":
|
|
236
|
-
return {
|
|
237
|
-
kind: "path",
|
|
238
|
-
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)}`,
|
|
239
|
-
fill: "none",
|
|
240
|
-
stroke: lineStroke,
|
|
241
|
-
strokeWidth: Math.max(1, r * 0.4),
|
|
242
|
-
part
|
|
243
|
-
};
|
|
244
|
-
case "dot":
|
|
245
|
-
return { kind: "circle", cx, cy, r: Math.max(r * 0.6, 1), fill, part, ...outline };
|
|
246
|
-
default:
|
|
247
|
-
return { kind: "circle", cx, cy, r, fill, part, ...outline };
|
|
248
|
-
}
|
|
111
|
+
return chart.buildMarkerPrimitive(input);
|
|
249
112
|
}
|
|
250
113
|
|
|
251
114
|
// src/pptx/render/chart-datapoint-style.ts
|
|
@@ -267,7 +130,7 @@ function resolveDataPointMarker(series, pointIndex, seriesPosition = 0) {
|
|
|
267
130
|
const point = findDataPoint(series, pointIndex)?.marker;
|
|
268
131
|
const hasMarker = point !== void 0 || series.marker !== void 0;
|
|
269
132
|
const rawSymbol = point?.symbol ?? series.marker?.symbol;
|
|
270
|
-
const symbol = hasMarker && (rawSymbol === void 0 || rawSymbol === "auto") ? automaticMarkerSymbol(series.idx ?? seriesPosition) : rawSymbol;
|
|
133
|
+
const symbol = hasMarker && (rawSymbol === void 0 || rawSymbol === "auto") ? chart.automaticMarkerSymbol(series.idx ?? seriesPosition) : rawSymbol;
|
|
271
134
|
return {
|
|
272
135
|
symbol,
|
|
273
136
|
size: point?.size ?? series.marker?.size,
|
|
@@ -1269,7 +1132,7 @@ function buildLineLegendSwatch(series, color, seriesPosition = 0) {
|
|
|
1269
1132
|
cy: SWATCH_CENTER_Y,
|
|
1270
1133
|
fill: resolved.fill ?? color,
|
|
1271
1134
|
defaultRadius: LEGEND_MARKER_RADIUS,
|
|
1272
|
-
...markerOutline(resolved)
|
|
1135
|
+
...chart.markerOutline(resolved)
|
|
1273
1136
|
});
|
|
1274
1137
|
if (marker) {
|
|
1275
1138
|
primitives.push(marker);
|
|
@@ -1508,18 +1371,7 @@ function paletteColor(index, styleId, colorPalette) {
|
|
|
1508
1371
|
const palette = chart.getChartStylePalette(styleId);
|
|
1509
1372
|
return palette[index % palette.length];
|
|
1510
1373
|
}
|
|
1511
|
-
|
|
1512
|
-
const allValues = series.flatMap((s) => s.values);
|
|
1513
|
-
if (allValues.length === 0) {
|
|
1514
|
-
return { min: 0, max: 1, span: 1 };
|
|
1515
|
-
}
|
|
1516
|
-
const { min, max, majorUnit } = chart.niceValueAxisBounds(
|
|
1517
|
-
Math.min(...allValues),
|
|
1518
|
-
Math.max(...allValues),
|
|
1519
|
-
plotHeightPx !== void 0 ? chart.axisTargetIntervals(plotHeightPx) : void 0
|
|
1520
|
-
);
|
|
1521
|
-
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
1522
|
-
}
|
|
1374
|
+
var computeValueRange = chart.computeAxisValueRange;
|
|
1523
1375
|
function valueToY(val, range, topY, bottomY) {
|
|
1524
1376
|
const usable = bottomY - topY;
|
|
1525
1377
|
let ratio;
|
|
@@ -1599,50 +1451,8 @@ function paletteColor2(index, colorPalette) {
|
|
|
1599
1451
|
function seriesColor2(series, index, colorPalette) {
|
|
1600
1452
|
return series.color ?? series.marker?.spPr?.fillColor ?? paletteColor2(index, colorPalette);
|
|
1601
1453
|
}
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
for (const item of series) {
|
|
1605
|
-
for (const value of item.values) {
|
|
1606
|
-
if (value < dataMin) {
|
|
1607
|
-
dataMin = value;
|
|
1608
|
-
}
|
|
1609
|
-
if (value > dataMax) {
|
|
1610
|
-
dataMax = value;
|
|
1611
|
-
}
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
if (dataMin === Number.POSITIVE_INFINITY) {
|
|
1615
|
-
return { min: 0, max: 1, span: 1 };
|
|
1616
|
-
}
|
|
1617
|
-
const { min, max, majorUnit } = chart.niceValueAxisBounds(
|
|
1618
|
-
dataMin,
|
|
1619
|
-
dataMax,
|
|
1620
|
-
plotHeightPx !== void 0 ? chart.axisTargetIntervals(plotHeightPx) : void 0
|
|
1621
|
-
);
|
|
1622
|
-
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
1623
|
-
}
|
|
1624
|
-
function computeStackedValueRange(series, catCount, plotHeightPx) {
|
|
1625
|
-
let maxSum = 0, minSum = 0;
|
|
1626
|
-
for (let ci = 0; ci < catCount; ci++) {
|
|
1627
|
-
let pos = 0, neg = 0;
|
|
1628
|
-
for (const s of series) {
|
|
1629
|
-
const v = s.values[ci] ?? 0;
|
|
1630
|
-
if (v >= 0) {
|
|
1631
|
-
pos += v;
|
|
1632
|
-
} else {
|
|
1633
|
-
neg += v;
|
|
1634
|
-
}
|
|
1635
|
-
}
|
|
1636
|
-
maxSum = Math.max(maxSum, pos);
|
|
1637
|
-
minSum = Math.min(minSum, neg);
|
|
1638
|
-
}
|
|
1639
|
-
const { min, max, majorUnit } = chart.niceValueAxisBounds(
|
|
1640
|
-
Math.min(minSum, 0),
|
|
1641
|
-
Math.max(maxSum, 0),
|
|
1642
|
-
plotHeightPx !== void 0 ? chart.axisTargetIntervals(plotHeightPx) : void 0
|
|
1643
|
-
);
|
|
1644
|
-
return { min, max, span: Math.max(max - min, Number.EPSILON), majorUnit };
|
|
1645
|
-
}
|
|
1454
|
+
var computeValueRange2 = chart.computeAxisValueRange;
|
|
1455
|
+
var computeStackedValueRange = chart.computeAxisStackedValueRange;
|
|
1646
1456
|
function valueToY2(val, range, topY, bottomY) {
|
|
1647
1457
|
const usable = bottomY - topY;
|
|
1648
1458
|
let ratio;
|
|
@@ -2963,10 +2773,50 @@ function build3DSurfacePanels(prims, surfaces, depth) {
|
|
|
2963
2773
|
);
|
|
2964
2774
|
return [backWall, floor, sideWall].filter((p) => p !== void 0);
|
|
2965
2775
|
}
|
|
2776
|
+
|
|
2777
|
+
// src/pptx/render/render-cache.ts
|
|
2778
|
+
var RENDER_CACHE_MAX_BYTES = 8 * 1024 * 1024;
|
|
2779
|
+
var epoch = 0;
|
|
2780
|
+
function getPptxRenderCacheEpoch() {
|
|
2781
|
+
return epoch;
|
|
2782
|
+
}
|
|
2783
|
+
function invalidatePptxRenderCacheEpoch() {
|
|
2784
|
+
epoch++;
|
|
2785
|
+
}
|
|
2786
|
+
function setBoundedRenderCache(cache, key, value, maxEntries) {
|
|
2787
|
+
const bytesOf = (entryKey, entryValue) => (entryKey.length + (typeof entryValue === "string" ? entryValue.length : 0)) * 2;
|
|
2788
|
+
cache.delete(key);
|
|
2789
|
+
if (bytesOf(key, value) > RENDER_CACHE_MAX_BYTES) return;
|
|
2790
|
+
cache.set(key, value);
|
|
2791
|
+
let bytes = 0;
|
|
2792
|
+
for (const [entryKey, entryValue] of cache) bytes += bytesOf(entryKey, entryValue);
|
|
2793
|
+
while (cache.size > maxEntries || bytes > RENDER_CACHE_MAX_BYTES) {
|
|
2794
|
+
const first = cache.entries().next().value;
|
|
2795
|
+
if (!first) break;
|
|
2796
|
+
bytes -= bytesOf(first[0], first[1]);
|
|
2797
|
+
cache.delete(first[0]);
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2801
|
+
// src/pptx/render/chart-bar3d-face-picture-sample.ts
|
|
2802
|
+
var CACHE_MAX = 128;
|
|
2803
|
+
var cacheEpoch = 0;
|
|
2804
|
+
var cacheBytes = 0;
|
|
2805
|
+
var reservedBytes = 0;
|
|
2806
|
+
var COLOR_BYTES = 7 * 2;
|
|
2966
2807
|
var sampleCache = /* @__PURE__ */ new Map();
|
|
2967
2808
|
var inFlight = /* @__PURE__ */ new Map();
|
|
2968
2809
|
var listeners = /* @__PURE__ */ new Set();
|
|
2969
2810
|
var sampleVersion = 0;
|
|
2811
|
+
function rememberSample(imageUrl, color) {
|
|
2812
|
+
if (sampleCache.has(imageUrl) || sampleCache.size + inFlight.size >= CACHE_MAX) return;
|
|
2813
|
+
const keyBytes = imageUrl.length * 2;
|
|
2814
|
+
const remaining = RENDER_CACHE_MAX_BYTES - cacheBytes - reservedBytes;
|
|
2815
|
+
if (keyBytes > remaining) return;
|
|
2816
|
+
const retained = keyBytes + (color?.length ?? 0) * 2 <= remaining ? color : void 0;
|
|
2817
|
+
sampleCache.set(imageUrl, retained);
|
|
2818
|
+
cacheBytes += keyBytes + (retained?.length ?? 0) * 2;
|
|
2819
|
+
}
|
|
2970
2820
|
function getCachedBarFacePicturePixelColor(imageUrl) {
|
|
2971
2821
|
return sampleCache.get(imageUrl);
|
|
2972
2822
|
}
|
|
@@ -3015,16 +2865,17 @@ function decodeFirstPixelColor(imageUrl) {
|
|
|
3015
2865
|
});
|
|
3016
2866
|
}
|
|
3017
2867
|
function ensureBarFacePicturePixelSampled(imageUrl, sampler = decodeFirstPixelColor) {
|
|
3018
|
-
if (sampleCache.has(imageUrl) || inFlight.has(imageUrl))
|
|
2868
|
+
if (sampleCache.has(imageUrl) || inFlight.has(imageUrl)) return;
|
|
2869
|
+
const reservation = imageUrl.length * 2 + COLOR_BYTES;
|
|
2870
|
+
if (sampleCache.size + inFlight.size >= CACHE_MAX || cacheBytes + reservedBytes + reservation > RENDER_CACHE_MAX_BYTES)
|
|
3019
2871
|
return;
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
}).catch(() => {
|
|
3025
|
-
sampleCache.set(imageUrl, void 0);
|
|
3026
|
-
}).finally(() => {
|
|
2872
|
+
const epoch2 = cacheEpoch;
|
|
2873
|
+
reservedBytes += reservation;
|
|
2874
|
+
const pending = Promise.resolve().then(() => sampler(imageUrl)).catch(() => void 0).then((color) => {
|
|
2875
|
+
if (epoch2 !== cacheEpoch || inFlight.get(imageUrl) !== pending) return;
|
|
3027
2876
|
inFlight.delete(imageUrl);
|
|
2877
|
+
reservedBytes -= reservation;
|
|
2878
|
+
rememberSample(imageUrl, color);
|
|
3028
2879
|
notifyBarFacePicturePixelListeners();
|
|
3029
2880
|
});
|
|
3030
2881
|
inFlight.set(imageUrl, pending);
|
|
@@ -3050,15 +2901,21 @@ function resolveBarFacePicturePixelColor(imageUrl) {
|
|
|
3050
2901
|
}
|
|
3051
2902
|
const sync = trySampleFirstPixelColorSync(imageUrl);
|
|
3052
2903
|
if (sync !== void 0) {
|
|
3053
|
-
|
|
2904
|
+
rememberSample(imageUrl, sync);
|
|
3054
2905
|
return sync;
|
|
3055
2906
|
}
|
|
3056
2907
|
ensureBarFacePicturePixelSampled(imageUrl);
|
|
3057
2908
|
return void 0;
|
|
3058
2909
|
}
|
|
3059
|
-
function
|
|
2910
|
+
function clearBarFacePicturePixelCache() {
|
|
2911
|
+
cacheEpoch++;
|
|
3060
2912
|
sampleCache.clear();
|
|
3061
2913
|
inFlight.clear();
|
|
2914
|
+
cacheBytes = 0;
|
|
2915
|
+
reservedBytes = 0;
|
|
2916
|
+
}
|
|
2917
|
+
function resetBarFacePicturePixelCacheForTests() {
|
|
2918
|
+
clearBarFacePicturePixelCache();
|
|
3062
2919
|
listeners.clear();
|
|
3063
2920
|
sampleVersion = 0;
|
|
3064
2921
|
}
|
|
@@ -3453,155 +3310,6 @@ function resolveChartTitleText(chartData) {
|
|
|
3453
3310
|
return chart.resolveAutoTitleText(autoTitleInput(chartData));
|
|
3454
3311
|
}
|
|
3455
3312
|
|
|
3456
|
-
// src/pptx/render/chart-axis-range.ts
|
|
3457
|
-
var LOG_EXPONENT_TOLERANCE = 1e-12;
|
|
3458
|
-
function computeLogValueRange(series, logBase) {
|
|
3459
|
-
const allValues = series.flatMap((item) => item.values).filter((value) => value > 0);
|
|
3460
|
-
if (allValues.length === 0) {
|
|
3461
|
-
return { min: 1, max: logBase, span: 1, logScale: true, logBase };
|
|
3462
|
-
}
|
|
3463
|
-
const dataMin = Math.min(...allValues);
|
|
3464
|
-
const dataMax = Math.max(...allValues);
|
|
3465
|
-
const logMin = Math.floor(Math.log(dataMin) / Math.log(logBase));
|
|
3466
|
-
const logMax = Math.ceil(Math.log(dataMax) / Math.log(logBase));
|
|
3467
|
-
const min = logBase ** logMin;
|
|
3468
|
-
const max = logBase ** Math.max(logMax, logMin + 1);
|
|
3469
|
-
return {
|
|
3470
|
-
min,
|
|
3471
|
-
max,
|
|
3472
|
-
span: Math.max(Math.log(max) / Math.log(logBase) - Math.log(min) / Math.log(logBase), 1),
|
|
3473
|
-
logScale: true,
|
|
3474
|
-
logBase
|
|
3475
|
-
};
|
|
3476
|
-
}
|
|
3477
|
-
function computeValueRangeForAxis(series, axis, plotHeightPx) {
|
|
3478
|
-
const requestedLogBase = axis?.logBase ?? 10;
|
|
3479
|
-
const logBase = axis?.logScale && Number.isFinite(requestedLogBase) && requestedLogBase > 1 ? requestedLogBase : axis?.logScale ? 10 : void 0;
|
|
3480
|
-
const automatic = logBase ? computeLogValueRange(series, logBase) : computeValueRange(series, plotHeightPx);
|
|
3481
|
-
return withAxisBounds(automatic, axis, logBase);
|
|
3482
|
-
}
|
|
3483
|
-
function computeStackedValueRangeForAxis(series, catCount, axis, isPercent, plotSizePx) {
|
|
3484
|
-
if (isPercent) {
|
|
3485
|
-
return {
|
|
3486
|
-
...percentStackedRange(series, catCount, plotSizePx),
|
|
3487
|
-
...axis?.orientation === "maxMin" ? { reverseOrder: true } : {}
|
|
3488
|
-
};
|
|
3489
|
-
}
|
|
3490
|
-
return withAxisBounds(computeStackedValueRange(series, catCount, plotSizePx), axis);
|
|
3491
|
-
}
|
|
3492
|
-
function percentStackedRange(series, catCount, plotSizePx) {
|
|
3493
|
-
const shares = series.map((entry) => ({
|
|
3494
|
-
...entry,
|
|
3495
|
-
values: Array.from({ length: catCount }, (_, ci) => {
|
|
3496
|
-
const total = series.reduce((sum, s) => sum + Math.abs(s.values[ci] ?? 0), 0);
|
|
3497
|
-
return total > 0 ? (entry.values[ci] ?? 0) / total * 100 : 0;
|
|
3498
|
-
})
|
|
3499
|
-
}));
|
|
3500
|
-
const automatic = computeStackedValueRange(shares, catCount, plotSizePx);
|
|
3501
|
-
if (automatic.min >= 0) {
|
|
3502
|
-
return { min: 0, max: 100, span: 100 };
|
|
3503
|
-
}
|
|
3504
|
-
const min = Math.max(automatic.min, -100);
|
|
3505
|
-
const unit = automatic.majorUnit;
|
|
3506
|
-
return {
|
|
3507
|
-
min,
|
|
3508
|
-
max: 100,
|
|
3509
|
-
span: 100 - min,
|
|
3510
|
-
...unit !== void 0 && 100 % unit === 0 && min % unit === 0 ? { majorUnit: unit } : {}
|
|
3511
|
-
};
|
|
3512
|
-
}
|
|
3513
|
-
function withAxisBounds(automatic, axis, logBase) {
|
|
3514
|
-
const validMin = typeof axis?.min === "number" && Number.isFinite(axis.min) && (!logBase || axis.min > 0) ? axis.min : void 0;
|
|
3515
|
-
const validMax = typeof axis?.max === "number" && Number.isFinite(axis.max) && (!logBase || axis.max > 0) ? axis.max : void 0;
|
|
3516
|
-
const min = validMin ?? automatic.min;
|
|
3517
|
-
let max = validMax ?? automatic.max;
|
|
3518
|
-
const majorUnit = validMin === void 0 && validMax === void 0 ? automatic.majorUnit : void 0;
|
|
3519
|
-
if (max <= min) {
|
|
3520
|
-
max = logBase ? min * logBase : min + 1;
|
|
3521
|
-
}
|
|
3522
|
-
const span = logBase ? Math.log(max) / Math.log(logBase) - Math.log(min) / Math.log(logBase) : max - min;
|
|
3523
|
-
return {
|
|
3524
|
-
min,
|
|
3525
|
-
max,
|
|
3526
|
-
span: Math.max(span, Number.EPSILON),
|
|
3527
|
-
...majorUnit !== void 0 ? { majorUnit } : {},
|
|
3528
|
-
...logBase ? { logScale: true, logBase } : {},
|
|
3529
|
-
...axis?.orientation === "maxMin" ? { reverseOrder: true } : {}
|
|
3530
|
-
};
|
|
3531
|
-
}
|
|
3532
|
-
function valueToYLog(val, range, topY, bottomY) {
|
|
3533
|
-
const base = range.logBase ?? 10;
|
|
3534
|
-
const logValue = Math.log(Math.max(val, range.min)) / Math.log(base);
|
|
3535
|
-
const logMin = Math.log(range.min) / Math.log(base);
|
|
3536
|
-
const ratio = (logValue - logMin) / range.span;
|
|
3537
|
-
return range.reverseOrder ? topY + ratio * (bottomY - topY) : bottomY - ratio * (bottomY - topY);
|
|
3538
|
-
}
|
|
3539
|
-
function generateLogTicks(range) {
|
|
3540
|
-
if (!range.logScale || !range.logBase) {
|
|
3541
|
-
return [];
|
|
3542
|
-
}
|
|
3543
|
-
const base = range.logBase;
|
|
3544
|
-
const logMin = Math.log(range.min) / Math.log(base);
|
|
3545
|
-
const logMax = Math.log(range.max) / Math.log(base);
|
|
3546
|
-
const firstExponent = Math.ceil(logMin - LOG_EXPONENT_TOLERANCE);
|
|
3547
|
-
const lastExponent = Math.floor(logMax + LOG_EXPONENT_TOLERANCE);
|
|
3548
|
-
if (lastExponent < firstExponent) {
|
|
3549
|
-
return range.min === range.max ? [range.min] : [range.min, range.max];
|
|
3550
|
-
}
|
|
3551
|
-
return Array.from(
|
|
3552
|
-
{ length: lastExponent - firstExponent + 1 },
|
|
3553
|
-
(_unused, index) => base ** (firstExponent + index)
|
|
3554
|
-
);
|
|
3555
|
-
}
|
|
3556
|
-
function generateIntervalTicks(range, unit) {
|
|
3557
|
-
if (!Number.isFinite(unit) || unit <= 0 || range.logScale) {
|
|
3558
|
-
return [];
|
|
3559
|
-
}
|
|
3560
|
-
const tolerance = Math.max(1, Math.abs(range.min), Math.abs(range.max)) * 1e-12;
|
|
3561
|
-
const first = Math.ceil((range.min - tolerance) / unit);
|
|
3562
|
-
const last = Math.floor((range.max + tolerance) / unit);
|
|
3563
|
-
const count = Math.min(Math.max(last - first + 1, 0), 2e3);
|
|
3564
|
-
return Array.from({ length: count }, (_, index) => (first + index) * unit);
|
|
3565
|
-
}
|
|
3566
|
-
function generateAxisTicks(range, axis, defaultIntervals) {
|
|
3567
|
-
if (range.logScale && range.logBase) {
|
|
3568
|
-
return generateLogTicks(range);
|
|
3569
|
-
}
|
|
3570
|
-
const explicit = generateIntervalTicks(range, axis?.majorUnit ?? 0);
|
|
3571
|
-
if (explicit.length > 0) {
|
|
3572
|
-
return explicit;
|
|
3573
|
-
}
|
|
3574
|
-
const automatic = generateIntervalTicks(range, range.majorUnit ?? 0);
|
|
3575
|
-
if (automatic.length > 0) {
|
|
3576
|
-
return automatic;
|
|
3577
|
-
}
|
|
3578
|
-
return Array.from(
|
|
3579
|
-
{ length: defaultIntervals + 1 },
|
|
3580
|
-
(_, index) => range.min + range.span / defaultIntervals * index
|
|
3581
|
-
);
|
|
3582
|
-
}
|
|
3583
|
-
function generateMinorAxisTicks(range, axis) {
|
|
3584
|
-
const minor = generateIntervalTicks(range, axis?.minorUnit ?? 0);
|
|
3585
|
-
if (minor.length === 0) {
|
|
3586
|
-
return [];
|
|
3587
|
-
}
|
|
3588
|
-
const majorUnit = axis?.majorUnit;
|
|
3589
|
-
if (!majorUnit || !Number.isFinite(majorUnit) || majorUnit <= 0) {
|
|
3590
|
-
return minor;
|
|
3591
|
-
}
|
|
3592
|
-
const tolerance = Math.max(1, Math.abs(range.min), Math.abs(range.max)) * 1e-10;
|
|
3593
|
-
return minor.filter(
|
|
3594
|
-
(value) => Math.abs(value / majorUnit - Math.round(value / majorUnit)) > tolerance
|
|
3595
|
-
);
|
|
3596
|
-
}
|
|
3597
|
-
function findLogAxis(axes) {
|
|
3598
|
-
return axes?.find((axis) => axis.axisType === "valAx" && axis.logScale);
|
|
3599
|
-
}
|
|
3600
|
-
function computeValueRangeForChart(series, axes, plotHeightPx) {
|
|
3601
|
-
const primaryAxis = axes?.find((axis) => axis.axisType === "valAx" && axis.axPos === "l") ?? axes?.find((axis) => axis.axisType === "valAx" && axis.axPos !== "r");
|
|
3602
|
-
return computeValueRangeForAxis(series, primaryAxis, plotHeightPx);
|
|
3603
|
-
}
|
|
3604
|
-
|
|
3605
3313
|
// src/pptx/render/chart-axis.ts
|
|
3606
3314
|
var DISPLAY_UNIT_DIVISORS = {
|
|
3607
3315
|
hundreds: 100,
|
|
@@ -4224,22 +3932,7 @@ function polylineRunsPath(runs) {
|
|
|
4224
3932
|
(run) => run.map((p, i) => `${i === 0 ? "M" : "L"}${p.x.toFixed(2)},${p.y.toFixed(2)}`).join(" ")
|
|
4225
3933
|
).join(" ");
|
|
4226
3934
|
}
|
|
4227
|
-
|
|
4228
|
-
// src/pptx/render/chart-axis-style.ts
|
|
4229
3935
|
var DEFAULT_COLOR = "#64748b";
|
|
4230
|
-
function dashArray(style, width) {
|
|
4231
|
-
if (!style || style === "solid") {
|
|
4232
|
-
return void 0;
|
|
4233
|
-
}
|
|
4234
|
-
const unit = Math.max(width, 1);
|
|
4235
|
-
if (style === "dot" || style === "sysDot") {
|
|
4236
|
-
return `${unit} ${unit * 2}`;
|
|
4237
|
-
}
|
|
4238
|
-
if (style === "lgDash") {
|
|
4239
|
-
return `${unit * 6} ${unit * 3}`;
|
|
4240
|
-
}
|
|
4241
|
-
return `${unit * 3} ${unit * 2}`;
|
|
4242
|
-
}
|
|
4243
3936
|
function chartAxisTextStyle(axis, defaultFontSizePx = DEFAULT_CHART_TEXT_PX) {
|
|
4244
3937
|
return {
|
|
4245
3938
|
fontSize: axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : defaultFontSizePx,
|
|
@@ -4270,7 +3963,7 @@ function chartLineStyle(shape, fallbackColor = DEFAULT_COLOR, fallbackWidth = 1)
|
|
|
4270
3963
|
return {
|
|
4271
3964
|
stroke: shape?.strokeColor ?? fallbackColor,
|
|
4272
3965
|
strokeWidth,
|
|
4273
|
-
...
|
|
3966
|
+
...chart.chartLineDashArray(shape?.strokeDashStyle, strokeWidth) ? { dashArray: chart.chartLineDashArray(shape?.strokeDashStyle, strokeWidth) } : {}
|
|
4274
3967
|
};
|
|
4275
3968
|
}
|
|
4276
3969
|
|
|
@@ -4552,13 +4245,13 @@ function buildScatterXAxisPlan(chartData, layout) {
|
|
|
4552
4245
|
...series,
|
|
4553
4246
|
values: [...perSeriesX[index] ?? []]
|
|
4554
4247
|
}));
|
|
4555
|
-
const range = computeValueRangeForAxis(pseudoSeries, xAxis, layout.plotWidth);
|
|
4248
|
+
const range = chart.computeValueRangeForAxis(pseudoSeries, xAxis, layout.plotWidth);
|
|
4556
4249
|
const toPixelX = (value) => valueToY2(value, range, layout.plotRight, layout.plotLeft);
|
|
4557
4250
|
const showGridlines = axisShowsMajorGridlines(xAxis) && !isNoLine(xAxis?.majorGridlinesSpPr);
|
|
4558
4251
|
const gridlines = [];
|
|
4559
4252
|
const labels = [];
|
|
4560
4253
|
const textStyle = chartAxisTextStyle(xAxis, DEFAULT_CHART_TEXT_PX);
|
|
4561
|
-
for (const tickValue of generateAxisTicks(range, xAxis, TICK_COUNT)) {
|
|
4254
|
+
for (const tickValue of chart.generateAxisTicks(range, xAxis, TICK_COUNT)) {
|
|
4562
4255
|
const x = toPixelX(tickValue);
|
|
4563
4256
|
if (showGridlines) {
|
|
4564
4257
|
gridlines.push(
|
|
@@ -4608,7 +4301,7 @@ function pushMarker(out, series, pointIndex, cx, cy, fill, defaultRadius, part,
|
|
|
4608
4301
|
fill: marker.fill ?? fill,
|
|
4609
4302
|
defaultRadius,
|
|
4610
4303
|
part,
|
|
4611
|
-
...markerOutline(marker)
|
|
4304
|
+
...chart.markerOutline(marker)
|
|
4612
4305
|
});
|
|
4613
4306
|
if (!m) {
|
|
4614
4307
|
return;
|
|
@@ -5009,8 +4702,8 @@ function formatTick(val, axis) {
|
|
|
5009
4702
|
function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft, showMajorGridlines = true) {
|
|
5010
4703
|
const gridlines = [];
|
|
5011
4704
|
const axisLabels = [];
|
|
5012
|
-
const tickVals = generateAxisTicks(range, axis, TICK_COUNT2);
|
|
5013
|
-
const minorTickVals = generateMinorAxisTicks(range, axis);
|
|
4705
|
+
const tickVals = chart.generateAxisTicks(range, axis, TICK_COUNT2);
|
|
4706
|
+
const minorTickVals = chart.generateMinorAxisTicks(range, axis);
|
|
5014
4707
|
const axisLine = buildVerticalAxisLine(axis, axisX, layout);
|
|
5015
4708
|
const drawMajorGridlines = showMajorGridlines && !isNoLine(axis?.majorGridlinesSpPr);
|
|
5016
4709
|
if (axisLine) {
|
|
@@ -5106,8 +4799,8 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight, showM
|
|
|
5106
4799
|
if (axisLine) {
|
|
5107
4800
|
gridlines.push(axisLine);
|
|
5108
4801
|
}
|
|
5109
|
-
const tickValues = generateAxisTicks(range, axis, TICK_COUNT2 - 1);
|
|
5110
|
-
const minorTickValues = generateMinorAxisTicks(range, axis);
|
|
4802
|
+
const tickValues = chart.generateAxisTicks(range, axis, TICK_COUNT2 - 1);
|
|
4803
|
+
const minorTickValues = chart.generateMinorAxisTicks(range, axis);
|
|
5111
4804
|
if (axis?.minorGridlines && !isNoLine(axis.minorGridlinesSpPr)) {
|
|
5112
4805
|
for (const val of minorTickValues) {
|
|
5113
4806
|
const y = valueToY2(val, range, layout.plotTop, layout.plotBottom);
|
|
@@ -6115,8 +5808,8 @@ function formatDate(date, unit, format) {
|
|
|
6115
5808
|
// src/pptx/render/chart-date-axis.ts
|
|
6116
5809
|
var DAY_MS = 864e5;
|
|
6117
5810
|
function excelSerialToDate(serial5, date1904 = false) {
|
|
6118
|
-
const
|
|
6119
|
-
return new Date(
|
|
5811
|
+
const epoch2 = date1904 ? Date.UTC(1904, 0, 1) : Date.UTC(1899, 11, serial5 < 60 ? 31 : 30);
|
|
5812
|
+
return new Date(epoch2 + serial5 * DAY_MS);
|
|
6120
5813
|
}
|
|
6121
5814
|
function primaryDateAxis(chartData) {
|
|
6122
5815
|
return chartData.axes?.find((axis) => axis.axisType === "dateAx" && axis.axPos !== "t") ?? chartData.axes?.find((axis) => axis.axisType === "dateAx");
|
|
@@ -6499,7 +6192,7 @@ function barFill(chartData, series, seriesIndex, pointIndex) {
|
|
|
6499
6192
|
function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
6500
6193
|
const layout = computePlotLayout(element.width, element.height, chartData, true, {
|
|
6501
6194
|
leftCategoryLabelWidth: widestCategoryLabelWidth(categoryLabels, DEFAULT_CHART_TEXT_PX)
|
|
6502
|
-
}), catCount = Math.max(categoryLabels.length, 1), series = chartData.series, grouping = chartData.grouping ?? "clustered", isStacked = grouping === "stacked" || grouping === "percentStacked", isPercent = grouping === "percentStacked", valueAxis = primaryValueAxis(chartData.axes), range = isStacked ? computeStackedValueRangeForAxis(series, catCount, valueAxis, isPercent, layout.plotWidth) : computeValueRangeForChart(series, chartData.axes, layout.plotWidth), { gridlines, axisLabels } = buildTransposedValueAxis(
|
|
6195
|
+
}), catCount = Math.max(categoryLabels.length, 1), series = chartData.series, grouping = chartData.grouping ?? "clustered", isStacked = grouping === "stacked" || grouping === "percentStacked", isPercent = grouping === "percentStacked", valueAxis = primaryValueAxis(chartData.axes), range = isStacked ? chart.computeStackedValueRangeForAxis(series, catCount, valueAxis, isPercent, layout.plotWidth) : chart.computeValueRangeForChart(series, chartData.axes, layout.plotWidth), { gridlines, axisLabels } = buildTransposedValueAxis(
|
|
6503
6196
|
range,
|
|
6504
6197
|
layout,
|
|
6505
6198
|
valueAxis,
|
|
@@ -6688,18 +6381,18 @@ function buildCartesianViewModel(element, chartData, categoryLabels, kind) {
|
|
|
6688
6381
|
const useSecondary = !isStacked && secondaryIdx.size > 0;
|
|
6689
6382
|
const primaryPlotSeries = useSecondary ? chartData.series.filter((_s, i) => !secondaryIdx.has(i)) : chartData.series;
|
|
6690
6383
|
const secondaryPlotSeries = useSecondary ? chartData.series.filter((_s, i) => secondaryIdx.has(i)) : [];
|
|
6691
|
-
const primaryRange = isStacked ? computeStackedValueRangeForAxis(
|
|
6384
|
+
const primaryRange = isStacked ? chart.computeStackedValueRangeForAxis(
|
|
6692
6385
|
chartData.series,
|
|
6693
6386
|
catCount,
|
|
6694
6387
|
primaryValueAxis(chartData.axes),
|
|
6695
6388
|
isPercent,
|
|
6696
6389
|
layout.autoPlotHeight
|
|
6697
|
-
) : computeValueRangeForChart(
|
|
6390
|
+
) : chart.computeValueRangeForChart(
|
|
6698
6391
|
primaryPlotSeries.length > 0 ? primaryPlotSeries : chartData.series,
|
|
6699
6392
|
chartData.axes,
|
|
6700
6393
|
layout.autoPlotHeight
|
|
6701
6394
|
);
|
|
6702
|
-
const secondaryRange = useSecondary && secondaryPlotSeries.length > 0 ? computeValueRangeForAxis(
|
|
6395
|
+
const secondaryRange = useSecondary && secondaryPlotSeries.length > 0 ? chart.computeValueRangeForAxis(
|
|
6703
6396
|
secondaryPlotSeries,
|
|
6704
6397
|
chartData.axes?.find((axis) => axis.axisType === "valAx" && axis.axPos === "r"),
|
|
6705
6398
|
layout.autoPlotHeight
|
|
@@ -7229,8 +6922,8 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
7229
6922
|
const primaryAxisId = getPrimaryValueAxisId(chartData.axes);
|
|
7230
6923
|
const primaryAxis = chartData.axes?.find((axis) => axis.axisId === primaryAxisId);
|
|
7231
6924
|
const secondaryAxisFormatting = getSecondaryValueAxis(chartData.axes);
|
|
7232
|
-
const primaryRange = computeValueRangeForAxis(primarySeries, primaryAxis, layout.autoPlotHeight);
|
|
7233
|
-
const secondaryRange = secondary.length > 0 ? computeValueRangeForAxis(
|
|
6925
|
+
const primaryRange = chart.computeValueRangeForAxis(primarySeries, primaryAxis, layout.autoPlotHeight);
|
|
6926
|
+
const secondaryRange = secondary.length > 0 ? chart.computeValueRangeForAxis(
|
|
7234
6927
|
secondary.map((entry) => entry.series),
|
|
7235
6928
|
secondaryAxisFormatting,
|
|
7236
6929
|
layout.autoPlotHeight
|
|
@@ -7438,7 +7131,7 @@ function buildStockViewModel(element, chartData, categoryLabels) {
|
|
|
7438
7131
|
computeLayoutOptions(chartData.axes, chartData.dataTable, chartData.series.length)
|
|
7439
7132
|
);
|
|
7440
7133
|
const catCount = Math.max(categoryLabels.length, 1);
|
|
7441
|
-
const range = computeValueRangeForChart(
|
|
7134
|
+
const range = chart.computeValueRangeForChart(
|
|
7442
7135
|
chartData.series,
|
|
7443
7136
|
chartData.axes,
|
|
7444
7137
|
layout.plotHeight
|
|
@@ -7946,6 +7639,8 @@ function resolveDisplayedChartType(data) {
|
|
|
7946
7639
|
}
|
|
7947
7640
|
function buildParetoAxis(layout) {
|
|
7948
7641
|
const axis = buildSecondaryAxis({ min: 0, max: 100, span: 100 }, layout, {
|
|
7642
|
+
axisType: "valAx",
|
|
7643
|
+
axPos: "r",
|
|
7949
7644
|
majorUnit: 20,
|
|
7950
7645
|
majorTickMark: "out"
|
|
7951
7646
|
});
|
|
@@ -11282,10 +10977,6 @@ Object.defineProperty(exports, "DEFAULT_CHART_PALETTE", {
|
|
|
11282
10977
|
enumerable: true,
|
|
11283
10978
|
get: function () { return chart.DEFAULT_CHART_PALETTE; }
|
|
11284
10979
|
});
|
|
11285
|
-
Object.defineProperty(exports, "axisTargetIntervals", {
|
|
11286
|
-
enumerable: true,
|
|
11287
|
-
get: function () { return chart.axisTargetIntervals; }
|
|
11288
|
-
});
|
|
11289
10980
|
Object.defineProperty(exports, "computeBoxStats", {
|
|
11290
10981
|
enumerable: true,
|
|
11291
10982
|
get: function () { return chart.computeBoxStats; }
|
|
@@ -11298,6 +10989,10 @@ Object.defineProperty(exports, "computeLinearRegression", {
|
|
|
11298
10989
|
enumerable: true,
|
|
11299
10990
|
get: function () { return chart.computeLinearRegression; }
|
|
11300
10991
|
});
|
|
10992
|
+
Object.defineProperty(exports, "computeLogValueRange", {
|
|
10993
|
+
enumerable: true,
|
|
10994
|
+
get: function () { return chart.computeLogValueRange; }
|
|
10995
|
+
});
|
|
11301
10996
|
Object.defineProperty(exports, "computeRSquared", {
|
|
11302
10997
|
enumerable: true,
|
|
11303
10998
|
get: function () { return chart.computeRSquared; }
|
|
@@ -11310,10 +11005,38 @@ Object.defineProperty(exports, "computeStackedSeriesPlots", {
|
|
|
11310
11005
|
enumerable: true,
|
|
11311
11006
|
get: function () { return chart.computeStackedSeriesPlots; }
|
|
11312
11007
|
});
|
|
11008
|
+
Object.defineProperty(exports, "computeStackedValueRangeForAxis", {
|
|
11009
|
+
enumerable: true,
|
|
11010
|
+
get: function () { return chart.computeStackedValueRangeForAxis; }
|
|
11011
|
+
});
|
|
11012
|
+
Object.defineProperty(exports, "computeValueRangeForAxis", {
|
|
11013
|
+
enumerable: true,
|
|
11014
|
+
get: function () { return chart.computeValueRangeForAxis; }
|
|
11015
|
+
});
|
|
11016
|
+
Object.defineProperty(exports, "computeValueRangeForChart", {
|
|
11017
|
+
enumerable: true,
|
|
11018
|
+
get: function () { return chart.computeValueRangeForChart; }
|
|
11019
|
+
});
|
|
11020
|
+
Object.defineProperty(exports, "findLogAxis", {
|
|
11021
|
+
enumerable: true,
|
|
11022
|
+
get: function () { return chart.findLogAxis; }
|
|
11023
|
+
});
|
|
11313
11024
|
Object.defineProperty(exports, "fitPolynomial", {
|
|
11314
11025
|
enumerable: true,
|
|
11315
11026
|
get: function () { return chart.fitPolynomial; }
|
|
11316
11027
|
});
|
|
11028
|
+
Object.defineProperty(exports, "generateAxisTicks", {
|
|
11029
|
+
enumerable: true,
|
|
11030
|
+
get: function () { return chart.generateAxisTicks; }
|
|
11031
|
+
});
|
|
11032
|
+
Object.defineProperty(exports, "generateLogTicks", {
|
|
11033
|
+
enumerable: true,
|
|
11034
|
+
get: function () { return chart.generateLogTicks; }
|
|
11035
|
+
});
|
|
11036
|
+
Object.defineProperty(exports, "generateMinorAxisTicks", {
|
|
11037
|
+
enumerable: true,
|
|
11038
|
+
get: function () { return chart.generateMinorAxisTicks; }
|
|
11039
|
+
});
|
|
11317
11040
|
Object.defineProperty(exports, "getChartStylePalette", {
|
|
11318
11041
|
enumerable: true,
|
|
11319
11042
|
get: function () { return chart.getChartStylePalette; }
|
|
@@ -11322,10 +11045,6 @@ Object.defineProperty(exports, "hasManualLayoutFields", {
|
|
|
11322
11045
|
enumerable: true,
|
|
11323
11046
|
get: function () { return chart.hasManualLayoutFields; }
|
|
11324
11047
|
});
|
|
11325
|
-
Object.defineProperty(exports, "niceValueAxisBounds", {
|
|
11326
|
-
enumerable: true,
|
|
11327
|
-
get: function () { return chart.niceValueAxisBounds; }
|
|
11328
|
-
});
|
|
11329
11048
|
Object.defineProperty(exports, "radarAngle", {
|
|
11330
11049
|
enumerable: true,
|
|
11331
11050
|
get: function () { return chart.radarAngle; }
|
|
@@ -11346,6 +11065,10 @@ Object.defineProperty(exports, "tint", {
|
|
|
11346
11065
|
enumerable: true,
|
|
11347
11066
|
get: function () { return chart.tint; }
|
|
11348
11067
|
});
|
|
11068
|
+
Object.defineProperty(exports, "valueToYLog", {
|
|
11069
|
+
enumerable: true,
|
|
11070
|
+
get: function () { return chart.valueToYLog; }
|
|
11071
|
+
});
|
|
11349
11072
|
Object.defineProperty(exports, "clampUnitInterval", {
|
|
11350
11073
|
enumerable: true,
|
|
11351
11074
|
get: function () { return color.clampUnitInterval; }
|
|
@@ -11466,6 +11189,7 @@ exports.chartTitleBandFor = chartTitleBandFor;
|
|
|
11466
11189
|
exports.chartTitleFontPx = chartTitleFontPx;
|
|
11467
11190
|
exports.chartTitleReservePx = chartTitleReservePx;
|
|
11468
11191
|
exports.clampCropValue = clampCropValue;
|
|
11192
|
+
exports.clearBarFacePicturePixelCache = clearBarFacePicturePixelCache;
|
|
11469
11193
|
exports.clipStackedSegment = clipStackedSegment;
|
|
11470
11194
|
exports.collapseChartTitleRunsForEdit = collapseChartTitleRunsForEdit;
|
|
11471
11195
|
exports.computeAxisTitlePrimitives = computeAxisTitlePrimitives;
|
|
@@ -11483,7 +11207,6 @@ exports.computeHistogramBins = computeHistogramBins;
|
|
|
11483
11207
|
exports.computeLayout = computeLayout;
|
|
11484
11208
|
exports.computeLayoutOptions = computeLayoutOptions;
|
|
11485
11209
|
exports.computeLinePoints = computeLinePoints;
|
|
11486
|
-
exports.computeLogValueRange = computeLogValueRange;
|
|
11487
11210
|
exports.computePieLayout = computePieLayout;
|
|
11488
11211
|
exports.computePieSlicePath = computePieSlicePath;
|
|
11489
11212
|
exports.computePieSlices = computePieSlices;
|
|
@@ -11492,13 +11215,10 @@ exports.computeScatterDots = computeScatterDots;
|
|
|
11492
11215
|
exports.computeScatterXDomain = computeScatterXDomain;
|
|
11493
11216
|
exports.computeStackedBarRects = computeStackedBarRects;
|
|
11494
11217
|
exports.computeStackedValueRange = computeStackedValueRange;
|
|
11495
|
-
exports.computeStackedValueRangeForAxis = computeStackedValueRangeForAxis;
|
|
11496
11218
|
exports.computeSunburstArcs = computeSunburstArcs;
|
|
11497
11219
|
exports.computeTrendlinePrimitives = computeTrendlinePrimitives;
|
|
11498
11220
|
exports.computeValueRange = computeValueRange;
|
|
11499
11221
|
exports.computeValueRange2 = computeValueRange2;
|
|
11500
|
-
exports.computeValueRangeForAxis = computeValueRangeForAxis;
|
|
11501
|
-
exports.computeValueRangeForChart = computeValueRangeForChart;
|
|
11502
11222
|
exports.convertOoxmlAngleToCss = convertOoxmlAngleToCss;
|
|
11503
11223
|
exports.createArrayBufferCopy = createArrayBufferCopy;
|
|
11504
11224
|
exports.cumulativePercentOfTotal = cumulativePercentOfTotal;
|
|
@@ -11510,7 +11230,6 @@ exports.ensureBarFacePicturePixelSampled = ensureBarFacePicturePixelSampled;
|
|
|
11510
11230
|
exports.estimateChartTextWidth = estimateChartTextWidth;
|
|
11511
11231
|
exports.estimateTextWidth = estimateTextWidth;
|
|
11512
11232
|
exports.findDataPoint = findDataPoint;
|
|
11513
|
-
exports.findLogAxis = findLogAxis;
|
|
11514
11233
|
exports.findPointLabel = findPointLabel;
|
|
11515
11234
|
exports.findValueAxis = findValueAxis;
|
|
11516
11235
|
exports.fitTitleBand = fitTitleBand;
|
|
@@ -11518,9 +11237,6 @@ exports.formatAxisValue = formatAxisValue;
|
|
|
11518
11237
|
exports.formatAxisValue2 = formatAxisValue2;
|
|
11519
11238
|
exports.formatAxisValueWithUnits = formatAxisValueWithUnits;
|
|
11520
11239
|
exports.formatRegionMapValue = formatRegionMapValue;
|
|
11521
|
-
exports.generateAxisTicks = generateAxisTicks;
|
|
11522
|
-
exports.generateLogTicks = generateLogTicks;
|
|
11523
|
-
exports.generateMinorAxisTicks = generateMinorAxisTicks;
|
|
11524
11240
|
exports.getBarFacePicturePixelSampleVersion = getBarFacePicturePixelSampleVersion;
|
|
11525
11241
|
exports.getCachedBarFacePicturePixelColor = getCachedBarFacePicturePixelColor;
|
|
11526
11242
|
exports.getCompoundLineBorderWidth = getCompoundLineBorderWidth;
|
|
@@ -11537,6 +11253,7 @@ exports.getGradientTileFlipCss = getGradientTileFlipCss;
|
|
|
11537
11253
|
exports.getGradientTileRectCss = getGradientTileRectCss;
|
|
11538
11254
|
exports.getPatternSvg = getPatternSvg;
|
|
11539
11255
|
exports.getPatternTile = getPatternTile;
|
|
11256
|
+
exports.getPptxRenderCacheEpoch = getPptxRenderCacheEpoch;
|
|
11540
11257
|
exports.getPrimaryValueAxis = getPrimaryValueAxis;
|
|
11541
11258
|
exports.getPrimaryValueAxisId = getPrimaryValueAxisId;
|
|
11542
11259
|
exports.getSecondaryCategoryAxis = getSecondaryCategoryAxis;
|
|
@@ -11546,6 +11263,7 @@ exports.getSvgStrokeDasharray = getSvgStrokeDasharray;
|
|
|
11546
11263
|
exports.getTextCompensationTransform = getTextCompensationTransform;
|
|
11547
11264
|
exports.hasSecondaryCategoryAxis = hasSecondaryCategoryAxis;
|
|
11548
11265
|
exports.hasSecondaryValueAxis = hasSecondaryValueAxis;
|
|
11266
|
+
exports.invalidatePptxRenderCacheEpoch = invalidatePptxRenderCacheEpoch;
|
|
11549
11267
|
exports.isParetoChart = isParetoChart;
|
|
11550
11268
|
exports.isPrimaryCategoryAxisAtTop = isPrimaryCategoryAxisAtTop;
|
|
11551
11269
|
exports.isSeriesOnSecondaryAxis = isSeriesOnSecondaryAxis;
|
|
@@ -11600,6 +11318,7 @@ exports.sequentialColorScale = sequentialColorScale;
|
|
|
11600
11318
|
exports.seriesColor = seriesColor;
|
|
11601
11319
|
exports.seriesColor2 = seriesColor2;
|
|
11602
11320
|
exports.seriesXValues = seriesXValues;
|
|
11321
|
+
exports.setBoundedRenderCache = setBoundedRenderCache;
|
|
11603
11322
|
exports.setChartTextMeasurer = setChartTextMeasurer;
|
|
11604
11323
|
exports.shouldRenderMajorGridlines = shouldRenderMajorGridlines;
|
|
11605
11324
|
exports.shouldRenderRegionLabel = shouldRenderRegionLabel;
|
|
@@ -11616,7 +11335,6 @@ exports.unitsCaptionOffset = unitsCaptionOffset;
|
|
|
11616
11335
|
exports.upsertDataPoint = upsertDataPoint;
|
|
11617
11336
|
exports.valueToY = valueToY;
|
|
11618
11337
|
exports.valueToY2 = valueToY2;
|
|
11619
|
-
exports.valueToYLog = valueToYLog;
|
|
11620
11338
|
exports.withChartTitleBand = withChartTitleBand;
|
|
11621
11339
|
exports.withManualLayouts = withManualLayouts;
|
|
11622
11340
|
exports.wrapTextByEstimatedWidth = wrapTextByEstimatedWidth;
|