ooxml-ui 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -36
- package/custom-elements.json +211 -4
- package/dist/chrome/ruler.d.ts +60 -2
- package/dist/chrome/ruler.d.ts.map +1 -1
- package/dist/chrome/status-bar.d.ts +3 -1
- package/dist/chrome/status-bar.d.ts.map +1 -1
- package/dist/{chunk-M5DTJSOV.js → chunk-7FNDOWTX.js} +393 -15
- package/dist/{chunk-KVKKXRL7.js → chunk-AYXFLBSV.js} +92 -13
- package/dist/{chunk-X7RINDJQ.js → chunk-JAJFLFAV.js} +1 -1
- package/dist/{chunk-3FPW7M6U.js → chunk-VUB44CAJ.js} +1 -1
- package/dist/{chunk-JFJXBYRD.js → chunk-XNCWB2X6.js} +5 -0
- package/dist/{chunk-BEN3453I.js → chunk-Y2E22JVO.js} +1 -1
- package/dist/{chunk-USDLALB5.js → chunk-YK2DPYMU.js} +1 -1
- package/dist/{chunk-ZU7GX4SY.js → chunk-YP5S7DTT.js} +6 -5
- package/dist/comments/comments-pane.d.ts +116 -0
- package/dist/comments/comments-pane.d.ts.map +1 -0
- package/dist/comments/types.d.ts +80 -0
- package/dist/comments/types.d.ts.map +1 -0
- package/dist/controls.d.ts +4 -2
- package/dist/controls.d.ts.map +1 -1
- package/dist/controls.js +4 -4
- package/dist/docx/comments-panel.d.ts +8 -1
- package/dist/docx/image-media.d.ts +1 -1
- package/dist/docx/locales/en-ribbon.d.ts +1 -0
- package/dist/docx/locales/en.d.ts +1 -0
- package/dist/docx/localization-strings.d.ts +1 -0
- package/dist/docx/localization.d.ts +7 -0
- package/dist/docx/print-layout.d.ts +2 -2
- package/dist/docx/print-picture.d.ts +12 -0
- package/dist/docx/review-controller.d.ts +2 -0
- package/dist/docx/ruler.d.ts +7 -10
- package/dist/docx.js +282 -322
- package/dist/form/gradient-preset-gallery.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -8
- package/dist/pptx/{chart-3d-view-scene-2KRQ5667.mjs → chart-3d-view-scene-6B5TOWB6.mjs} +3 -3
- package/dist/pptx/{chart-3d-view-scene-36DMZWZ3.cjs → chart-3d-view-scene-MJ6YNT56.cjs} +37 -37
- package/dist/pptx/{chunk-YOGDIDPB.mjs → chunk-AWKKC3VW.mjs} +8 -2
- package/dist/pptx/{chunk-CJU4P5FT.cjs → chunk-STKGUT5S.cjs} +18 -12
- package/dist/pptx/{chunk-YHA6XAB3.cjs → chunk-XIQMFSNG.cjs} +1 -1
- package/dist/pptx/{chunk-YARCML7O.mjs → chunk-XQVKQD5Z.mjs} +294 -265
- package/dist/pptx/{chunk-Y2W4SZER.mjs → chunk-YI5LH5NN.mjs} +479 -336
- package/dist/pptx/{chunk-ADOC5JLI.mjs → chunk-YMTQLZ2I.mjs} +1 -1
- package/dist/pptx/{chunk-AIL3BNZS.cjs → chunk-YRHK45AB.cjs} +301 -265
- package/dist/pptx/{chunk-KPZWYF44.cjs → chunk-ZK344LOB.cjs} +629 -479
- package/dist/pptx/dom/elements/chart.d.ts +2 -3
- package/dist/pptx/dom/elements/chart.d.ts.map +1 -1
- package/dist/pptx/dom/elements/table.d.ts.map +1 -1
- package/dist/pptx/dom/index.cjs +254 -243
- package/dist/pptx/dom/index.mjs +26 -15
- package/dist/pptx/export/html2canvas-clone.cjs +2 -2
- package/dist/pptx/export/html2canvas-clone.mjs +1 -1
- package/dist/pptx/index.cjs +3025 -2993
- package/dist/pptx/index.mjs +4 -4
- package/dist/pptx/render/chart-axis-range.d.ts +7 -0
- package/dist/pptx/render/chart-axis-range.d.ts.map +1 -1
- package/dist/pptx/render/chart-axis-render.d.ts +3 -1
- package/dist/pptx/render/chart-axis-render.d.ts.map +1 -1
- package/dist/pptx/render/chart-axis-style.d.ts +5 -0
- package/dist/pptx/render/chart-axis-style.d.ts.map +1 -1
- package/dist/pptx/render/chart-axis.d.ts +1 -1
- package/dist/pptx/render/chart-axis.d.ts.map +1 -1
- package/dist/pptx/render/chart-cartesian-axes.d.ts.map +1 -1
- package/dist/pptx/render/chart-cartesian-bars.d.ts +3 -3
- package/dist/pptx/render/chart-cartesian-bars.d.ts.map +1 -1
- package/dist/pptx/render/chart-cartesian-percent-stacked.d.ts.map +1 -1
- package/dist/pptx/render/chart-cartesian.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-combo.d.ts.map +1 -1
- package/dist/pptx/render/chart-gridlines-toggle.d.ts +13 -1
- package/dist/pptx/render/chart-gridlines-toggle.d.ts.map +1 -1
- package/dist/pptx/render/chart-helpers.d.ts +13 -13
- package/dist/pptx/render/chart-helpers.d.ts.map +1 -1
- package/dist/pptx/render/chart-horizontal-bars-helpers.d.ts +7 -3
- package/dist/pptx/render/chart-horizontal-bars-helpers.d.ts.map +1 -1
- package/dist/pptx/render/chart-horizontal-bars.d.ts.map +1 -1
- package/dist/pptx/render/chart-interaction-stacked.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-palette.d.ts +5 -14
- package/dist/pptx/render/chart-palette.d.ts.map +1 -1
- package/dist/pptx/render/chart-quick-action-styles.d.ts +5 -3
- package/dist/pptx/render/chart-quick-action-styles.d.ts.map +1 -1
- package/dist/pptx/render/chart-scatter-x-axis.d.ts.map +1 -1
- package/dist/pptx/render/chart-style-palette.d.ts +52 -0
- package/dist/pptx/render/chart-style-palette.d.ts.map +1 -0
- 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-bars.d.ts +31 -1
- package/dist/pptx/render/chart-view-model-bars.d.ts.map +1 -1
- package/dist/pptx/render/chart-view-model-build.d.ts.map +1 -1
- package/dist/pptx/render/chart-view-model.cjs +53 -41
- 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/foreign-object-svg-document.d.ts +12 -0
- package/dist/pptx/render/foreign-object-svg-document.d.ts.map +1 -1
- package/dist/pptx/render/index.d.ts +1 -0
- package/dist/pptx/render/index.d.ts.map +1 -1
- package/dist/pptx/render/table-cell-css.d.ts +3 -2
- package/dist/pptx/render/table-cell-css.d.ts.map +1 -1
- package/dist/pptx/render/table-cell-edit.d.ts +1 -1
- package/dist/pptx/render/table-cell-edit.d.ts.map +1 -1
- package/dist/pptx/render/table-cell-paragraphs.d.ts +29 -0
- package/dist/pptx/render/table-cell-paragraphs.d.ts.map +1 -0
- package/dist/pptx/render/table-style.d.ts +2 -0
- package/dist/pptx/render/table-style.d.ts.map +1 -1
- package/dist/pptx/render/title-bar.d.ts +5 -0
- package/dist/pptx/render/title-bar.d.ts.map +1 -1
- package/dist/pptx/render/viewer-root-options.d.ts +11 -3
- package/dist/pptx/render/viewer-root-options.d.ts.map +1 -1
- package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
- package/dist/presence.js +3 -3
- package/dist/ribbon/ribbon-tabs.d.ts +2 -1
- package/dist/ribbon/ribbon-tabs.d.ts.map +1 -1
- package/dist/smartart/smartart-svg.d.ts +3 -2
- package/dist/smartart.js +3 -3
- package/dist/suite/attachment-store.d.ts +13 -0
- package/dist/suite/document-store.d.ts +31 -0
- package/dist/suite/index.d.ts +2 -0
- package/dist/suite.js +132 -1
- package/dist/teams/app/channel-tab.d.ts +5 -0
- package/dist/teams/chat-composer.d.ts +3 -0
- package/dist/teams.js +6 -6
- package/dist/theme.js +2 -2
- package/dist/tokens.d.ts +5 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/visio/styles/index.d.ts +2 -0
- package/dist/visio/styles/theme.d.ts +11 -0
- package/dist/visio/styles.d.ts +2 -2
- package/dist/visio.js +65 -20
- package/dist/xlsx/backstage/index.d.ts +4 -1
- package/dist/xlsx/backstage/pages-share.d.ts +19 -0
- package/dist/xlsx/backstage/parts.d.ts +3 -0
- package/dist/xlsx/chart-fill-binding.d.ts +2 -2
- package/dist/xlsx/chart-series-gradient-type.d.ts +3 -2
- package/dist/xlsx/collaboration-session.d.ts +9 -0
- package/dist/xlsx/collaboration-types.d.ts +41 -0
- package/dist/xlsx/collaboration.d.ts +56 -0
- package/dist/xlsx/component.d.ts +8 -0
- package/dist/xlsx/dialogs/comments-list.d.ts +4 -0
- package/dist/xlsx/dialogs/help-dialogs.d.ts +1 -1
- package/dist/xlsx/editor-core.d.ts +3 -0
- package/dist/xlsx/element-api.d.ts +19 -1
- package/dist/xlsx/events.d.ts +4 -1
- package/dist/xlsx/grid/remote-layer.d.ts +3 -0
- package/dist/xlsx/grid/sparkline.d.ts +3 -0
- package/dist/xlsx/grid/styles.d.ts +1 -1
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/ribbon-actions.d.ts +21 -0
- package/dist/xlsx/shell-commands.d.ts +1 -1
- package/dist/xlsx/title-bar.d.ts +4 -2
- package/dist/xlsx.js +712 -90
- package/package.json +2 -2
- package/dist/pptx/web-components/status-bar-styles.d.ts +0 -3
- package/dist/pptx/web-components/status-bar-styles.d.ts.map +0 -1
- package/dist/pptx/web-components/title-bar-styles.d.ts +0 -7
- package/dist/pptx/web-components/title-bar-styles.d.ts.map +0 -1
|
@@ -3,7 +3,7 @@ import { colorWithOpacity, clampUnitInterval, normalizeHexColor, hexToRgbChannel
|
|
|
3
3
|
export { clampUnitInterval, colorWithOpacity, hexToRgbChannels, normalizeHexColor } from 'ooxml-core/color';
|
|
4
4
|
import { buildRectPathGradientImage } from 'ooxml-core/diagram';
|
|
5
5
|
export { buildRectPathGradientImage, buildRectPathGradientSvg } from 'ooxml-core/diagram';
|
|
6
|
-
import { niceValueAxisBounds, axisTargetIntervals, hasManualLayoutFields, resolveManualLayoutRect, groupRowsByCategory, computeBoxStats, computeHistogramBins as computeHistogramBins$1, aggregateByCategory, radarRingPoints, radarAngle, computeRadarPoints,
|
|
6
|
+
import { niceValueAxisBounds, axisTargetIntervals, clusteredBarGeometry, hasManualLayoutFields, resolveManualLayoutRect, groupRowsByCategory, computeBoxStats, computeHistogramBins as computeHistogramBins$1, aggregateByCategory, radarRingPoints, radarAngle, computeRadarPoints, resolveBlankDisplay, computeStackedSeriesPlots, visibleRuns, placeBestFitLabel, nudgeOutsideLabels, buildChartGradientDef, fitPolynomial, formatPolynomialEquation, computeRSquared, computeLinearRegression, formatPowerEquation, formatLogarithmicEquation, formatExponentialEquation, formatLinearEquation, squarify } from 'ooxml-core/chart';
|
|
7
7
|
export { axisTargetIntervals, computeBoxStats, computeLinearRegression, computeRSquared, computeRadarPoints, computeStackedSeriesPlots, fitPolynomial, hasManualLayoutFields, niceValueAxisBounds, radarAngle, radarRingPoints, resolveManualLayoutRect } from 'ooxml-core/chart';
|
|
8
8
|
|
|
9
9
|
// src/pptx/render/chart-font.ts
|
|
@@ -1533,6 +1533,88 @@ function formatChartNumber(value, formatCode) {
|
|
|
1533
1533
|
return formatChartNumberWithColor(value, formatCode)?.text;
|
|
1534
1534
|
}
|
|
1535
1535
|
|
|
1536
|
+
// src/pptx/render/chart-style-palette.ts
|
|
1537
|
+
function hexToRgb(hex) {
|
|
1538
|
+
const h = hex.replace("#", "");
|
|
1539
|
+
return [
|
|
1540
|
+
parseInt(h.substring(0, 2), 16),
|
|
1541
|
+
parseInt(h.substring(2, 4), 16),
|
|
1542
|
+
parseInt(h.substring(4, 6), 16)
|
|
1543
|
+
];
|
|
1544
|
+
}
|
|
1545
|
+
function rgbToHex(r, g, b) {
|
|
1546
|
+
const clamp3 = (v) => Math.max(0, Math.min(255, Math.round(v)));
|
|
1547
|
+
return `#${clamp3(r).toString(16).padStart(2, "0")}${clamp3(g).toString(16).padStart(2, "0")}${clamp3(b).toString(16).padStart(2, "0")}`;
|
|
1548
|
+
}
|
|
1549
|
+
function tint(hex, amount) {
|
|
1550
|
+
const [r, g, b] = hexToRgb(hex);
|
|
1551
|
+
return rgbToHex(r + (255 - r) * amount, g + (255 - g) * amount, b + (255 - b) * amount);
|
|
1552
|
+
}
|
|
1553
|
+
function shade(hex, amount) {
|
|
1554
|
+
const [r, g, b] = hexToRgb(hex);
|
|
1555
|
+
return rgbToHex(r * (1 - amount), g * (1 - amount), b * (1 - amount));
|
|
1556
|
+
}
|
|
1557
|
+
var OFFICE_ACCENTS = [
|
|
1558
|
+
"#4472C4",
|
|
1559
|
+
"#ED7D31",
|
|
1560
|
+
"#A5A5A5",
|
|
1561
|
+
"#FFC000",
|
|
1562
|
+
"#5B9BD5",
|
|
1563
|
+
"#70AD47"
|
|
1564
|
+
];
|
|
1565
|
+
var DEFAULT_EXTRAS = ["#FF0000", "#00B0F0"];
|
|
1566
|
+
var DEFAULT_CHART_PALETTE = [...OFFICE_ACCENTS, ...DEFAULT_EXTRAS];
|
|
1567
|
+
function monochromaticRamp(base) {
|
|
1568
|
+
return [
|
|
1569
|
+
shade(base, 0.5),
|
|
1570
|
+
shade(base, 0.35),
|
|
1571
|
+
shade(base, 0.15),
|
|
1572
|
+
base,
|
|
1573
|
+
tint(base, 0.2),
|
|
1574
|
+
tint(base, 0.4),
|
|
1575
|
+
tint(base, 0.6),
|
|
1576
|
+
tint(base, 0.8)
|
|
1577
|
+
];
|
|
1578
|
+
}
|
|
1579
|
+
var GREY = "#7F7F7F";
|
|
1580
|
+
function buildPalette(column, accents) {
|
|
1581
|
+
if (column === 0) {
|
|
1582
|
+
return monochromaticRamp(GREY);
|
|
1583
|
+
}
|
|
1584
|
+
if (column === 1) {
|
|
1585
|
+
return [...accents, ...accents.map((accent) => shade(accent, 0.4))];
|
|
1586
|
+
}
|
|
1587
|
+
return monochromaticRamp(accents[column - 2]);
|
|
1588
|
+
}
|
|
1589
|
+
function usableAccents(accents) {
|
|
1590
|
+
return accents?.length === 6 && accents.every((accent) => /^#[0-9a-f]{6}$/iu.test(accent)) ? accents : OFFICE_ACCENTS;
|
|
1591
|
+
}
|
|
1592
|
+
var paletteCache = /* @__PURE__ */ new Map();
|
|
1593
|
+
function getChartStylePalette(styleId, themeAccents) {
|
|
1594
|
+
const accents = usableAccents(themeAccents);
|
|
1595
|
+
const valid = styleId !== void 0 && styleId >= 1 && styleId <= 48;
|
|
1596
|
+
if (!valid && accents === OFFICE_ACCENTS) {
|
|
1597
|
+
return DEFAULT_CHART_PALETTE;
|
|
1598
|
+
}
|
|
1599
|
+
const column = valid ? (Math.trunc(styleId) - 1) % 8 : -1;
|
|
1600
|
+
const key = `${column}:${accents.join(",")}`;
|
|
1601
|
+
let palette = paletteCache.get(key);
|
|
1602
|
+
if (!palette) {
|
|
1603
|
+
palette = column < 0 ? [...accents, ...DEFAULT_EXTRAS] : buildPalette(column, accents);
|
|
1604
|
+
paletteCache.set(key, palette);
|
|
1605
|
+
}
|
|
1606
|
+
return palette;
|
|
1607
|
+
}
|
|
1608
|
+
function resolveChartPalette(chartData) {
|
|
1609
|
+
if (chartData.colorPalette && chartData.colorPalette.length > 0) {
|
|
1610
|
+
return [...chartData.colorPalette];
|
|
1611
|
+
}
|
|
1612
|
+
return [...getChartStylePalette(chartData.style?.styleId, chartData.themeAccentColors)];
|
|
1613
|
+
}
|
|
1614
|
+
function withResolvedPalette(chartData) {
|
|
1615
|
+
return chartData.colorPalette && chartData.colorPalette.length > 0 ? chartData : { ...chartData, colorPalette: resolveChartPalette(chartData) };
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1536
1618
|
// src/pptx/render/chart-style-defaults.ts
|
|
1537
1619
|
var DEFAULT_LABEL_COLOR = "#334155";
|
|
1538
1620
|
var DEFAULT_TITLE_TEXT_PX = 12;
|
|
@@ -1717,114 +1799,6 @@ function withChartTitleBand(vm, chartData) {
|
|
|
1717
1799
|
}
|
|
1718
1800
|
|
|
1719
1801
|
// src/pptx/render/chart-helpers.ts
|
|
1720
|
-
var ACCENT1 = "#4472C4";
|
|
1721
|
-
var ACCENT2 = "#ED7D31";
|
|
1722
|
-
var ACCENT3 = "#A5A5A5";
|
|
1723
|
-
var ACCENT4 = "#FFC000";
|
|
1724
|
-
var ACCENT5 = "#5B9BD5";
|
|
1725
|
-
var ACCENT6 = "#70AD47";
|
|
1726
|
-
var ACCENTS = [ACCENT1, ACCENT2, ACCENT3, ACCENT4, ACCENT5, ACCENT6];
|
|
1727
|
-
var DEFAULT_CHART_PALETTE = [
|
|
1728
|
-
"#4472C4",
|
|
1729
|
-
"#ED7D31",
|
|
1730
|
-
"#A5A5A5",
|
|
1731
|
-
"#FFC000",
|
|
1732
|
-
"#5B9BD5",
|
|
1733
|
-
"#70AD47",
|
|
1734
|
-
"#FF0000",
|
|
1735
|
-
"#00B0F0"
|
|
1736
|
-
];
|
|
1737
|
-
function hexToRgb(hex) {
|
|
1738
|
-
const h = hex.replace("#", "");
|
|
1739
|
-
return [
|
|
1740
|
-
parseInt(h.substring(0, 2), 16),
|
|
1741
|
-
parseInt(h.substring(2, 4), 16),
|
|
1742
|
-
parseInt(h.substring(4, 6), 16)
|
|
1743
|
-
];
|
|
1744
|
-
}
|
|
1745
|
-
function rgbToHex(r, g, b) {
|
|
1746
|
-
const clamp3 = (v) => Math.max(0, Math.min(255, Math.round(v)));
|
|
1747
|
-
return `#${clamp3(r).toString(16).padStart(2, "0")}${clamp3(g).toString(16).padStart(2, "0")}${clamp3(b).toString(16).padStart(2, "0")}`;
|
|
1748
|
-
}
|
|
1749
|
-
function tint(hex, amount) {
|
|
1750
|
-
const [r, g, b] = hexToRgb(hex);
|
|
1751
|
-
return rgbToHex(r + (255 - r) * amount, g + (255 - g) * amount, b + (255 - b) * amount);
|
|
1752
|
-
}
|
|
1753
|
-
function shade(hex, amount) {
|
|
1754
|
-
const [r, g, b] = hexToRgb(hex);
|
|
1755
|
-
return rgbToHex(r * (1 - amount), g * (1 - amount), b * (1 - amount));
|
|
1756
|
-
}
|
|
1757
|
-
function colorfulSequential(offset) {
|
|
1758
|
-
const out = [];
|
|
1759
|
-
for (let i = 0; i < 8; i++) {
|
|
1760
|
-
out.push(ACCENTS[(i + offset) % ACCENTS.length]);
|
|
1761
|
-
}
|
|
1762
|
-
return out;
|
|
1763
|
-
}
|
|
1764
|
-
function monochromaticRamp(base) {
|
|
1765
|
-
return [
|
|
1766
|
-
shade(base, 0.5),
|
|
1767
|
-
shade(base, 0.35),
|
|
1768
|
-
shade(base, 0.15),
|
|
1769
|
-
base,
|
|
1770
|
-
tint(base, 0.2),
|
|
1771
|
-
tint(base, 0.4),
|
|
1772
|
-
tint(base, 0.6),
|
|
1773
|
-
tint(base, 0.8)
|
|
1774
|
-
];
|
|
1775
|
-
}
|
|
1776
|
-
function colorfulVariant(offset, tintAmount) {
|
|
1777
|
-
return ACCENTS.map((_, i) => {
|
|
1778
|
-
const idx = (i + offset) % ACCENTS.length;
|
|
1779
|
-
return tintAmount > 0 ? tint(ACCENTS[idx], tintAmount) : shade(ACCENTS[idx], -tintAmount);
|
|
1780
|
-
}).concat([
|
|
1781
|
-
tint(ACCENTS[offset % ACCENTS.length], 0.4),
|
|
1782
|
-
shade(ACCENTS[(offset + 1) % ACCENTS.length], 0.2)
|
|
1783
|
-
]);
|
|
1784
|
-
}
|
|
1785
|
-
function darkPalette(offset, shadeAmount) {
|
|
1786
|
-
return colorfulSequential(offset).map((c) => shade(c, shadeAmount));
|
|
1787
|
-
}
|
|
1788
|
-
function tonedPalette(offset, tintAmount) {
|
|
1789
|
-
return colorfulSequential(offset).map((c) => tint(c, tintAmount));
|
|
1790
|
-
}
|
|
1791
|
-
function buildPalette(styleId) {
|
|
1792
|
-
const id = Math.max(1, Math.min(48, styleId));
|
|
1793
|
-
if (id <= 8) {
|
|
1794
|
-
return colorfulSequential(id - 1);
|
|
1795
|
-
}
|
|
1796
|
-
if (id <= 16) {
|
|
1797
|
-
const accentIdx = (id - 9) % ACCENTS.length;
|
|
1798
|
-
return monochromaticRamp(ACCENTS[accentIdx]);
|
|
1799
|
-
}
|
|
1800
|
-
if (id <= 24) {
|
|
1801
|
-
const sub2 = id - 17;
|
|
1802
|
-
const tintAmt = sub2 < 4 ? sub2 * 0.1 : -(sub2 - 4) * 0.1;
|
|
1803
|
-
return colorfulVariant(sub2, tintAmt);
|
|
1804
|
-
}
|
|
1805
|
-
if (id <= 32) {
|
|
1806
|
-
const sub2 = id - 25;
|
|
1807
|
-
return darkPalette(sub2, 0.25 + sub2 % 4 * 0.1);
|
|
1808
|
-
}
|
|
1809
|
-
if (id <= 40) {
|
|
1810
|
-
const sub2 = id - 33;
|
|
1811
|
-
return tonedPalette(sub2, 0.15 + sub2 % 4 * 0.08);
|
|
1812
|
-
}
|
|
1813
|
-
const sub = id - 41;
|
|
1814
|
-
return tonedPalette(sub, 0.4 + sub % 4 * 0.1);
|
|
1815
|
-
}
|
|
1816
|
-
var paletteCache = /* @__PURE__ */ new Map();
|
|
1817
|
-
function getChartStylePalette(styleId) {
|
|
1818
|
-
if (styleId === void 0 || styleId < 1 || styleId > 48) {
|
|
1819
|
-
return DEFAULT_CHART_PALETTE;
|
|
1820
|
-
}
|
|
1821
|
-
let palette = paletteCache.get(styleId);
|
|
1822
|
-
if (!palette) {
|
|
1823
|
-
palette = buildPalette(styleId);
|
|
1824
|
-
paletteCache.set(styleId, palette);
|
|
1825
|
-
}
|
|
1826
|
-
return palette;
|
|
1827
|
-
}
|
|
1828
1802
|
function seriesColor(series, index, styleId, colorPalette) {
|
|
1829
1803
|
const explicit = series.color ?? series.marker?.spPr?.fillColor;
|
|
1830
1804
|
if (explicit) {
|
|
@@ -2106,46 +2080,56 @@ function computeBarRects(series, catCount, layout, range, colorPalette) {
|
|
|
2106
2080
|
}
|
|
2107
2081
|
return rects;
|
|
2108
2082
|
}
|
|
2109
|
-
function
|
|
2110
|
-
|
|
2083
|
+
function stackedBarWidth(slotWidth, gapWidth, fallbackFraction) {
|
|
2084
|
+
return gapWidth === void 0 ? slotWidth * fallbackFraction : clusteredBarGeometry(slotWidth, 1, { barGapWidth: gapWidth }).singleBarWidth;
|
|
2085
|
+
}
|
|
2086
|
+
function clipStackedSegment(base, value, range) {
|
|
2087
|
+
const low = Math.max(Math.min(base, base + value), range.min), high = Math.min(Math.max(base, base + value), range.max);
|
|
2088
|
+
return high > low ? { low, high } : void 0;
|
|
2089
|
+
}
|
|
2090
|
+
function stackedSegmentExtent(baseCoord, tipCoord, minSize) {
|
|
2091
|
+
const size = Math.max(Math.abs(tipCoord - baseCoord), minSize);
|
|
2092
|
+
return { start: tipCoord < baseCoord ? baseCoord - size : baseCoord, size };
|
|
2093
|
+
}
|
|
2094
|
+
function computeStackedBarRects(series, catCount, layout, range, colorPalette, gapWidth) {
|
|
2095
|
+
const rects = [], slot = layout.plotWidth / Math.max(catCount, 1), barW = stackedBarWidth(slot, gapWidth, 0.7), barOffset = (slot - barW) / 2;
|
|
2111
2096
|
for (let ci = 0; ci < catCount; ci++) {
|
|
2112
|
-
let
|
|
2097
|
+
let posTotal = 0, negTotal = 0;
|
|
2113
2098
|
for (let si = 0; si < series.length; si++) {
|
|
2114
2099
|
const val = series[si].values[ci] ?? 0;
|
|
2115
2100
|
if (val === 0) {
|
|
2116
2101
|
continue;
|
|
2117
2102
|
}
|
|
2118
|
-
const
|
|
2119
|
-
Math.abs(
|
|
2120
|
-
valueToY2(val, range, layout.plotTop, layout.plotBottom) - valueToY2(0, range, layout.plotTop, layout.plotBottom)
|
|
2121
|
-
),
|
|
2122
|
-
1
|
|
2123
|
-
);
|
|
2103
|
+
const base = val > 0 ? posTotal : negTotal;
|
|
2124
2104
|
if (val > 0) {
|
|
2125
|
-
|
|
2126
|
-
rects.push({
|
|
2127
|
-
x,
|
|
2128
|
-
y,
|
|
2129
|
-
w: barW,
|
|
2130
|
-
h,
|
|
2131
|
-
fill: seriesColor2(series[si], si, colorPalette),
|
|
2132
|
-
seriesIndex: si,
|
|
2133
|
-
pointIndex: ci
|
|
2134
|
-
});
|
|
2135
|
-
posTop = y;
|
|
2105
|
+
posTotal += val;
|
|
2136
2106
|
} else {
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
h,
|
|
2143
|
-
fill: seriesColor2(series[si], si, colorPalette),
|
|
2144
|
-
seriesIndex: si,
|
|
2145
|
-
pointIndex: ci
|
|
2146
|
-
});
|
|
2147
|
-
negBottom = y + h;
|
|
2107
|
+
negTotal += val;
|
|
2108
|
+
}
|
|
2109
|
+
const segment = clipStackedSegment(base, val, range);
|
|
2110
|
+
if (!segment) {
|
|
2111
|
+
continue;
|
|
2148
2112
|
}
|
|
2113
|
+
const baseY = valueToY2(
|
|
2114
|
+
val > 0 ? segment.low : segment.high,
|
|
2115
|
+
range,
|
|
2116
|
+
layout.plotTop,
|
|
2117
|
+
layout.plotBottom
|
|
2118
|
+
), tipY = valueToY2(
|
|
2119
|
+
val > 0 ? segment.high : segment.low,
|
|
2120
|
+
range,
|
|
2121
|
+
layout.plotTop,
|
|
2122
|
+
layout.plotBottom
|
|
2123
|
+
), { start, size } = stackedSegmentExtent(baseY, tipY, 1);
|
|
2124
|
+
rects.push({
|
|
2125
|
+
x: layout.plotLeft + slot * ci + barOffset,
|
|
2126
|
+
y: start,
|
|
2127
|
+
w: barW,
|
|
2128
|
+
h: size,
|
|
2129
|
+
fill: seriesColor2(series[si], si, colorPalette),
|
|
2130
|
+
seriesIndex: si,
|
|
2131
|
+
pointIndex: ci
|
|
2132
|
+
});
|
|
2149
2133
|
}
|
|
2150
2134
|
}
|
|
2151
2135
|
return rects;
|
|
@@ -2384,28 +2368,6 @@ function resolveDataPointPictureFill(series, pointIndex, seriesIndex, face) {
|
|
|
2384
2368
|
};
|
|
2385
2369
|
}
|
|
2386
2370
|
|
|
2387
|
-
// src/pptx/render/chart-palette.ts
|
|
2388
|
-
function hexToRgb2(hex) {
|
|
2389
|
-
const h = hex.replace("#", "");
|
|
2390
|
-
return [
|
|
2391
|
-
parseInt(h.substring(0, 2), 16),
|
|
2392
|
-
parseInt(h.substring(2, 4), 16),
|
|
2393
|
-
parseInt(h.substring(4, 6), 16)
|
|
2394
|
-
];
|
|
2395
|
-
}
|
|
2396
|
-
function rgbToHex2(r, g, b) {
|
|
2397
|
-
const clamp3 = (v) => Math.max(0, Math.min(255, Math.round(v)));
|
|
2398
|
-
return `#${clamp3(r).toString(16).padStart(2, "0")}${clamp3(g).toString(16).padStart(2, "0")}${clamp3(b).toString(16).padStart(2, "0")}`;
|
|
2399
|
-
}
|
|
2400
|
-
function tint2(hex, amount) {
|
|
2401
|
-
const [r, g, b] = hexToRgb2(hex);
|
|
2402
|
-
return rgbToHex2(r + (255 - r) * amount, g + (255 - g) * amount, b + (255 - b) * amount);
|
|
2403
|
-
}
|
|
2404
|
-
function shade2(hex, amount) {
|
|
2405
|
-
const [r, g, b] = hexToRgb2(hex);
|
|
2406
|
-
return rgbToHex2(r * (1 - amount), g * (1 - amount), b * (1 - amount));
|
|
2407
|
-
}
|
|
2408
|
-
|
|
2409
2371
|
// src/pptx/render/chart-picture-pattern-def.ts
|
|
2410
2372
|
function polygonBoundingBox(points) {
|
|
2411
2373
|
const coords = points.trim().split(/\s+/u).map((pair) => pair.split(",").map(Number));
|
|
@@ -2434,7 +2396,7 @@ function buildPictureFillPatternDef(id, href, format, box, tileHeightPx) {
|
|
|
2434
2396
|
|
|
2435
2397
|
// src/pptx/render/chart-bar3d-face-picture.ts
|
|
2436
2398
|
function resolveUntargetedBarFaceFill(face, baseColor) {
|
|
2437
|
-
return face === "end" ?
|
|
2399
|
+
return face === "end" ? tint(baseColor, 0.22) : shade(baseColor, 0.25);
|
|
2438
2400
|
}
|
|
2439
2401
|
function resolveExtrusionFaceFill(facePoints, face, resolvedColor, rect, picture, defs) {
|
|
2440
2402
|
const fallback = resolveUntargetedBarFaceFill(face, resolvedColor);
|
|
@@ -2634,8 +2596,8 @@ function pieExtrusion(paths, depth) {
|
|
|
2634
2596
|
return paths.map((p) => ({
|
|
2635
2597
|
kind: "path",
|
|
2636
2598
|
d: translateSlicePath(p.d, 0, offsetY),
|
|
2637
|
-
fill:
|
|
2638
|
-
stroke:
|
|
2599
|
+
fill: shade(p.fill, 0.32),
|
|
2600
|
+
stroke: shade(p.fill, 0.4),
|
|
2639
2601
|
strokeWidth: 0.5
|
|
2640
2602
|
}));
|
|
2641
2603
|
}
|
|
@@ -2647,7 +2609,7 @@ function ribbonExtrusion(prims, depth) {
|
|
|
2647
2609
|
out.push({
|
|
2648
2610
|
...pl,
|
|
2649
2611
|
points: shiftPoints(pl.points, depth.dx, depth.dy),
|
|
2650
|
-
stroke:
|
|
2612
|
+
stroke: shade(pl.stroke, 0.3),
|
|
2651
2613
|
fill: "none",
|
|
2652
2614
|
part: void 0
|
|
2653
2615
|
});
|
|
@@ -2656,7 +2618,7 @@ function ribbonExtrusion(prims, depth) {
|
|
|
2656
2618
|
out.push({
|
|
2657
2619
|
...pg,
|
|
2658
2620
|
points: shiftPoints(pg.points, depth.dx, depth.dy),
|
|
2659
|
-
fill:
|
|
2621
|
+
fill: shade(pg.fill === "none" ? "#888888" : pg.fill, 0.3),
|
|
2660
2622
|
part: void 0
|
|
2661
2623
|
});
|
|
2662
2624
|
}
|
|
@@ -2794,6 +2756,39 @@ function computeValueRangeForAxis(series, axis, plotHeightPx) {
|
|
|
2794
2756
|
const requestedLogBase = axis?.logBase ?? 10;
|
|
2795
2757
|
const logBase = axis?.logScale && Number.isFinite(requestedLogBase) && requestedLogBase > 1 ? requestedLogBase : axis?.logScale ? 10 : void 0;
|
|
2796
2758
|
const automatic = logBase ? computeLogValueRange(series, logBase) : computeValueRange(series, plotHeightPx);
|
|
2759
|
+
return withAxisBounds(automatic, axis, logBase);
|
|
2760
|
+
}
|
|
2761
|
+
function computeStackedValueRangeForAxis(series, catCount, axis, isPercent, plotSizePx) {
|
|
2762
|
+
if (isPercent) {
|
|
2763
|
+
return {
|
|
2764
|
+
...percentStackedRange(series, catCount, plotSizePx),
|
|
2765
|
+
...axis?.orientation === "maxMin" ? { reverseOrder: true } : {}
|
|
2766
|
+
};
|
|
2767
|
+
}
|
|
2768
|
+
return withAxisBounds(computeStackedValueRange(series, catCount, plotSizePx), axis);
|
|
2769
|
+
}
|
|
2770
|
+
function percentStackedRange(series, catCount, plotSizePx) {
|
|
2771
|
+
const shares = series.map((entry) => ({
|
|
2772
|
+
...entry,
|
|
2773
|
+
values: Array.from({ length: catCount }, (_, ci) => {
|
|
2774
|
+
const total = series.reduce((sum, s) => sum + Math.abs(s.values[ci] ?? 0), 0);
|
|
2775
|
+
return total > 0 ? (entry.values[ci] ?? 0) / total * 100 : 0;
|
|
2776
|
+
})
|
|
2777
|
+
}));
|
|
2778
|
+
const automatic = computeStackedValueRange(shares, catCount, plotSizePx);
|
|
2779
|
+
if (automatic.min >= 0) {
|
|
2780
|
+
return { min: 0, max: 100, span: 100 };
|
|
2781
|
+
}
|
|
2782
|
+
const min = Math.max(automatic.min, -100);
|
|
2783
|
+
const unit = automatic.majorUnit;
|
|
2784
|
+
return {
|
|
2785
|
+
min,
|
|
2786
|
+
max: 100,
|
|
2787
|
+
span: 100 - min,
|
|
2788
|
+
...unit !== void 0 && 100 % unit === 0 && min % unit === 0 ? { majorUnit: unit } : {}
|
|
2789
|
+
};
|
|
2790
|
+
}
|
|
2791
|
+
function withAxisBounds(automatic, axis, logBase) {
|
|
2797
2792
|
const validMin = typeof axis?.min === "number" && Number.isFinite(axis.min) && (!logBase || axis.min > 0) ? axis.min : void 0;
|
|
2798
2793
|
const validMax = typeof axis?.max === "number" && Number.isFinite(axis.max) && (!logBase || axis.max > 0) ? axis.max : void 0;
|
|
2799
2794
|
const min = validMin ?? automatic.min;
|
|
@@ -3555,6 +3550,9 @@ function unitsLabelTextStyle(axis, baseStyle) {
|
|
|
3555
3550
|
...fontFamily ? { fontFamily } : {}
|
|
3556
3551
|
};
|
|
3557
3552
|
}
|
|
3553
|
+
function isNoLine(shape) {
|
|
3554
|
+
return shape?.lineNoFill === true && shape.strokeColor === void 0;
|
|
3555
|
+
}
|
|
3558
3556
|
function chartLineStyle(shape, fallbackColor = DEFAULT_COLOR, fallbackWidth = 1) {
|
|
3559
3557
|
const strokeWidth = shape?.strokeWidth ?? fallbackWidth;
|
|
3560
3558
|
return {
|
|
@@ -3566,7 +3564,7 @@ function chartLineStyle(shape, fallbackColor = DEFAULT_COLOR, fallbackWidth = 1)
|
|
|
3566
3564
|
|
|
3567
3565
|
// src/pptx/render/chart-axis-primitives.ts
|
|
3568
3566
|
function buildVerticalTickMark(axisX, y, placement, side, length, shape) {
|
|
3569
|
-
if (!placement || placement === "none") {
|
|
3567
|
+
if (!placement || placement === "none" || isNoLine(shape)) {
|
|
3570
3568
|
return void 0;
|
|
3571
3569
|
}
|
|
3572
3570
|
const inward = side === "left" ? 1 : -1;
|
|
@@ -3582,7 +3580,7 @@ function buildVerticalTickMark(axisX, y, placement, side, length, shape) {
|
|
|
3582
3580
|
};
|
|
3583
3581
|
}
|
|
3584
3582
|
function buildVerticalAxisLine(axis, axisX, layout) {
|
|
3585
|
-
return axis?.spPr ? {
|
|
3583
|
+
return axis?.spPr && !isNoLine(axis.spPr) ? {
|
|
3586
3584
|
kind: "line",
|
|
3587
3585
|
x1: axisX,
|
|
3588
3586
|
y1: layout.plotTop,
|
|
@@ -3678,7 +3676,7 @@ function primaryCategoryAxis(axes) {
|
|
|
3678
3676
|
return categoryAxes2?.find((axis) => axis.axPos !== "t") ?? categoryAxes2?.[0];
|
|
3679
3677
|
}
|
|
3680
3678
|
function tickLine(x, y, placement, topAxis, length, axis) {
|
|
3681
|
-
if (!placement || placement === "none") {
|
|
3679
|
+
if (!placement || placement === "none" || isNoLine(axis.spPr)) {
|
|
3682
3680
|
return void 0;
|
|
3683
3681
|
}
|
|
3684
3682
|
const inward = topAxis ? length : -length;
|
|
@@ -3700,7 +3698,7 @@ function buildTickMarks(axis, sourceCount, layout, spacing, axisY) {
|
|
|
3700
3698
|
const result = [];
|
|
3701
3699
|
const topAxis = axis.axPos === "t";
|
|
3702
3700
|
const y = axisY ?? (topAxis ? layout.plotTop : layout.plotBottom);
|
|
3703
|
-
if (axis.spPr) {
|
|
3701
|
+
if (axis.spPr && !isNoLine(axis.spPr)) {
|
|
3704
3702
|
result.push({
|
|
3705
3703
|
kind: "line",
|
|
3706
3704
|
x1: layout.plotLeft,
|
|
@@ -3787,6 +3785,41 @@ function chartDataInCategoryOrder(chartData, sourceIndices2) {
|
|
|
3787
3785
|
};
|
|
3788
3786
|
}
|
|
3789
3787
|
|
|
3788
|
+
// src/pptx/render/chart-gridlines-toggle.ts
|
|
3789
|
+
function primaryValueAxis(axes) {
|
|
3790
|
+
if (!axes) {
|
|
3791
|
+
return void 0;
|
|
3792
|
+
}
|
|
3793
|
+
return axes.find((axis) => axis.axisType === "valAx" && axis.axPos === "l") ?? axes.find((axis) => axis.axisType === "valAx");
|
|
3794
|
+
}
|
|
3795
|
+
function chartGridlinesState(chartData) {
|
|
3796
|
+
const axis = primaryValueAxis(chartData.axes);
|
|
3797
|
+
if (axis) {
|
|
3798
|
+
return axis.majorGridlines ?? false;
|
|
3799
|
+
}
|
|
3800
|
+
return chartData.style?.hasGridlines ?? true;
|
|
3801
|
+
}
|
|
3802
|
+
var shouldRenderMajorGridlines = chartGridlinesState;
|
|
3803
|
+
function axisShowsMajorGridlines(axis) {
|
|
3804
|
+
return axis ? axis.majorGridlines === true : true;
|
|
3805
|
+
}
|
|
3806
|
+
function chartGridlinesPatch(chartData, show) {
|
|
3807
|
+
const axes = chartData.axes ? [...chartData.axes] : [];
|
|
3808
|
+
let index = axes.findIndex((axis) => axis.axisType === "valAx" && axis.axPos === "l");
|
|
3809
|
+
if (index === -1) {
|
|
3810
|
+
index = axes.findIndex((axis) => axis.axisType === "valAx");
|
|
3811
|
+
}
|
|
3812
|
+
if (index === -1) {
|
|
3813
|
+
axes.push({ axisType: "valAx", majorGridlines: show });
|
|
3814
|
+
} else {
|
|
3815
|
+
axes[index] = { ...axes[index], majorGridlines: show };
|
|
3816
|
+
}
|
|
3817
|
+
return {
|
|
3818
|
+
axes,
|
|
3819
|
+
style: { ...chartData.style, hasGridlines: show }
|
|
3820
|
+
};
|
|
3821
|
+
}
|
|
3822
|
+
|
|
3790
3823
|
// src/pptx/render/chart-scatter-x-axis.ts
|
|
3791
3824
|
var GRIDLINE_COLOR = "#e2e8f0";
|
|
3792
3825
|
var TICK_COUNT = 5;
|
|
@@ -3807,7 +3840,7 @@ function buildScatterXAxisPlan(chartData, layout) {
|
|
|
3807
3840
|
}));
|
|
3808
3841
|
const range = computeValueRangeForAxis(pseudoSeries, xAxis, layout.plotWidth);
|
|
3809
3842
|
const toPixelX = (value) => valueToY2(value, range, layout.plotRight, layout.plotLeft);
|
|
3810
|
-
const showGridlines = xAxis
|
|
3843
|
+
const showGridlines = axisShowsMajorGridlines(xAxis) && !isNoLine(xAxis?.majorGridlinesSpPr);
|
|
3811
3844
|
const gridlines = [];
|
|
3812
3845
|
const labels = [];
|
|
3813
3846
|
const textStyle = chartAxisTextStyle(xAxis, DEFAULT_CHART_TEXT_PX);
|
|
@@ -4161,10 +4194,11 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft, showMajo
|
|
|
4161
4194
|
const tickVals = generateAxisTicks(range, axis, TICK_COUNT2);
|
|
4162
4195
|
const minorTickVals = generateMinorAxisTicks(range, axis);
|
|
4163
4196
|
const axisLine = buildVerticalAxisLine(axis, axisX, layout);
|
|
4197
|
+
const drawMajorGridlines = showMajorGridlines && !isNoLine(axis?.majorGridlinesSpPr);
|
|
4164
4198
|
if (axisLine) {
|
|
4165
4199
|
gridlines.push(axisLine);
|
|
4166
4200
|
}
|
|
4167
|
-
if (axis?.minorGridlines) {
|
|
4201
|
+
if (axis?.minorGridlines && !isNoLine(axis.minorGridlinesSpPr)) {
|
|
4168
4202
|
for (const val of minorTickVals) {
|
|
4169
4203
|
const y = valueToY2(val, range, layout.plotTop, layout.plotBottom);
|
|
4170
4204
|
gridlines.push(
|
|
@@ -4188,7 +4222,7 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft, showMajo
|
|
|
4188
4222
|
}
|
|
4189
4223
|
for (const val of tickVals) {
|
|
4190
4224
|
const y = valueToY2(val, range, layout.plotTop, layout.plotBottom);
|
|
4191
|
-
if (
|
|
4225
|
+
if (drawMajorGridlines) {
|
|
4192
4226
|
gridlines.push(
|
|
4193
4227
|
buildStyledGridline(
|
|
4194
4228
|
y,
|
|
@@ -4244,18 +4278,19 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft, showMajo
|
|
|
4244
4278
|
}
|
|
4245
4279
|
return { gridlines, axisLabels };
|
|
4246
4280
|
}
|
|
4247
|
-
function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
|
|
4281
|
+
function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight, showMajorGridlines = true) {
|
|
4248
4282
|
const gridlines = [];
|
|
4249
4283
|
const axisLabels = [];
|
|
4250
4284
|
const textStyle = chartAxisTextStyle(axis);
|
|
4251
4285
|
const captionStyle = chartAxisTextStyle(axis);
|
|
4252
4286
|
const axisLine = buildVerticalAxisLine(axis, axisX, layout);
|
|
4287
|
+
const drawMajorGridlines = showMajorGridlines && !isNoLine(axis?.majorGridlinesSpPr);
|
|
4253
4288
|
if (axisLine) {
|
|
4254
4289
|
gridlines.push(axisLine);
|
|
4255
4290
|
}
|
|
4256
4291
|
const tickValues = generateAxisTicks(range, axis, TICK_COUNT2 - 1);
|
|
4257
4292
|
const minorTickValues = generateMinorAxisTicks(range, axis);
|
|
4258
|
-
if (axis?.minorGridlines) {
|
|
4293
|
+
if (axis?.minorGridlines && !isNoLine(axis.minorGridlinesSpPr)) {
|
|
4259
4294
|
for (const val of minorTickValues) {
|
|
4260
4295
|
const y = valueToY2(val, range, layout.plotTop, layout.plotBottom);
|
|
4261
4296
|
gridlines.push(
|
|
@@ -4287,17 +4322,19 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
|
|
|
4287
4322
|
}
|
|
4288
4323
|
for (const val of tickValues) {
|
|
4289
4324
|
const y = valueToY2(val, range, layout.plotTop, layout.plotBottom);
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4325
|
+
if (drawMajorGridlines) {
|
|
4326
|
+
gridlines.push(
|
|
4327
|
+
buildStyledGridline(
|
|
4328
|
+
y,
|
|
4329
|
+
layout,
|
|
4330
|
+
axis?.majorGridlinesSpPr,
|
|
4331
|
+
SECONDARY_GRID_COLOR,
|
|
4332
|
+
0.5,
|
|
4333
|
+
"2 3",
|
|
4334
|
+
0.5
|
|
4335
|
+
)
|
|
4336
|
+
);
|
|
4337
|
+
}
|
|
4301
4338
|
const tick = buildVerticalTickMark(
|
|
4302
4339
|
axisX,
|
|
4303
4340
|
y,
|
|
@@ -4352,38 +4389,6 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
|
|
|
4352
4389
|
return { gridlines, axisLabels };
|
|
4353
4390
|
}
|
|
4354
4391
|
|
|
4355
|
-
// src/pptx/render/chart-gridlines-toggle.ts
|
|
4356
|
-
function primaryValueAxis(axes) {
|
|
4357
|
-
if (!axes) {
|
|
4358
|
-
return void 0;
|
|
4359
|
-
}
|
|
4360
|
-
return axes.find((axis) => axis.axisType === "valAx" && axis.axPos === "l") ?? axes.find((axis) => axis.axisType === "valAx");
|
|
4361
|
-
}
|
|
4362
|
-
function chartGridlinesState(chartData) {
|
|
4363
|
-
const axis = primaryValueAxis(chartData.axes);
|
|
4364
|
-
if (axis) {
|
|
4365
|
-
return axis.majorGridlines ?? false;
|
|
4366
|
-
}
|
|
4367
|
-
return chartData.style?.hasGridlines ?? true;
|
|
4368
|
-
}
|
|
4369
|
-
var shouldRenderMajorGridlines = chartGridlinesState;
|
|
4370
|
-
function chartGridlinesPatch(chartData, show) {
|
|
4371
|
-
const axes = chartData.axes ? [...chartData.axes] : [];
|
|
4372
|
-
let index = axes.findIndex((axis) => axis.axisType === "valAx" && axis.axPos === "l");
|
|
4373
|
-
if (index === -1) {
|
|
4374
|
-
index = axes.findIndex((axis) => axis.axisType === "valAx");
|
|
4375
|
-
}
|
|
4376
|
-
if (index === -1) {
|
|
4377
|
-
axes.push({ axisType: "valAx", majorGridlines: show });
|
|
4378
|
-
} else {
|
|
4379
|
-
axes[index] = { ...axes[index], majorGridlines: show };
|
|
4380
|
-
}
|
|
4381
|
-
return {
|
|
4382
|
-
axes,
|
|
4383
|
-
style: { ...chartData.style, hasGridlines: show }
|
|
4384
|
-
};
|
|
4385
|
-
}
|
|
4386
|
-
|
|
4387
4392
|
// src/pptx/render/chart-cartesian-axes.ts
|
|
4388
4393
|
function hasRicherAxisFeatures(chartData) {
|
|
4389
4394
|
return Boolean(
|
|
@@ -4435,7 +4440,8 @@ function buildCartesianAxes(chartData, layout, primaryRange, secondaryRange, cat
|
|
|
4435
4440
|
secondaryRange,
|
|
4436
4441
|
layout,
|
|
4437
4442
|
secondaryAxis,
|
|
4438
|
-
axisX(secondaryAxis?.crossAxisId, "right")
|
|
4443
|
+
axisX(secondaryAxis?.crossAxisId, "right"),
|
|
4444
|
+
axisShowsMajorGridlines(secondaryAxis)
|
|
4439
4445
|
);
|
|
4440
4446
|
return {
|
|
4441
4447
|
...primary,
|
|
@@ -4452,7 +4458,7 @@ function categoryTotals(series, catCount) {
|
|
|
4452
4458
|
);
|
|
4453
4459
|
}
|
|
4454
4460
|
function buildPercentStackedBars(chartData, catCount, layout, primaryRange, sourceIndices2, invertNegativeFill2) {
|
|
4455
|
-
const primitives = [], dataLabels = [], series = chartData.series, palette = chartData.colorPalette, showLabels = chartData.style?.hasDataLabels, barGroupWidth = layout.plotWidth / Math.max(catCount, 1), barW = barGroupWidth
|
|
4461
|
+
const primitives = [], dataLabels = [], series = chartData.series, palette = chartData.colorPalette, showLabels = chartData.style?.hasDataLabels, barGroupWidth = layout.plotWidth / Math.max(catCount, 1), barW = stackedBarWidth(barGroupWidth, chartData.barGapWidth, 0.6), barOffset = (barGroupWidth - barW) / 2, displaySeries = series.map((entry) => ({
|
|
4456
4462
|
...entry,
|
|
4457
4463
|
values: sourceIndices2.map((sourceIndex) => entry.values[sourceIndex] ?? 0)
|
|
4458
4464
|
})), totals = categoryTotals(displaySeries, catCount);
|
|
@@ -4460,7 +4466,17 @@ function buildPercentStackedBars(chartData, catCount, layout, primaryRange, sour
|
|
|
4460
4466
|
let posRunning = 0, negRunning = 0;
|
|
4461
4467
|
const catTotal = totals[ci] || 1;
|
|
4462
4468
|
for (let si = 0; si < series.length; si++) {
|
|
4463
|
-
const sourceIndex = sourceIndices2[ci] ?? ci, rawVal = series[si].values[sourceIndex] ?? 0, val = catTotal > 0 ? rawVal / catTotal * 100 : 0,
|
|
4469
|
+
const sourceIndex = sourceIndices2[ci] ?? ci, rawVal = series[si].values[sourceIndex] ?? 0, val = catTotal > 0 ? rawVal / catTotal * 100 : 0, base = val < 0 ? negRunning : posRunning;
|
|
4470
|
+
if (val < 0) {
|
|
4471
|
+
negRunning += val;
|
|
4472
|
+
} else {
|
|
4473
|
+
posRunning += val;
|
|
4474
|
+
}
|
|
4475
|
+
const segment = clipStackedSegment(base, val, primaryRange);
|
|
4476
|
+
if (!segment) {
|
|
4477
|
+
continue;
|
|
4478
|
+
}
|
|
4479
|
+
const x = layout.plotLeft + barGroupWidth * ci + barOffset, toY = (value) => valueToY2(value, primaryRange, layout.plotTop, layout.plotBottom), { start: y, size: h } = val < 0 ? stackedSegmentExtent(toY(segment.high), toY(segment.low), 0.5) : stackedSegmentExtent(toY(segment.low), toY(segment.high), 0.5), pctBaseFill = resolveDataPointFill(series[si], sourceIndex, paletteColor2(si, palette)) ?? seriesColor2(series[si], si, palette);
|
|
4464
4480
|
primitives.push({
|
|
4465
4481
|
kind: "rect",
|
|
4466
4482
|
x,
|
|
@@ -4489,11 +4505,6 @@ function buildPercentStackedBars(chartData, catCount, layout, primaryRange, sour
|
|
|
4489
4505
|
...dataLabelFontOverride(resolveDataLabelTextStyle(chartData, series[si], sourceIndex))
|
|
4490
4506
|
});
|
|
4491
4507
|
}
|
|
4492
|
-
if (isNeg) {
|
|
4493
|
-
negRunning += val;
|
|
4494
|
-
} else {
|
|
4495
|
-
posRunning += val;
|
|
4496
|
-
}
|
|
4497
4508
|
}
|
|
4498
4509
|
}
|
|
4499
4510
|
return { primitives, dataLabels };
|
|
@@ -4639,7 +4650,14 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
4639
4650
|
const displaySeries = series.map((entry) => ({
|
|
4640
4651
|
...entry,
|
|
4641
4652
|
values: sourceIndices2.map((sourceIndex) => entry.values[sourceIndex] ?? 0)
|
|
4642
|
-
})), rects = computeStackedBarRects(
|
|
4653
|
+
})), rects = computeStackedBarRects(
|
|
4654
|
+
displaySeries,
|
|
4655
|
+
catCount,
|
|
4656
|
+
layout,
|
|
4657
|
+
primaryRange,
|
|
4658
|
+
palette,
|
|
4659
|
+
chartData.barGapWidth
|
|
4660
|
+
);
|
|
4643
4661
|
for (const r of rects) {
|
|
4644
4662
|
let fill = r.fill, part, title;
|
|
4645
4663
|
if (r.seriesIndex !== void 0 && r.pointIndex !== void 0) {
|
|
@@ -5329,7 +5347,7 @@ function addUnit(date, amount, unit) {
|
|
|
5329
5347
|
}
|
|
5330
5348
|
function tickLine2(x, y, axis, minor) {
|
|
5331
5349
|
const placement = minor ? axis.minorTickMark : axis.majorTickMark;
|
|
5332
|
-
if (!placement || placement === "none") {
|
|
5350
|
+
if (!placement || placement === "none" || isNoLine(axis.spPr)) {
|
|
5333
5351
|
return void 0;
|
|
5334
5352
|
}
|
|
5335
5353
|
const length = minor ? 2.5 : 4;
|
|
@@ -5422,7 +5440,7 @@ function buildDateAxisPlan(chartData, layout, selectedAxis, axisY) {
|
|
|
5422
5440
|
const line2 = tickLine2(x, y, axis, false);
|
|
5423
5441
|
return line2 ? [line2] : [];
|
|
5424
5442
|
});
|
|
5425
|
-
if (!axis.deleted && axis.spPr) {
|
|
5443
|
+
if (!axis.deleted && axis.spPr && !isNoLine(axis.spPr)) {
|
|
5426
5444
|
tickMarks.unshift({
|
|
5427
5445
|
kind: "line",
|
|
5428
5446
|
x1: layout.plotLeft,
|
|
@@ -5625,19 +5643,21 @@ function valueToX(val, range, leftX, rightX) {
|
|
|
5625
5643
|
}
|
|
5626
5644
|
return range.reverseOrder ? rightX - ratio * usable : leftX + ratio * usable;
|
|
5627
5645
|
}
|
|
5628
|
-
function buildTransposedValueAxis(range, layout) {
|
|
5629
|
-
const gridlines = [], axisLabels = [];
|
|
5646
|
+
function buildTransposedValueAxis(range, layout, axis, showMajorGridlines = true) {
|
|
5647
|
+
const gridlines = [], axisLabels = [], drawGridlines = showMajorGridlines && !isNoLine(axis?.majorGridlinesSpPr);
|
|
5630
5648
|
for (const val of axisTickValues(range)) {
|
|
5631
5649
|
const x = valueToX(val, range, layout.plotLeft, layout.plotRight);
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5650
|
+
if (drawGridlines) {
|
|
5651
|
+
gridlines.push(
|
|
5652
|
+
buildVerticalStyledGridline(
|
|
5653
|
+
x,
|
|
5654
|
+
layout,
|
|
5655
|
+
axis?.majorGridlinesSpPr,
|
|
5656
|
+
GRIDLINE_COLOR3,
|
|
5657
|
+
1,
|
|
5658
|
+
void 0)
|
|
5659
|
+
);
|
|
5660
|
+
}
|
|
5641
5661
|
axisLabels.push({
|
|
5642
5662
|
kind: "text",
|
|
5643
5663
|
x,
|
|
@@ -5687,7 +5707,12 @@ function barFill(chartData, series, seriesIndex, pointIndex) {
|
|
|
5687
5707
|
function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
5688
5708
|
const layout = computePlotLayout(element.width, element.height, chartData, true, {
|
|
5689
5709
|
leftCategoryLabelWidth: widestCategoryLabelWidth(categoryLabels, DEFAULT_CHART_TEXT_PX)
|
|
5690
|
-
}), catCount = Math.max(categoryLabels.length, 1), series = chartData.series, grouping = chartData.grouping ?? "clustered", isStacked = grouping === "stacked" || grouping === "percentStacked", isPercent = grouping === "percentStacked",
|
|
5710
|
+
}), 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(
|
|
5711
|
+
range,
|
|
5712
|
+
layout,
|
|
5713
|
+
valueAxis,
|
|
5714
|
+
shouldRenderMajorGridlines(chartData)
|
|
5715
|
+
), zeroX = valueToX(0, range, layout.plotLeft, layout.plotRight), zeroLine = range.min < 0 && range.max > 0 ? {
|
|
5691
5716
|
kind: "line",
|
|
5692
5717
|
x1: zeroX,
|
|
5693
5718
|
y1: layout.plotTop,
|
|
@@ -5746,7 +5771,7 @@ function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
|
5746
5771
|
}
|
|
5747
5772
|
}
|
|
5748
5773
|
} else {
|
|
5749
|
-
const totals = isPercent ? categoryTotals2(series, catCount) : [], barH = band
|
|
5774
|
+
const totals = isPercent ? categoryTotals2(series, catCount) : [], barH = stackedBarWidth(band, chartData.barGapWidth, isPercent ? 0.6 : 0.7), barOffset = (band - barH) / 2;
|
|
5750
5775
|
for (let ci = 0; ci < catCount; ci++) {
|
|
5751
5776
|
let posRunning = 0, negRunning = 0;
|
|
5752
5777
|
const catTotal = isPercent ? totals[ci] || 1 : 1;
|
|
@@ -5755,7 +5780,21 @@ function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
|
5755
5780
|
if (val === 0) {
|
|
5756
5781
|
continue;
|
|
5757
5782
|
}
|
|
5758
|
-
const isNeg = val < 0, base = isNeg ? negRunning : posRunning
|
|
5783
|
+
const isNeg = val < 0, base = isNeg ? negRunning : posRunning;
|
|
5784
|
+
if (isNeg) {
|
|
5785
|
+
negRunning += val;
|
|
5786
|
+
} else {
|
|
5787
|
+
posRunning += val;
|
|
5788
|
+
}
|
|
5789
|
+
const segment = clipStackedSegment(base, val, range);
|
|
5790
|
+
if (!segment) {
|
|
5791
|
+
continue;
|
|
5792
|
+
}
|
|
5793
|
+
const y = layout.plotTop + band * ci + barOffset, { start: x, size: w } = stackedSegmentExtent(
|
|
5794
|
+
valueToX(isNeg ? segment.high : segment.low, range, layout.plotLeft, layout.plotRight),
|
|
5795
|
+
valueToX(isNeg ? segment.low : segment.high, range, layout.plotLeft, layout.plotRight),
|
|
5796
|
+
0.5
|
|
5797
|
+
);
|
|
5759
5798
|
primitives.push({
|
|
5760
5799
|
kind: "rect",
|
|
5761
5800
|
x,
|
|
@@ -5809,11 +5848,6 @@ function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
|
5809
5848
|
});
|
|
5810
5849
|
}
|
|
5811
5850
|
}
|
|
5812
|
-
if (isNeg) {
|
|
5813
|
-
negRunning += val;
|
|
5814
|
-
} else {
|
|
5815
|
-
posRunning += val;
|
|
5816
|
-
}
|
|
5817
5851
|
}
|
|
5818
5852
|
}
|
|
5819
5853
|
}
|
|
@@ -5845,12 +5879,6 @@ function buildHorizontalBarViewModel(element, chartData, categoryLabels) {
|
|
|
5845
5879
|
}
|
|
5846
5880
|
|
|
5847
5881
|
// src/pptx/render/chart-cartesian.ts
|
|
5848
|
-
function stackedRange(chartData, catCount, isPercent, plotHeightPx) {
|
|
5849
|
-
if (isPercent) {
|
|
5850
|
-
return { min: 0, max: 100, span: 100 };
|
|
5851
|
-
}
|
|
5852
|
-
return computeStackedValueRange(chartData.series, catCount, plotHeightPx);
|
|
5853
|
-
}
|
|
5854
5882
|
function buildCartesianViewModel(element, chartData, categoryLabels, kind) {
|
|
5855
5883
|
if (kind === "bar" && chartData.barDirection === "bar") {
|
|
5856
5884
|
return buildHorizontalBarViewModel(element, chartData, categoryLabels);
|
|
@@ -5866,13 +5894,13 @@ function buildCartesianViewModel(element, chartData, categoryLabels, kind) {
|
|
|
5866
5894
|
const useSecondary = !isStacked && secondaryIdx.size > 0;
|
|
5867
5895
|
const primaryPlotSeries = useSecondary ? chartData.series.filter((_s, i) => !secondaryIdx.has(i)) : chartData.series;
|
|
5868
5896
|
const secondaryPlotSeries = useSecondary ? chartData.series.filter((_s, i) => secondaryIdx.has(i)) : [];
|
|
5869
|
-
const
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5897
|
+
const primaryRange = isStacked ? computeStackedValueRangeForAxis(
|
|
5898
|
+
chartData.series,
|
|
5899
|
+
catCount,
|
|
5900
|
+
primaryValueAxis(chartData.axes),
|
|
5901
|
+
isPercent,
|
|
5902
|
+
layout.autoPlotHeight
|
|
5903
|
+
) : computeValueRangeForChart(
|
|
5876
5904
|
primaryPlotSeries.length > 0 ? primaryPlotSeries : chartData.series,
|
|
5877
5905
|
chartData.axes,
|
|
5878
5906
|
layout.autoPlotHeight
|
|
@@ -6433,7 +6461,8 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
6433
6461
|
layout,
|
|
6434
6462
|
"right",
|
|
6435
6463
|
chartData.dateCategories?.values
|
|
6436
|
-
)
|
|
6464
|
+
),
|
|
6465
|
+
axisShowsMajorGridlines(secondaryAxisFormatting)
|
|
6437
6466
|
) : void 0;
|
|
6438
6467
|
const zeroLine = primaryRange.logScale ? void 0 : buildZeroLine(primaryRange, layout);
|
|
6439
6468
|
const horizontalAxis = buildCartesianHorizontalAxis(
|
|
@@ -10265,7 +10294,7 @@ function buildChartViewModelInner(element) {
|
|
|
10265
10294
|
if (element.type !== "chart") {
|
|
10266
10295
|
return buildFallbackViewModel(element.width, element.height, "Chart");
|
|
10267
10296
|
}
|
|
10268
|
-
const chartEl = element, chartData = chartEl.chartData ? withChartTextDefaults(withAutoTitle(chartEl.chartData)) : chartEl.chartData;
|
|
10297
|
+
const chartEl = element, chartData = chartEl.chartData ? withResolvedPalette(withChartTextDefaults(withAutoTitle(chartEl.chartData))) : chartEl.chartData;
|
|
10269
10298
|
if (!chartData || chartData.series.length === 0) {
|
|
10270
10299
|
return buildFallbackViewModel(element.width, element.height, chartData?.title ?? "Chart");
|
|
10271
10300
|
}
|
|
@@ -10740,4 +10769,4 @@ function computeTrendlinePrimitives(chartData, catCount, layout, range, mode = "
|
|
|
10740
10769
|
return out;
|
|
10741
10770
|
}
|
|
10742
10771
|
|
|
10743
|
-
export { AXIS_LABEL_COLOR, CHART_PX_PER_PT, CHART_TITLE_FONT_PX, CHART_TITLE_TOP_INSET_PX, DATA_LABEL_LINE_HEIGHT, DATA_LABEL_PAD_X, DATA_LABEL_PAD_Y, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, DEFAULT_BODY_INSET_LR_PX, DEFAULT_BODY_INSET_TB_PX, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_CHART_AREA_FILL, DEFAULT_CHART_DATA_LABEL_PX, DEFAULT_CHART_PALETTE, DEFAULT_CHART_TEXT_PX, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_PALETTE, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, GRIDLINE_COLOR3 as GRIDLINE_COLOR, HYPERLINK_COLOR, LEGACY_CHART_TITLE_BAND_PX, LEGEND_LINE_SWATCH_WIDTH, LEGEND_MARKER_RADIUS, OOXML_PATTERN_PRESETS, PIE_AUTO_INSET_PX, TEXT_ORIENTATION_IDENTITY, ZERO_LINE_COLOR, adjustFillForMode, applyDataPointPictureFills, applyLabelManualLayout, applyLegendEntryOverrides, applyParetoConversion, axisTickValues, buildBoxWhiskerViewModel, buildCartesianViewModel, buildCategoryLabels, buildChartViewModel, buildCirclePathGradient, buildComboViewModel, buildCssGradientFromShapeStyle, buildDashArray, buildDataLabelText, buildFallbackViewModel, buildFunnelViewModel, buildGradientCss, buildGridlinesAndLabels, buildHistogramViewModel, buildLegend, buildLineLegendSwatch, buildMarkTooltip, buildPatternFill, buildPatternFillCss, buildPieViewModel, buildPrimaryAxis, buildRadarViewModel, buildRectPathGradient, buildReflectedGradientStops, buildRegionMapEntries, buildRegionMapViewModel, buildSecondaryAxis, buildShapePathGradient, buildStockCloseLabel, buildStockViewModel, buildSubpathFillOverlay, buildSubpathPaints, buildSunburstViewModel, buildSurfaceViewModel, buildTreemapViewModel, buildTrendlineLegendSwatch, buildValueAxisGridlinesAndLabels, buildWaterfallViewModel, buildZeroLine, canvasFontFamily, chartAreaCornerRadius, chartAreaFill, chartFontPx, chartFrameToViewOffset, chartGridlinesPatch, chartGridlinesState, chartPreserveAspectRatio, chartTextFontFamily, chartTitleBand, chartTitleBandFor, chartTitleFontPx, chartTitleReservePx, clampCropValue, collapseChartTitleRunsForEdit, computeAxisTitlePrimitives, computeBarRects, computeBoxWhiskerGeometry, computeBubbleRadius, computeDataTableHeight, computeDataTablePrimitives, computeErrorBarPrimitives, computeFunnelSegments, computeGradientCenter, computeHierarchicalSunburstArcs, computeHistogramBars, computeHistogramBins, computeLayout, computeLayoutOptions, computeLinePoints, computeLogValueRange, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeScatterDots, computeScatterXDomain, computeStackedBarRects, computeStackedValueRange, computeSunburstArcs, computeTrendlinePrimitives, computeValueRange, computeValueRange2, computeValueRangeForAxis, computeValueRangeForChart, convertOoxmlAngleToCss, createArrayBufferCopy, cumulativePercentOfTotal, dataLabelBox, dataLabelBoxSize, dataLabelFontOverride, decodeFirstPixelColor, ensureBarFacePicturePixelSampled, estimateChartTextWidth, estimateTextWidth, findDataPoint, findLogAxis, findPointLabel, findValueAxis, fitTitleBand, formatAxisValue, formatAxisValue2, formatAxisValueWithUnits, formatChartNumber, formatChartNumberWithColor, formatRegionMapValue, generateAxisTicks, generateLogTicks, generateMinorAxisTicks, getBarFacePicturePixelSampleVersion, getCachedBarFacePicturePixelColor, getChartStylePalette, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineStyle, getComputedFillStyle, getCssBorderDashStyle, getDisplayUnitDivisor, getDisplayUnitLabel, getElementOrientationMatrix, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getPatternSvg, getPatternTile, getPrimaryValueAxis, getPrimaryValueAxisId, getSecondaryCategoryAxis, getSecondaryValueAxis, getSecondaryValueAxisId, getSvgStrokeDasharray, getTextCompensationTransform, hasSecondaryCategoryAxis, hasSecondaryValueAxis, isParetoChart, isPrimaryCategoryAxisAtTop, isSeriesOnSecondaryAxis, isTextOrientationMatrix, linePointsToSvgString, manualLayoutOf, manualLegendAnchor, manualTitleAnchor, measureChartTextWidth, multiplyTextOrientationMatrices, normalizeStrokeDashType, normalizeValue, orderParetoEntries, paletteColor, paletteColor2, parseDrawingPercent, plotAreaFill, reserveLegendSpace, resetBarFacePicturePixelCacheForTests, resolveActiveDataPointPicture, resolveBarFacePicturePixelColor, resolveBarFaceTargets, resolveBarLabelAnchor, resolveBarLabelPlacement, resolveCategoryLabels, resolveChartKind, resolveChartStyleDefaults, resolveChartTitleRunSpans, resolveChartTitleTextStyle, resolveDataLabelContent, resolveDataLabelTextStyle, resolveDataPointExplosion, resolveDataPointFill, resolveDataPointMarker, resolveDataPointPictureFill, resolveDisplayedChartType, resolveExtrusionFaceFill, resolveLabelPosition, resolveLegendAnchorPosition, resolveLegendPlacement, resolveLegendSwatchKind, resolveMarkerLabelAnchor, resolveMarkerLabelPlacement, resolveRegionCode, resolveRegionEntityCode, resolveUntargetedBarFaceFill, resolveVaryColorFill, sanitizeGradientStops, sequentialColorScale, seriesColor, seriesColor2, seriesXValues, setChartTextMeasurer,
|
|
10772
|
+
export { AXIS_LABEL_COLOR, CHART_PX_PER_PT, CHART_TITLE_FONT_PX, CHART_TITLE_TOP_INSET_PX, DATA_LABEL_LINE_HEIGHT, DATA_LABEL_PAD_X, DATA_LABEL_PAD_Y, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, DEFAULT_BODY_INSET_LR_PX, DEFAULT_BODY_INSET_TB_PX, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_CHART_AREA_FILL, DEFAULT_CHART_DATA_LABEL_PX, DEFAULT_CHART_PALETTE, DEFAULT_CHART_TEXT_PX, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_PALETTE, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, GRIDLINE_COLOR3 as GRIDLINE_COLOR, HYPERLINK_COLOR, LEGACY_CHART_TITLE_BAND_PX, LEGEND_LINE_SWATCH_WIDTH, LEGEND_MARKER_RADIUS, OOXML_PATTERN_PRESETS, PIE_AUTO_INSET_PX, TEXT_ORIENTATION_IDENTITY, ZERO_LINE_COLOR, adjustFillForMode, applyDataPointPictureFills, applyLabelManualLayout, applyLegendEntryOverrides, applyParetoConversion, axisShowsMajorGridlines, axisTickValues, buildBoxWhiskerViewModel, buildCartesianViewModel, buildCategoryLabels, buildChartViewModel, buildCirclePathGradient, buildComboViewModel, buildCssGradientFromShapeStyle, buildDashArray, buildDataLabelText, buildFallbackViewModel, buildFunnelViewModel, buildGradientCss, buildGridlinesAndLabels, buildHistogramViewModel, buildLegend, buildLineLegendSwatch, buildMarkTooltip, buildPatternFill, buildPatternFillCss, buildPieViewModel, buildPrimaryAxis, buildRadarViewModel, buildRectPathGradient, buildReflectedGradientStops, buildRegionMapEntries, buildRegionMapViewModel, buildSecondaryAxis, buildShapePathGradient, buildStockCloseLabel, buildStockViewModel, buildSubpathFillOverlay, buildSubpathPaints, buildSunburstViewModel, buildSurfaceViewModel, buildTreemapViewModel, buildTrendlineLegendSwatch, buildValueAxisGridlinesAndLabels, buildWaterfallViewModel, buildZeroLine, canvasFontFamily, chartAreaCornerRadius, chartAreaFill, chartFontPx, chartFrameToViewOffset, chartGridlinesPatch, chartGridlinesState, chartPreserveAspectRatio, chartTextFontFamily, chartTitleBand, chartTitleBandFor, chartTitleFontPx, chartTitleReservePx, clampCropValue, clipStackedSegment, collapseChartTitleRunsForEdit, computeAxisTitlePrimitives, computeBarRects, computeBoxWhiskerGeometry, computeBubbleRadius, computeDataTableHeight, computeDataTablePrimitives, computeErrorBarPrimitives, computeFunnelSegments, computeGradientCenter, computeHierarchicalSunburstArcs, computeHistogramBars, computeHistogramBins, computeLayout, computeLayoutOptions, computeLinePoints, computeLogValueRange, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeScatterDots, computeScatterXDomain, computeStackedBarRects, computeStackedValueRange, computeStackedValueRangeForAxis, computeSunburstArcs, computeTrendlinePrimitives, computeValueRange, computeValueRange2, computeValueRangeForAxis, computeValueRangeForChart, convertOoxmlAngleToCss, createArrayBufferCopy, cumulativePercentOfTotal, dataLabelBox, dataLabelBoxSize, dataLabelFontOverride, decodeFirstPixelColor, ensureBarFacePicturePixelSampled, estimateChartTextWidth, estimateTextWidth, findDataPoint, findLogAxis, findPointLabel, findValueAxis, fitTitleBand, formatAxisValue, formatAxisValue2, formatAxisValueWithUnits, formatChartNumber, formatChartNumberWithColor, formatRegionMapValue, generateAxisTicks, generateLogTicks, generateMinorAxisTicks, getBarFacePicturePixelSampleVersion, getCachedBarFacePicturePixelColor, getChartStylePalette, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineStyle, getComputedFillStyle, getCssBorderDashStyle, getDisplayUnitDivisor, getDisplayUnitLabel, getElementOrientationMatrix, getElementTransform, getElementTransformWithoutRotation, getGradientTileFlipCss, getGradientTileRectCss, getPatternSvg, getPatternTile, getPrimaryValueAxis, getPrimaryValueAxisId, getSecondaryCategoryAxis, getSecondaryValueAxis, getSecondaryValueAxisId, getSvgStrokeDasharray, getTextCompensationTransform, hasSecondaryCategoryAxis, hasSecondaryValueAxis, isParetoChart, isPrimaryCategoryAxisAtTop, isSeriesOnSecondaryAxis, isTextOrientationMatrix, linePointsToSvgString, manualLayoutOf, manualLegendAnchor, manualTitleAnchor, measureChartTextWidth, multiplyTextOrientationMatrices, normalizeStrokeDashType, normalizeValue, orderParetoEntries, paletteColor, paletteColor2, parseDrawingPercent, plotAreaFill, primaryValueAxis, reserveLegendSpace, resetBarFacePicturePixelCacheForTests, resolveActiveDataPointPicture, resolveBarFacePicturePixelColor, resolveBarFaceTargets, resolveBarLabelAnchor, resolveBarLabelPlacement, resolveCategoryLabels, resolveChartKind, resolveChartPalette, resolveChartStyleDefaults, resolveChartTitleRunSpans, resolveChartTitleTextStyle, resolveDataLabelContent, resolveDataLabelTextStyle, resolveDataPointExplosion, resolveDataPointFill, resolveDataPointMarker, resolveDataPointPictureFill, resolveDisplayedChartType, resolveExtrusionFaceFill, resolveLabelPosition, resolveLegendAnchorPosition, resolveLegendPlacement, resolveLegendSwatchKind, resolveMarkerLabelAnchor, resolveMarkerLabelPlacement, resolveRegionCode, resolveRegionEntityCode, resolveUntargetedBarFaceFill, resolveVaryColorFill, sanitizeGradientStops, sequentialColorScale, seriesColor, seriesColor2, seriesXValues, setChartTextMeasurer, shade, shouldRenderMajorGridlines, shouldRenderRegionLabel, splitLabelLines, splitSeriesByAxis, stackedBarWidth, stackedSegmentExtent, subscribeBarFacePicturePixelSamples, suppressesCssFill, surfaceColor, tint, titleBaselineFor, toCssGradientStop, unitsCaptionOffset, upsertDataPoint, valueToY, valueToY2, valueToYLog, withChartTitleBand, withManualLayouts, wrapTextByEstimatedWidth };
|