source: node_modules/recharts/es6/state/selectors/selectors.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 6.2 KB
Line 
1import { createSelector } from 'reselect';
2import sortBy from 'es-toolkit/compat/sortBy';
3import { useAppSelector } from '../hooks';
4import { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';
5import { selectChartDataWithIndexes } from './dataSelectors';
6import { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './tooltipSelectors';
7import { selectTooltipAxisDataKey } from './axisSelectors';
8import { selectChartName } from './rootPropsSelectors';
9import { selectChartLayout } from '../../context/chartLayoutContext';
10import { selectChartOffsetInternal } from './selectChartOffsetInternal';
11import { selectChartHeight, selectChartWidth } from './containerSelectors';
12import { combineActiveLabel } from './combiners/combineActiveLabel';
13import { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';
14import { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';
15import { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';
16import { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';
17import { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';
18import { selectTooltipState } from './selectTooltipState';
19import { combineTooltipPayload } from './combiners/combineTooltipPayload';
20import { calculateActiveTickIndex, getActiveCartesianCoordinate, getActivePolarCoordinate, isInCartesianRange } from '../../util/getActiveCoordinate';
21import { inRangeOfSector } from '../../util/PolarUtils';
22export var useChartName = () => {
23 return useAppSelector(selectChartName);
24};
25var pickTooltipEventType = (_state, tooltipEventType) => tooltipEventType;
26var pickTrigger = (_state, _tooltipEventType, trigger) => trigger;
27var pickDefaultIndex = (_state, _tooltipEventType, _trigger, defaultIndex) => defaultIndex;
28export var selectOrderedTooltipTicks = createSelector(selectTooltipAxisTicks, ticks => sortBy(ticks, o => o.coordinate));
29export var selectTooltipInteractionState = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipInteractionState);
30export var selectActiveIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain], combineActiveTooltipIndex);
31export var selectTooltipDataKey = (state, tooltipEventType, trigger) => {
32 if (tooltipEventType == null) {
33 return undefined;
34 }
35 var tooltipState = selectTooltipState(state);
36 if (tooltipEventType === 'axis') {
37 if (trigger === 'hover') {
38 return tooltipState.axisInteraction.hover.dataKey;
39 }
40 return tooltipState.axisInteraction.click.dataKey;
41 }
42 if (trigger === 'hover') {
43 return tooltipState.itemInteraction.hover.dataKey;
44 }
45 return tooltipState.itemInteraction.click.dataKey;
46};
47export var selectTooltipPayloadConfigurations = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipPayloadConfigurations);
48export var selectCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, pickDefaultIndex, selectTooltipPayloadConfigurations], combineCoordinateForDefaultIndex);
49export var selectActiveCoordinate = createSelector([selectTooltipInteractionState, selectCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {
50 var _tooltipInteractionSt;
51 return (_tooltipInteractionSt = tooltipInteractionState.coordinate) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : defaultIndexCoordinate;
52});
53export var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveIndex], combineActiveLabel);
54export var selectTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, pickTooltipEventType], combineTooltipPayload);
55export var selectIsTooltipActive = createSelector([selectTooltipInteractionState, selectActiveIndex], (tooltipInteractionState, activeIndex) => {
56 return {
57 isActive: tooltipInteractionState.active && activeIndex != null,
58 activeIndex
59 };
60});
61var combineActiveCartesianProps = (chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
62 if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
63 return undefined;
64 }
65 if (!isInCartesianRange(chartEvent, offset)) {
66 return undefined;
67 }
68 var pos = calculateCartesianTooltipPos(chartEvent, layout);
69 var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
70 var activeCoordinate = getActiveCartesianCoordinate(layout, tooltipTicks, activeIndex, chartEvent);
71 return {
72 activeIndex: String(activeIndex),
73 activeCoordinate
74 };
75};
76var combineActivePolarProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks) => {
77 if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {
78 return undefined;
79 }
80 var rangeObj = inRangeOfSector(chartEvent, polarViewBox);
81 if (!rangeObj) {
82 return undefined;
83 }
84 var pos = calculatePolarTooltipPos(rangeObj, layout);
85 var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);
86 var activeCoordinate = getActivePolarCoordinate(layout, tooltipTicks, activeIndex, rangeObj);
87 return {
88 activeIndex: String(activeIndex),
89 activeCoordinate
90 };
91};
92export var combineActiveProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {
93 if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
94 return undefined;
95 }
96 if (layout === 'horizontal' || layout === 'vertical') {
97 return combineActiveCartesianProps(chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset);
98 }
99 return combineActivePolarProps(chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks);
100};
Note: See TracBrowser for help on using the repository browser.