@semcore/chart
Version:
Semrush Chart Component
131 lines (128 loc) • 5.18 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _reactSmooth = _interopRequireDefault(require("react-smooth"));
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
var _recharts = require("recharts");
var _Layer = _interopRequireDefault(require("recharts/lib/container/Layer"));
var _ReactUtils = require("recharts/lib/util/ReactUtils");
var _colors = require("../../utils/colors");
var _copy = _interopRequireDefault(require("../../copy"));
var _excluded = ["outerRadius"];
var activeIndex = [];
function renderSectorItem(option, props, PieProps) {
var outerRadius = props.outerRadius,
other = (0, _objectWithoutProperties2["default"])(props, _excluded);
var isAnimationActive = PieProps.isAnimationActive,
shapeAnimationBegin = PieProps.shapeAnimationBegin,
shapeAnimationDuration = PieProps.shapeAnimationDuration,
shapeAnimationEasing = PieProps.shapeAnimationEasing,
_PieProps$shapeOuterR = PieProps.shapeOuterRadius,
shapeOuterRadius = _PieProps$shapeOuterR === void 0 ? outerRadius + 8 : _PieProps$shapeOuterR;
var fromOuterRadius = shapeOuterRadius;
var toOuterRadius = outerRadius;
var children = function children(outerRadius) {
return /*#__PURE__*/_react["default"].createElement(_recharts.Sector, (0, _extends2["default"])({}, other, {
outerRadius: outerRadius
}));
};
if ( /*#__PURE__*/_react["default"].isValidElement(option)) {
children = function children(outerRadius) {
return /*#__PURE__*/_react["default"].cloneElement(option, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), {}, {
outerRadius: outerRadius
}));
};
}
if ((0, _isFunction["default"])(option)) {
children = function children(outerRadius) {
return option((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), {}, {
outerRadius: outerRadius
}));
};
}
if ((0, _isPlainObject["default"])(option)) {
children = function children(outerRadius) {
return /*#__PURE__*/_react["default"].createElement(_recharts.Sector, (0, _extends2["default"])({}, option, other, {
outerRadius: outerRadius
}));
};
}
if (option || activeIndex.includes(other.id)) {
activeIndex = activeIndex.filter(function (index) {
return index !== other.id;
});
if (option) {
activeIndex.push(other.id);
var _ref = [toOuterRadius, fromOuterRadius];
fromOuterRadius = _ref[0];
toOuterRadius = _ref[1];
}
return /*#__PURE__*/_react["default"].createElement(_reactSmooth["default"], {
begin: shapeAnimationBegin,
duration: shapeAnimationDuration,
easing: shapeAnimationEasing,
isActive: isAnimationActive
//@ts-ignore
,
onAnimationStart: _recharts.Pie.prototype.handleAnimationStart
//@ts-ignore
,
onAnimationEnd: _recharts.Pie.prototype.handleAnimationEnd,
from: {
outerRadius: fromOuterRadius
},
to: {
outerRadius: toOuterRadius
}
}, function (_ref2) {
var outerRadius = _ref2.outerRadius;
return children(outerRadius);
});
}
return children(outerRadius);
}
//@ts-ignore
_recharts.Pie.prototype.renderSectorsStatically = function (sectors) {
var _this = this;
var _this$props = this.props,
activeShape = _this$props.activeShape,
blendStroke = _this$props.blendStroke;
return sectors.map(function (entry, i) {
var sectorOptions = _this.isActiveIndex(i) ? activeShape : null;
var sectorProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, entry), {}, {
stroke: blendStroke ? entry.fill : entry.stroke
});
return /*#__PURE__*/_react["default"].createElement(_Layer["default"], (0, _extends2["default"])({
className: "recharts-pie-sector"
}, (0, _ReactUtils.filterEventsOfChild)(_this.props, entry, i), {
key: "sector-".concat(i)
}), renderSectorItem(sectorOptions, sectorProps, _this.props));
});
};
/**
* @deprecated Please, use package `@semcore/ui/d3-chart` instead. Package `@semcore/chart` is deprecated.
*/
var _default = (0, _copy["default"])(_recharts.Pie, {
defaultProps: {
fill: _colors.colors['blue-01'],
animationDuration: 350,
animationEasing: 'ease-in-out',
paddingAngle: 1,
animationShapeBegin: 0,
animationShapeDuration: 300,
animationShapeEasing: 'ease-in'
},
render: function render() {
return /*#__PURE__*/_react["default"].createElement(_recharts.Pie, this.props);
}
});
exports["default"] = _default;
//# sourceMappingURL=Pie.js.map