@spteck/fluentui-react-charts 1.0.11 → 1.0.12
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 +25 -0
- package/dist/charts/ComboChart/ComboChart.d.ts +6 -1
- package/dist/fluentui-react-charts.cjs.development.js +63 -7
- package/dist/fluentui-react-charts.cjs.development.js.map +1 -1
- package/dist/fluentui-react-charts.cjs.production.min.js +1 -1
- package/dist/fluentui-react-charts.cjs.production.min.js.map +1 -1
- package/dist/fluentui-react-charts.esm.js +63 -7
- package/dist/fluentui-react-charts.esm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -304,6 +304,31 @@ const targetData = [
|
|
|
304
304
|
title="Sales vs Target"
|
|
305
305
|
theme={webLightTheme}
|
|
306
306
|
/>
|
|
307
|
+
|
|
308
|
+
> Note: ComboChart supports a backward-compatible dual-axis layout via the `axesMode` prop.
|
|
309
|
+
> - Default: `axesMode="legacy"` — preserves previous behavior: a single y-axis named `y` and a non-stacked x-axis.
|
|
310
|
+
> - Dual mode: `axesMode="dual"` — enables a stacked x-axis and two named y-axes: `y-bar` (left) and `y-line` (right).
|
|
311
|
+
|
|
312
|
+
Usage examples:
|
|
313
|
+
|
|
314
|
+
```tsx
|
|
315
|
+
// legacy (default) — unchanged behavior for existing consumers
|
|
316
|
+
<ComboChart
|
|
317
|
+
data={[{ label: 'Sales', data: salesData, type: 'bar' }]}
|
|
318
|
+
getPrimary={(d) => d.month}
|
|
319
|
+
getSecondary={(d) => d.value}
|
|
320
|
+
/>
|
|
321
|
+
|
|
322
|
+
// dual mode — bars default to 'y-bar' (stacked on x), lines default to 'y-line'
|
|
323
|
+
<ComboChart
|
|
324
|
+
data={[
|
|
325
|
+
{ label: 'Sales', data: salesData, type: 'bar' },
|
|
326
|
+
{ label: 'Target', data: targetData, type: 'line' }
|
|
327
|
+
]}
|
|
328
|
+
getPrimary={(d) => d.month}
|
|
329
|
+
getSecondary={(d) => d.value}
|
|
330
|
+
axesMode="dual"
|
|
331
|
+
/>
|
|
307
332
|
```
|
|
308
333
|
|
|
309
334
|
#### BubbleChart
|
|
@@ -12,6 +12,11 @@ export interface ComboChartProps<T> {
|
|
|
12
12
|
title?: string;
|
|
13
13
|
showDataLabels?: boolean;
|
|
14
14
|
theme?: Theme;
|
|
15
|
+
/**
|
|
16
|
+
* 'legacy' keeps previous behaviour (single 'y' axis, non-stacked x).
|
|
17
|
+
* 'dual' enables named y-axes ('y-bar' and 'y-line') and stacked x.
|
|
18
|
+
*/
|
|
19
|
+
axesMode?: 'legacy' | 'dual';
|
|
15
20
|
}
|
|
16
|
-
export declare function ComboChart<T extends object>({ data, getPrimary, getSecondary, title, showDataLabels, theme, }: ComboChartProps<T>): React.JSX.Element;
|
|
21
|
+
export declare function ComboChart<T extends object>({ data, getPrimary, getSecondary, title, showDataLabels, theme, axesMode, }: ComboChartProps<T>): React.JSX.Element;
|
|
17
22
|
export default ComboChart;
|
|
@@ -1719,7 +1719,9 @@ function ComboChart(_ref) {
|
|
|
1719
1719
|
_ref$showDataLabels = _ref.showDataLabels,
|
|
1720
1720
|
showDataLabels = _ref$showDataLabels === void 0 ? false : _ref$showDataLabels,
|
|
1721
1721
|
_ref$theme = _ref.theme,
|
|
1722
|
-
theme = _ref$theme === void 0 ? reactComponents.webLightTheme : _ref$theme
|
|
1722
|
+
theme = _ref$theme === void 0 ? reactComponents.webLightTheme : _ref$theme,
|
|
1723
|
+
_ref$axesMode = _ref.axesMode,
|
|
1724
|
+
axesMode = _ref$axesMode === void 0 ? 'legacy' : _ref$axesMode;
|
|
1723
1725
|
var _useState = React.useState(function () {
|
|
1724
1726
|
return data.map(function (s) {
|
|
1725
1727
|
return s.label;
|
|
@@ -1774,7 +1776,8 @@ function ComboChart(_ref) {
|
|
|
1774
1776
|
return {
|
|
1775
1777
|
type: series.type,
|
|
1776
1778
|
label: series.label,
|
|
1777
|
-
|
|
1779
|
+
// default yAxis assignment: legacy uses single 'y', dual uses 'y-bar'/'y-line'
|
|
1780
|
+
yAxisID: (_series$yAxisID = series.yAxisID) != null ? _series$yAxisID : axesMode === 'dual' ? series.type === 'bar' ? 'y-bar' : 'y-line' : 'y',
|
|
1778
1781
|
data: allCategories.map(function (cat) {
|
|
1779
1782
|
var found = series.data.find(function (d) {
|
|
1780
1783
|
return getPrimary(d) === cat;
|
|
@@ -1805,7 +1808,7 @@ function ComboChart(_ref) {
|
|
|
1805
1808
|
labelColor = _useMemo.labelColor,
|
|
1806
1809
|
gridColor = _useMemo.gridColor;
|
|
1807
1810
|
var options = React.useMemo(function () {
|
|
1808
|
-
|
|
1811
|
+
var base = _extends({
|
|
1809
1812
|
responsive: true,
|
|
1810
1813
|
maintainAspectRatio: false
|
|
1811
1814
|
}, getInstantInteractionAnimations(), {
|
|
@@ -1836,9 +1839,61 @@ function ComboChart(_ref) {
|
|
|
1836
1839
|
display: false
|
|
1837
1840
|
},
|
|
1838
1841
|
tooltip: createFluentTooltip(theme)
|
|
1839
|
-
}
|
|
1842
|
+
}
|
|
1843
|
+
});
|
|
1844
|
+
if (axesMode === 'dual') {
|
|
1845
|
+
return _extends({}, base, {
|
|
1846
|
+
scales: {
|
|
1847
|
+
x: {
|
|
1848
|
+
stacked: true,
|
|
1849
|
+
ticks: {
|
|
1850
|
+
color: labelColor,
|
|
1851
|
+
font: {
|
|
1852
|
+
family: fontFamily,
|
|
1853
|
+
size: fontSize
|
|
1854
|
+
}
|
|
1855
|
+
},
|
|
1856
|
+
grid: {
|
|
1857
|
+
color: gridColor
|
|
1858
|
+
}
|
|
1859
|
+
},
|
|
1860
|
+
'y-bar': {
|
|
1861
|
+
type: 'linear',
|
|
1862
|
+
position: 'left',
|
|
1863
|
+
stacked: true,
|
|
1864
|
+
ticks: {
|
|
1865
|
+
color: labelColor,
|
|
1866
|
+
font: {
|
|
1867
|
+
family: fontFamily,
|
|
1868
|
+
size: fontSize
|
|
1869
|
+
}
|
|
1870
|
+
},
|
|
1871
|
+
grid: {
|
|
1872
|
+
color: gridColor
|
|
1873
|
+
}
|
|
1874
|
+
},
|
|
1875
|
+
'y-line': {
|
|
1876
|
+
type: 'linear',
|
|
1877
|
+
position: 'right',
|
|
1878
|
+
stacked: false,
|
|
1879
|
+
ticks: {
|
|
1880
|
+
color: labelColor,
|
|
1881
|
+
font: {
|
|
1882
|
+
family: fontFamily,
|
|
1883
|
+
size: fontSize
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
grid: {
|
|
1887
|
+
color: gridColor
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1891
|
+
});
|
|
1892
|
+
}
|
|
1893
|
+
return _extends({}, base, {
|
|
1840
1894
|
scales: {
|
|
1841
1895
|
x: {
|
|
1896
|
+
stacked: false,
|
|
1842
1897
|
ticks: {
|
|
1843
1898
|
color: labelColor,
|
|
1844
1899
|
font: {
|
|
@@ -1851,7 +1906,9 @@ function ComboChart(_ref) {
|
|
|
1851
1906
|
}
|
|
1852
1907
|
},
|
|
1853
1908
|
y: {
|
|
1909
|
+
type: 'linear',
|
|
1854
1910
|
position: 'left',
|
|
1911
|
+
stacked: false,
|
|
1855
1912
|
ticks: {
|
|
1856
1913
|
color: labelColor,
|
|
1857
1914
|
font: {
|
|
@@ -1861,12 +1918,11 @@ function ComboChart(_ref) {
|
|
|
1861
1918
|
},
|
|
1862
1919
|
grid: {
|
|
1863
1920
|
color: gridColor
|
|
1864
|
-
}
|
|
1865
|
-
stacked: false
|
|
1921
|
+
}
|
|
1866
1922
|
}
|
|
1867
1923
|
}
|
|
1868
1924
|
});
|
|
1869
|
-
}, [title, showDataLabels, theme, fontFamily, fontSize, labelColor, gridColor, createFluentTooltip]);
|
|
1925
|
+
}, [title, showDataLabels, theme, fontFamily, fontSize, labelColor, gridColor, createFluentTooltip, getInstantInteractionAnimations, axesMode]);
|
|
1870
1926
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
|
|
1871
1927
|
className: styles.chartWithLegend
|
|
1872
1928
|
}, React__default.createElement("div", {
|