UNPKG

@semcore/chart

Version:
94 lines (93 loc) 3.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _recharts = require("recharts"); var _generateCategoricalChart = _interopRequireDefault(require("recharts/lib/chart/generateCategoricalChart")); var _PolarUtils = require("recharts/lib/util/PolarUtils"); var _ReactUtils = require("recharts/lib/util/ReactUtils"); var _Tooltip = require("../../Tooltip"); var generateCategoricalChart = function generateCategoricalChart(params) { var ReactComponent = (0, _generateCategoricalChart["default"])(params); ReactComponent.prototype.renderTooltip = function () { var children = this.props.children; var tooltipItem = (0, _ReactUtils.findChildByType)(children, _Tooltip.Tooltip); var displayedData = this.constructor.getDisplayedData(this.props, this.state); if (!tooltipItem) { return null; } var _this$state = this.state, isTooltipActive = _this$state.isTooltipActive, activeCoordinate = _this$state.activeCoordinate, activePayload = _this$state.activePayload, offset = _this$state.offset; var payload = []; if (isTooltipActive) { var dataKey = activePayload[0].dataKey; var commonValue = displayedData.reduce(function (acc, item) { acc += item[dataKey]; return acc; }, 0); payload = activePayload.map(function (item) { return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, Object.keys(item).reduce(function (acc, name) { if (name === 'payload') { return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, acc), item[name]); } return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, acc), {}, (0, _defineProperty2["default"])({}, name, item[name])); }, {})), {}, { percent: item[item.dataKey] / commonValue * 100 }); }); } return /*#__PURE__*/_react["default"].cloneElement(tooltipItem, { viewBox: (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, offset), {}, { x: offset.left, y: offset.top }), active: isTooltipActive, payload: payload, coordinate: activeCoordinate }); }; return ReactComponent; }; var _default = generateCategoricalChart({ chartName: 'PieChart', GraphicalChild: _recharts.Pie, eventType: 'item', legendContent: 'children', axisComponents: [{ axisType: 'angleAxis', AxisComp: _recharts.PolarAngleAxis }, { axisType: 'radiusAxis', AxisComp: _recharts.PolarRadiusAxis }], formatAxisMap: _PolarUtils.formatAxisMap, defaultProps: { layout: 'centric', startAngle: 0, endAngle: 360, cx: '50%', cy: '50%', innerRadius: 0, outerRadius: '80%' }, propTypes: { layout: _propTypes["default"].oneOf(['centric']), startAngle: _propTypes["default"].number, endAngle: _propTypes["default"].number, cx: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]), cy: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]), innerRadius: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]), outerRadius: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]) } }); exports["default"] = _default; //# sourceMappingURL=PieChart.js.map