@mui/x-charts 8.22.1 → 8.23.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/BarChart/BarElement.js +1 -1
- package/BarChart/FocusedBar.js +1 -1
- package/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
- package/BarChart/seriesConfig/bar/keyboardFocusHandler.js +23 -0
- package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -2
- package/BarChart/seriesConfig/index.js +3 -1
- package/CHANGELOG.md +101 -0
- package/LineChart/FocusedLineMark.js +1 -1
- package/LineChart/seriesConfig/index.js +3 -1
- package/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/LineChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/LineChart/seriesConfig/seriesProcessor.js +2 -2
- package/PieChart/FocusedPieArc.js +1 -1
- package/PieChart/dataTransform/useTransformData.js +1 -1
- package/PieChart/seriesConfig/index.js +3 -1
- package/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/PieChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/ScatterChart/FocusedScatterMark.js +1 -1
- package/ScatterChart/seriesConfig/index.js +3 -1
- package/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/ScatterChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/esm/BarChart/BarElement.js +1 -1
- package/esm/BarChart/FocusedBar.js +1 -1
- package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
- package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.js +17 -0
- package/esm/BarChart/seriesConfig/bar/seriesProcessor.js +1 -1
- package/esm/BarChart/seriesConfig/index.js +3 -1
- package/esm/LineChart/FocusedLineMark.js +1 -1
- package/esm/LineChart/seriesConfig/index.js +3 -1
- package/esm/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/LineChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/LineChart/seriesConfig/seriesProcessor.js +1 -1
- package/esm/PieChart/FocusedPieArc.js +1 -1
- package/esm/PieChart/dataTransform/useTransformData.js +1 -1
- package/esm/PieChart/seriesConfig/index.js +3 -1
- package/esm/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/PieChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/ScatterChart/FocusedScatterMark.js +1 -1
- package/esm/ScatterChart/seriesConfig/index.js +3 -1
- package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/hooks/useFocusedItem.d.ts +1 -12
- package/esm/hooks/useFocusedItem.js +3 -10
- package/esm/hooks/useIsItemFocused.d.ts +4 -3
- package/esm/hooks/useIsItemFocused.js +1 -1
- package/esm/hooks/useIsItemFocusedGetter.d.ts +3 -2
- package/esm/hooks/useIsItemFocusedGetter.js +2 -1
- package/esm/index.js +1 -1
- package/esm/internals/commonNextFocusItem.d.ts +14 -0
- package/esm/internals/commonNextFocusItem.js +84 -0
- package/esm/internals/index.d.ts +1 -1
- package/esm/internals/index.js +1 -1
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +1 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +12 -105
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +9 -15
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +45 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +40 -0
- package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +1 -9
- package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +2 -2
- package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
- package/esm/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
- package/esm/internals/seriesHasData.d.ts +4 -0
- package/esm/internals/seriesHasData.js +8 -0
- package/esm/internals/stacking/index.d.ts +1 -0
- package/esm/internals/stacking/index.js +1 -0
- package/esm/internals/stacking/offset/index.d.ts +1 -0
- package/esm/internals/stacking/offset/index.js +1 -0
- package/esm/internals/stacking/offset/offsetDiverging.d.ts +8 -0
- package/esm/internals/stacking/offset/offsetDiverging.js +47 -0
- package/esm/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
- package/esm/internals/{stackSeries.js → stacking/stackSeries.js} +8 -6
- package/esm/models/seriesType/index.d.ts +3 -1
- package/hooks/useFocusedItem.d.ts +1 -12
- package/hooks/useFocusedItem.js +1 -10
- package/hooks/useIsItemFocused.d.ts +4 -3
- package/hooks/useIsItemFocused.js +1 -1
- package/hooks/useIsItemFocusedGetter.d.ts +3 -2
- package/hooks/useIsItemFocusedGetter.js +2 -1
- package/index.js +1 -1
- package/internals/commonNextFocusItem.d.ts +14 -0
- package/internals/commonNextFocusItem.js +93 -0
- package/internals/index.d.ts +1 -1
- package/internals/index.js +4 -4
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +5 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +11 -104
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +10 -16
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +51 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +46 -0
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +1 -9
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +1 -1
- package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
- package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
- package/internals/seriesHasData.d.ts +4 -0
- package/internals/seriesHasData.js +14 -0
- package/internals/stacking/index.d.ts +1 -0
- package/internals/stacking/index.js +16 -0
- package/internals/stacking/offset/index.d.ts +1 -0
- package/internals/stacking/offset/index.js +16 -0
- package/internals/stacking/offset/offsetDiverging.d.ts +8 -0
- package/internals/stacking/offset/offsetDiverging.js +53 -0
- package/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
- package/internals/{stackSeries.js → stacking/stackSeries.js} +3 -1
- package/models/seriesType/index.d.ts +3 -1
- package/package.json +4 -4
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -4
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -92
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -10
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -99
package/BarChart/BarElement.js
CHANGED
|
@@ -50,7 +50,7 @@ function BarElement(props) {
|
|
|
50
50
|
isHighlighted
|
|
51
51
|
} = (0, _useItemHighlighted.useItemHighlighted)(itemIdentifier);
|
|
52
52
|
const isFocused = (0, _useIsItemFocused.useIsItemFocused)(React.useMemo(() => ({
|
|
53
|
-
|
|
53
|
+
type: 'bar',
|
|
54
54
|
seriesId: id,
|
|
55
55
|
dataIndex
|
|
56
56
|
}), [id, dataIndex]));
|
package/BarChart/FocusedBar.js
CHANGED
|
@@ -26,7 +26,7 @@ function FocusedBar(props) {
|
|
|
26
26
|
yAxis,
|
|
27
27
|
yAxisIds
|
|
28
28
|
} = (0, _hooks.useYAxes)();
|
|
29
|
-
if (focusedItem === null || focusedItem.
|
|
29
|
+
if (focusedItem === null || focusedItem.type !== 'bar' || !barSeries) {
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
32
|
const series = barSeries?.series[focusedItem.seriesId];
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KeyboardFocusHandler } from "../../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
2
|
+
declare const keyboardFocusHandler: KeyboardFocusHandler<'bar', 'bar' | 'line' | 'scatter'>;
|
|
3
|
+
export default keyboardFocusHandler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _commonNextFocusItem = require("../../../internals/commonNextFocusItem");
|
|
8
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
9
|
+
const keyboardFocusHandler = event => {
|
|
10
|
+
switch (event.key) {
|
|
11
|
+
case 'ArrowRight':
|
|
12
|
+
return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
|
|
13
|
+
case 'ArrowLeft':
|
|
14
|
+
return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
|
|
15
|
+
case 'ArrowDown':
|
|
16
|
+
return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
|
|
17
|
+
case 'ArrowUp':
|
|
18
|
+
return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = keyboardFocusHandler;
|
|
@@ -8,14 +8,14 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
|
|
10
10
|
var _warning = require("@mui/x-internals/warning");
|
|
11
|
-
var
|
|
11
|
+
var _stacking = require("../../../internals/stacking");
|
|
12
12
|
const barValueFormatter = v => v == null ? '' : v.toLocaleString();
|
|
13
13
|
const seriesProcessor = (params, dataset) => {
|
|
14
14
|
const {
|
|
15
15
|
seriesOrder,
|
|
16
16
|
series
|
|
17
17
|
} = params;
|
|
18
|
-
const stackingGroups = (0,
|
|
18
|
+
const stackingGroups = (0, _stacking.getStackingGroups)(params);
|
|
19
19
|
|
|
20
20
|
// Create a data set with format adapted to d3
|
|
21
21
|
const d3Dataset = dataset ?? [];
|
|
@@ -10,6 +10,7 @@ var _extremums = require("./bar/extremums");
|
|
|
10
10
|
var _seriesProcessor = _interopRequireDefault(require("./bar/seriesProcessor"));
|
|
11
11
|
var _legend = _interopRequireDefault(require("./bar/legend"));
|
|
12
12
|
var _getColor = _interopRequireDefault(require("./bar/getColor"));
|
|
13
|
+
var _keyboardFocusHandler = _interopRequireDefault(require("./bar/keyboardFocusHandler"));
|
|
13
14
|
var _tooltip = _interopRequireWildcard(require("./bar/tooltip"));
|
|
14
15
|
var _tooltipPosition = _interopRequireDefault(require("./bar/tooltipPosition"));
|
|
15
16
|
var _getSeriesWithDefaultValues = require("./bar/getSeriesWithDefaultValues");
|
|
@@ -22,5 +23,6 @@ const barSeriesConfig = exports.barSeriesConfig = {
|
|
|
22
23
|
axisTooltipGetter: _tooltip.axisTooltipGetter,
|
|
23
24
|
xExtremumGetter: _extremums.getExtremumX,
|
|
24
25
|
yExtremumGetter: _extremums.getExtremumY,
|
|
25
|
-
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues
|
|
26
|
+
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues,
|
|
27
|
+
keyboardFocusHandler: _keyboardFocusHandler.default
|
|
26
28
|
};
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,107 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.23.0
|
|
9
|
+
|
|
10
|
+
_Dec 23, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🧮 Support Data Grid `size`, `size(true)`, and `size(false)` [aggregations for `'boolean'` column type](https://mui.com/x/react-data-grid/aggregation/#usage-with-row-grouping)
|
|
15
|
+
- 🔎 Allow zooming a heatmap
|
|
16
|
+
|
|
17
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
18
|
+
@henkerik, @sai6855
|
|
19
|
+
|
|
20
|
+
The following team members contributed to this release:
|
|
21
|
+
@alelthomas, @alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @flaviendelangle, @JCQuintas, @mapache-salvaje, @MBilalShafi, @siriwatknp
|
|
22
|
+
|
|
23
|
+
### Data Grid
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid@8.23.0`
|
|
26
|
+
|
|
27
|
+
- [DataGrid] Fix columns state and columns prop sync issue (#20703) @arminmeh
|
|
28
|
+
- [DataGrid] Fix filter datetime with seconds (#20557) @siriwatknp
|
|
29
|
+
- [DataGrid] Add new `includeHeaderFilters` flag to include header filters when autosizing columns (#20510) @siriwatknp
|
|
30
|
+
- [DataGrid] Prevent default on `Enter` key down when starting editing (#20751) @siriwatknp
|
|
31
|
+
- [l10n] Improve Portuguese from Portugal (pt-PT) locale (#20722) @Copilot
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-pro@8.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid@8.23.0`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPro] Fix crash on rows change in tree data with pagination (#20215) @Copilot
|
|
38
|
+
|
|
39
|
+
#### `@mui/x-data-grid-premium@8.23.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
40
|
+
|
|
41
|
+
Same changes as in `@mui/x-data-grid-pro@8.23.0`, plus:
|
|
42
|
+
|
|
43
|
+
- [DataGridPremium] Add aggregation for `'boolean'` column type (#20683) @arminmeh
|
|
44
|
+
- [DataGridPremium] Fix strategy value computation with row grouping (#20725) @MBilalShafi
|
|
45
|
+
- [DataGridPremium] Handle `isRowSelectable()` checks for the rows missing due to `keepNonExistentRowsSelected` (#20668) @arminmeh
|
|
46
|
+
|
|
47
|
+
### Date and Time Pickers
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers@8.23.0`
|
|
50
|
+
|
|
51
|
+
Internal changes.
|
|
52
|
+
|
|
53
|
+
#### `@mui/x-date-pickers-pro@8.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
54
|
+
|
|
55
|
+
Same changes as in `@mui/x-date-pickers@8.23.0`.
|
|
56
|
+
|
|
57
|
+
### Charts
|
|
58
|
+
|
|
59
|
+
#### `@mui/x-charts@8.23.0`
|
|
60
|
+
|
|
61
|
+
- [charts] Custom stack functions implementation (#20679) @JCQuintas
|
|
62
|
+
- [charts] Extract keyboard focus navigation to the series config (#20693) @alexfauquette
|
|
63
|
+
- [charts] Fix demo not wrapping in mobile (#20713) @JCQuintas
|
|
64
|
+
- [charts] Fix missing dependencies in `x-charts-vendor` (#20685) @henkerik
|
|
65
|
+
- [charts] Remove webkit test differences (#20707) @JCQuintas
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-pro@8.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts@8.23.0`, plus:
|
|
70
|
+
|
|
71
|
+
- [charts-pro] Allow registering preview plots from higher tier packages (#20716) @bernardobelchior
|
|
72
|
+
- [charts-pro] Fix erroneous behavior when adding/removing pointers from zoom&pan gestures (#20698) @JCQuintas
|
|
73
|
+
- [charts-pro] Move heatmap highlight handling to plot component (#20701) @bernardobelchior
|
|
74
|
+
- [charts-pro] Add zoom to heatmap (#20708) @bernardobelchior
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-charts-premium@8.23.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
77
|
+
|
|
78
|
+
Same changes as in `@mui/x-charts-pro@8.23.0`.
|
|
79
|
+
|
|
80
|
+
### Tree View
|
|
81
|
+
|
|
82
|
+
#### `@mui/x-tree-view@8.23.0`
|
|
83
|
+
|
|
84
|
+
- [tree view] Add new APIs to disable selection feature for tree view item (#20666) @siriwatknp
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-tree-view-pro@8.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
87
|
+
|
|
88
|
+
Same changes as in `@mui/x-tree-view@8.23.0`.
|
|
89
|
+
|
|
90
|
+
### Codemod
|
|
91
|
+
|
|
92
|
+
#### `@mui/x-codemod@8.23.0`
|
|
93
|
+
|
|
94
|
+
Internal changes.
|
|
95
|
+
|
|
96
|
+
### Docs
|
|
97
|
+
|
|
98
|
+
- [docs] Clarify feature availability and relationship between Community and Pro/Premium docs (#20714) @mapache-salvaje
|
|
99
|
+
- [docs] Copyedit Tree View docs and apply new component style rules (DX-19) (#20652) @mapache-salvaje
|
|
100
|
+
- [docs] Fix `ColumnPinningDynamicRowHeight` demo (#20750) @sai6855
|
|
101
|
+
- [docs] Clean up Charts docs sidebar (DX-97) (#20700) @alelthomas
|
|
102
|
+
- [docs] Fix tick labels not being shown on a demo (#20718) @sai6855
|
|
103
|
+
|
|
104
|
+
### Core
|
|
105
|
+
|
|
106
|
+
- [code-infra] Bump prettier to 3.7.4 (#20709) @JCQuintas
|
|
107
|
+
- [code-infra] Fix contributor generation logic in changelog script (#20705) @brijeshb42
|
|
108
|
+
|
|
8
109
|
## 8.22.1
|
|
9
110
|
|
|
10
111
|
_Dec 17, 2025_
|
|
@@ -22,7 +22,7 @@ function FocusedLineMark() {
|
|
|
22
22
|
yAxis,
|
|
23
23
|
yAxisIds
|
|
24
24
|
} = (0, _hooks.useYAxes)();
|
|
25
|
-
if (focusedItem === null || focusedItem.
|
|
25
|
+
if (focusedItem === null || focusedItem.type !== 'line' || !lineSeries) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
28
|
const series = lineSeries?.series[focusedItem.seriesId];
|
|
@@ -13,6 +13,7 @@ var _legend = _interopRequireDefault(require("./legend"));
|
|
|
13
13
|
var _tooltip = _interopRequireWildcard(require("./tooltip"));
|
|
14
14
|
var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
|
|
15
15
|
var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
|
|
16
|
+
var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
|
|
16
17
|
const lineSeriesConfig = exports.lineSeriesConfig = {
|
|
17
18
|
colorProcessor: _getColor.default,
|
|
18
19
|
seriesProcessor: _seriesProcessor.default,
|
|
@@ -22,5 +23,6 @@ const lineSeriesConfig = exports.lineSeriesConfig = {
|
|
|
22
23
|
axisTooltipGetter: _tooltip.axisTooltipGetter,
|
|
23
24
|
xExtremumGetter: _extremums.getExtremumX,
|
|
24
25
|
yExtremumGetter: _extremums.getExtremumY,
|
|
25
|
-
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
|
|
26
|
+
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
|
|
27
|
+
keyboardFocusHandler: _keyboardFocusHandler.default
|
|
26
28
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
|
|
8
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
9
|
+
const keyboardFocusHandler = event => {
|
|
10
|
+
switch (event.key) {
|
|
11
|
+
case 'ArrowRight':
|
|
12
|
+
return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
|
|
13
|
+
case 'ArrowLeft':
|
|
14
|
+
return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
|
|
15
|
+
case 'ArrowDown':
|
|
16
|
+
return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
|
|
17
|
+
case 'ArrowUp':
|
|
18
|
+
return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = keyboardFocusHandler;
|
|
@@ -8,13 +8,13 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
|
|
10
10
|
var _warning = require("@mui/x-internals/warning");
|
|
11
|
-
var
|
|
11
|
+
var _stacking = require("../../internals/stacking");
|
|
12
12
|
const seriesProcessor = (params, dataset) => {
|
|
13
13
|
const {
|
|
14
14
|
seriesOrder,
|
|
15
15
|
series
|
|
16
16
|
} = params;
|
|
17
|
-
const stackingGroups = (0,
|
|
17
|
+
const stackingGroups = (0, _stacking.getStackingGroups)((0, _extends2.default)({}, params, {
|
|
18
18
|
defaultStrategy: {
|
|
19
19
|
stackOffset: 'none'
|
|
20
20
|
}
|
|
@@ -25,7 +25,7 @@ function FocusedPieArc(props) {
|
|
|
25
25
|
isFaded
|
|
26
26
|
} = (0, _useItemHighlighted.useItemHighlighted)(focusedItem);
|
|
27
27
|
const pieSeries = (0, _usePieSeries.usePieSeriesContext)();
|
|
28
|
-
if (focusedItem === null || focusedItem.
|
|
28
|
+
if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
31
31
|
const series = pieSeries?.series[focusedItem.seriesId];
|
|
@@ -32,7 +32,7 @@ function useTransformData(series) {
|
|
|
32
32
|
const isHighlighted = isItemHighlighted(currentItem);
|
|
33
33
|
const isFaded = !isHighlighted && isItemFaded(currentItem);
|
|
34
34
|
const isFocused = isItemFocused({
|
|
35
|
-
|
|
35
|
+
type: 'pie',
|
|
36
36
|
seriesId,
|
|
37
37
|
dataIndex: itemIndex
|
|
38
38
|
});
|
|
@@ -12,6 +12,7 @@ var _tooltip = _interopRequireDefault(require("./tooltip"));
|
|
|
12
12
|
var _seriesLayout = _interopRequireDefault(require("./seriesLayout"));
|
|
13
13
|
var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
|
|
14
14
|
var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
|
|
15
|
+
var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
|
|
15
16
|
const pieSeriesConfig = exports.pieSeriesConfig = {
|
|
16
17
|
colorProcessor: _getColor.default,
|
|
17
18
|
seriesProcessor: _seriesProcessor.default,
|
|
@@ -19,5 +20,6 @@ const pieSeriesConfig = exports.pieSeriesConfig = {
|
|
|
19
20
|
legendGetter: _legend.default,
|
|
20
21
|
tooltipGetter: _tooltip.default,
|
|
21
22
|
tooltipItemPositionGetter: _tooltipPosition.default,
|
|
22
|
-
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
|
|
23
|
+
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
|
|
24
|
+
keyboardFocusHandler: _keyboardFocusHandler.default
|
|
23
25
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
|
|
8
|
+
const outSeriesTypes = new Set(['pie']);
|
|
9
|
+
const keyboardFocusHandler = event => {
|
|
10
|
+
switch (event.key) {
|
|
11
|
+
case 'ArrowRight':
|
|
12
|
+
return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
|
|
13
|
+
case 'ArrowLeft':
|
|
14
|
+
return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
|
|
15
|
+
case 'ArrowDown':
|
|
16
|
+
return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
|
|
17
|
+
case 'ArrowUp':
|
|
18
|
+
return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = keyboardFocusHandler;
|
|
@@ -25,7 +25,7 @@ function FocusedScatterMark(props) {
|
|
|
25
25
|
yAxis,
|
|
26
26
|
yAxisIds
|
|
27
27
|
} = (0, _hooks.useYAxes)();
|
|
28
|
-
if (focusedItem === null || focusedItem.
|
|
28
|
+
if (focusedItem === null || focusedItem.type !== 'scatter' || !scatterSeries) {
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
31
31
|
const series = scatterSeries?.series[focusedItem.seriesId];
|
|
@@ -12,6 +12,7 @@ var _legend = _interopRequireDefault(require("./legend"));
|
|
|
12
12
|
var _tooltip = _interopRequireDefault(require("./tooltip"));
|
|
13
13
|
var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
|
|
14
14
|
var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
|
|
15
|
+
var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
|
|
15
16
|
const scatterSeriesConfig = exports.scatterSeriesConfig = {
|
|
16
17
|
seriesProcessor: _seriesProcessor.default,
|
|
17
18
|
colorProcessor: _getColor.default,
|
|
@@ -20,5 +21,6 @@ const scatterSeriesConfig = exports.scatterSeriesConfig = {
|
|
|
20
21
|
tooltipItemPositionGetter: _tooltipPosition.default,
|
|
21
22
|
xExtremumGetter: _extremums.getExtremumX,
|
|
22
23
|
yExtremumGetter: _extremums.getExtremumY,
|
|
23
|
-
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
|
|
24
|
+
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
|
|
25
|
+
keyboardFocusHandler: _keyboardFocusHandler.default
|
|
24
26
|
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
2
|
+
declare const keyboardFocusHandler: KeyboardFocusHandler<'scatter', 'bar' | 'line' | 'scatter'>;
|
|
3
|
+
export default keyboardFocusHandler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
|
|
8
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
9
|
+
const keyboardFocusHandler = event => {
|
|
10
|
+
switch (event.key) {
|
|
11
|
+
case 'ArrowRight':
|
|
12
|
+
return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
|
|
13
|
+
case 'ArrowLeft':
|
|
14
|
+
return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
|
|
15
|
+
case 'ArrowDown':
|
|
16
|
+
return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
|
|
17
|
+
case 'ArrowUp':
|
|
18
|
+
return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = keyboardFocusHandler;
|
|
@@ -19,7 +19,7 @@ export function FocusedBar(props) {
|
|
|
19
19
|
yAxis,
|
|
20
20
|
yAxisIds
|
|
21
21
|
} = useYAxes();
|
|
22
|
-
if (focusedItem === null || focusedItem.
|
|
22
|
+
if (focusedItem === null || focusedItem.type !== 'bar' || !barSeries) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
25
|
const series = barSeries?.series[focusedItem.seriesId];
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KeyboardFocusHandler } from "../../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
2
|
+
declare const keyboardFocusHandler: KeyboardFocusHandler<'bar', 'bar' | 'line' | 'scatter'>;
|
|
3
|
+
export default keyboardFocusHandler;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../../internals/commonNextFocusItem.js";
|
|
2
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
3
|
+
const keyboardFocusHandler = event => {
|
|
4
|
+
switch (event.key) {
|
|
5
|
+
case 'ArrowRight':
|
|
6
|
+
return createGetNextIndexFocusedItem(outSeriesTypes);
|
|
7
|
+
case 'ArrowLeft':
|
|
8
|
+
return createGetPreviousIndexFocusedItem(outSeriesTypes);
|
|
9
|
+
case 'ArrowDown':
|
|
10
|
+
return createGetPreviousSeriesFocusedItem(outSeriesTypes);
|
|
11
|
+
case 'ArrowUp':
|
|
12
|
+
return createGetNextSeriesFocusedItem(outSeriesTypes);
|
|
13
|
+
default:
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export default keyboardFocusHandler;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { stack as d3Stack } from '@mui/x-charts-vendor/d3-shape';
|
|
3
3
|
import { warnOnce } from '@mui/x-internals/warning';
|
|
4
|
-
import { getStackingGroups } from "../../../internals/
|
|
4
|
+
import { getStackingGroups } from "../../../internals/stacking/index.js";
|
|
5
5
|
const barValueFormatter = v => v == null ? '' : v.toLocaleString();
|
|
6
6
|
const seriesProcessor = (params, dataset) => {
|
|
7
7
|
const {
|
|
@@ -2,6 +2,7 @@ import { getExtremumX, getExtremumY } from "./bar/extremums.js";
|
|
|
2
2
|
import seriesProcessor from "./bar/seriesProcessor.js";
|
|
3
3
|
import legendGetter from "./bar/legend.js";
|
|
4
4
|
import getColor from "./bar/getColor.js";
|
|
5
|
+
import keyboardFocusHandler from "./bar/keyboardFocusHandler.js";
|
|
5
6
|
import tooltipGetter, { axisTooltipGetter } from "./bar/tooltip.js";
|
|
6
7
|
import tooltipItemPositionGetter from "./bar/tooltipPosition.js";
|
|
7
8
|
import { getSeriesWithDefaultValues } from "./bar/getSeriesWithDefaultValues.js";
|
|
@@ -14,5 +15,6 @@ export const barSeriesConfig = {
|
|
|
14
15
|
axisTooltipGetter,
|
|
15
16
|
xExtremumGetter: getExtremumX,
|
|
16
17
|
yExtremumGetter: getExtremumY,
|
|
17
|
-
getSeriesWithDefaultValues
|
|
18
|
+
getSeriesWithDefaultValues,
|
|
19
|
+
keyboardFocusHandler
|
|
18
20
|
};
|
|
@@ -17,7 +17,7 @@ export function FocusedLineMark() {
|
|
|
17
17
|
yAxis,
|
|
18
18
|
yAxisIds
|
|
19
19
|
} = useYAxes();
|
|
20
|
-
if (focusedItem === null || focusedItem.
|
|
20
|
+
if (focusedItem === null || focusedItem.type !== 'line' || !lineSeries) {
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
const series = lineSeries?.series[focusedItem.seriesId];
|
|
@@ -5,6 +5,7 @@ import legendGetter from "./legend.js";
|
|
|
5
5
|
import tooltipGetter, { axisTooltipGetter } from "./tooltip.js";
|
|
6
6
|
import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
|
|
7
7
|
import tooltipItemPositionGetter from "./tooltipPosition.js";
|
|
8
|
+
import keyboardFocusHandler from "./keyboardFocusHandler.js";
|
|
8
9
|
export const lineSeriesConfig = {
|
|
9
10
|
colorProcessor: getColor,
|
|
10
11
|
seriesProcessor,
|
|
@@ -14,5 +15,6 @@ export const lineSeriesConfig = {
|
|
|
14
15
|
axisTooltipGetter,
|
|
15
16
|
xExtremumGetter: getExtremumX,
|
|
16
17
|
yExtremumGetter: getExtremumY,
|
|
17
|
-
getSeriesWithDefaultValues
|
|
18
|
+
getSeriesWithDefaultValues,
|
|
19
|
+
keyboardFocusHandler
|
|
18
20
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
|
|
2
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
3
|
+
const keyboardFocusHandler = event => {
|
|
4
|
+
switch (event.key) {
|
|
5
|
+
case 'ArrowRight':
|
|
6
|
+
return createGetNextIndexFocusedItem(outSeriesTypes);
|
|
7
|
+
case 'ArrowLeft':
|
|
8
|
+
return createGetPreviousIndexFocusedItem(outSeriesTypes);
|
|
9
|
+
case 'ArrowDown':
|
|
10
|
+
return createGetPreviousSeriesFocusedItem(outSeriesTypes);
|
|
11
|
+
case 'ArrowUp':
|
|
12
|
+
return createGetNextSeriesFocusedItem(outSeriesTypes);
|
|
13
|
+
default:
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export default keyboardFocusHandler;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { stack as d3Stack } from '@mui/x-charts-vendor/d3-shape';
|
|
3
3
|
import { warnOnce } from '@mui/x-internals/warning';
|
|
4
|
-
import { getStackingGroups } from "../../internals/
|
|
4
|
+
import { getStackingGroups } from "../../internals/stacking/index.js";
|
|
5
5
|
const seriesProcessor = (params, dataset) => {
|
|
6
6
|
const {
|
|
7
7
|
seriesOrder,
|
|
@@ -18,7 +18,7 @@ export function FocusedPieArc(props) {
|
|
|
18
18
|
isFaded
|
|
19
19
|
} = useItemHighlighted(focusedItem);
|
|
20
20
|
const pieSeries = usePieSeriesContext();
|
|
21
|
-
if (focusedItem === null || focusedItem.
|
|
21
|
+
if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
24
|
const series = pieSeries?.series[focusedItem.seriesId];
|
|
@@ -25,7 +25,7 @@ export function useTransformData(series) {
|
|
|
25
25
|
const isHighlighted = isItemHighlighted(currentItem);
|
|
26
26
|
const isFaded = !isHighlighted && isItemFaded(currentItem);
|
|
27
27
|
const isFocused = isItemFocused({
|
|
28
|
-
|
|
28
|
+
type: 'pie',
|
|
29
29
|
seriesId,
|
|
30
30
|
dataIndex: itemIndex
|
|
31
31
|
});
|
|
@@ -5,6 +5,7 @@ import tooltipGetter from "./tooltip.js";
|
|
|
5
5
|
import seriesLayout from "./seriesLayout.js";
|
|
6
6
|
import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
|
|
7
7
|
import tooltipItemPositionGetter from "./tooltipPosition.js";
|
|
8
|
+
import keyboardFocusHandler from "./keyboardFocusHandler.js";
|
|
8
9
|
export const pieSeriesConfig = {
|
|
9
10
|
colorProcessor: getColor,
|
|
10
11
|
seriesProcessor,
|
|
@@ -12,5 +13,6 @@ export const pieSeriesConfig = {
|
|
|
12
13
|
legendGetter,
|
|
13
14
|
tooltipGetter,
|
|
14
15
|
tooltipItemPositionGetter,
|
|
15
|
-
getSeriesWithDefaultValues
|
|
16
|
+
getSeriesWithDefaultValues,
|
|
17
|
+
keyboardFocusHandler
|
|
16
18
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
|
|
2
|
+
const outSeriesTypes = new Set(['pie']);
|
|
3
|
+
const keyboardFocusHandler = event => {
|
|
4
|
+
switch (event.key) {
|
|
5
|
+
case 'ArrowRight':
|
|
6
|
+
return createGetNextIndexFocusedItem(outSeriesTypes);
|
|
7
|
+
case 'ArrowLeft':
|
|
8
|
+
return createGetPreviousIndexFocusedItem(outSeriesTypes);
|
|
9
|
+
case 'ArrowDown':
|
|
10
|
+
return createGetPreviousSeriesFocusedItem(outSeriesTypes);
|
|
11
|
+
case 'ArrowUp':
|
|
12
|
+
return createGetNextSeriesFocusedItem(outSeriesTypes);
|
|
13
|
+
default:
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export default keyboardFocusHandler;
|
|
@@ -18,7 +18,7 @@ export function FocusedScatterMark(props) {
|
|
|
18
18
|
yAxis,
|
|
19
19
|
yAxisIds
|
|
20
20
|
} = useYAxes();
|
|
21
|
-
if (focusedItem === null || focusedItem.
|
|
21
|
+
if (focusedItem === null || focusedItem.type !== 'scatter' || !scatterSeries) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
24
|
const series = scatterSeries?.series[focusedItem.seriesId];
|
|
@@ -5,6 +5,7 @@ import legendGetter from "./legend.js";
|
|
|
5
5
|
import tooltipGetter from "./tooltip.js";
|
|
6
6
|
import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
|
|
7
7
|
import tooltipItemPositionGetter from "./tooltipPosition.js";
|
|
8
|
+
import keyboardFocusHandler from "./keyboardFocusHandler.js";
|
|
8
9
|
export const scatterSeriesConfig = {
|
|
9
10
|
seriesProcessor,
|
|
10
11
|
colorProcessor: getColor,
|
|
@@ -13,5 +14,6 @@ export const scatterSeriesConfig = {
|
|
|
13
14
|
tooltipItemPositionGetter,
|
|
14
15
|
xExtremumGetter: getExtremumX,
|
|
15
16
|
yExtremumGetter: getExtremumY,
|
|
16
|
-
getSeriesWithDefaultValues
|
|
17
|
+
getSeriesWithDefaultValues,
|
|
18
|
+
keyboardFocusHandler
|
|
17
19
|
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
2
|
+
declare const keyboardFocusHandler: KeyboardFocusHandler<'scatter', 'bar' | 'line' | 'scatter'>;
|
|
3
|
+
export default keyboardFocusHandler;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
|
|
2
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
3
|
+
const keyboardFocusHandler = event => {
|
|
4
|
+
switch (event.key) {
|
|
5
|
+
case 'ArrowRight':
|
|
6
|
+
return createGetNextIndexFocusedItem(outSeriesTypes);
|
|
7
|
+
case 'ArrowLeft':
|
|
8
|
+
return createGetPreviousIndexFocusedItem(outSeriesTypes);
|
|
9
|
+
case 'ArrowDown':
|
|
10
|
+
return createGetPreviousSeriesFocusedItem(outSeriesTypes);
|
|
11
|
+
case 'ArrowUp':
|
|
12
|
+
return createGetNextSeriesFocusedItem(outSeriesTypes);
|
|
13
|
+
default:
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export default keyboardFocusHandler;
|