@mui/x-charts
Version:
The community edition of MUI X Charts components.
50 lines (49 loc) • 1.87 kB
JavaScript
;
'use client';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FocusedScatterMark = FocusedScatterMark;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var React = _interopRequireWildcard(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _styles = require("@mui/material/styles");
var _useFocusedItem = require("../hooks/useFocusedItem");
var _scatterClasses = require("./scatterClasses");
var _useScatterItemPosition = require("./useScatterItemPosition");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["className"];
function FocusedScatterMark(_ref) {
let {
className
} = _ref,
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
const theme = (0, _styles.useTheme)();
const focusedItem = (0, _useFocusedItem.useFocusedItem)();
const classes = (0, _scatterClasses.useUtilityClasses)();
const resolved = (0, _useScatterItemPosition.useScatterItemPosition)(focusedItem?.type === 'scatter' ? focusedItem : null);
if (!resolved) {
return null;
}
const {
cx,
cy,
series
} = resolved;
const size = series.markerSize + 3;
return /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", (0, _extends2.default)({
className: (0, _clsx.default)(classes.focusedMark, className),
fill: "none",
stroke: (theme.vars ?? theme).palette.text.primary,
strokeWidth: 2,
x: cx - size,
y: cy - size,
width: 2 * size,
height: 2 * size,
rx: 3,
ry: 3
}, props));
}