@alicloud/cloud-charts
Version:

71 lines (68 loc) • 2.68 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _dependents = require("@antv/g2/esm/dependents");
var _reactDom = _interopRequireDefault(require("react-dom"));
var _react = _interopRequireDefault(require("react"));
var _TableLegend = _interopRequireDefault(require("./TableLegend"));
var _FoldableLegend = _interopRequireDefault(require("./FoldableLegend"));
var _GradientLegend = _interopRequireDefault(require("./GradientLegend"));
// 优先级:table > gradient > foldable
function switchLegendComponent(config, items, chart) {
if (config !== null && config !== void 0 && config.table) {
return /*#__PURE__*/_react["default"].createElement(_TableLegend["default"], {
config: config,
legendItems: items,
chart: chart
});
} else if (config !== null && config !== void 0 && config.gradient) {
return /*#__PURE__*/_react["default"].createElement(_GradientLegend["default"], {
config: config,
legendItems: items,
chart: chart
});
} else if (config !== null && config !== void 0 && config.foldable) {
return /*#__PURE__*/_react["default"].createElement(_FoldableLegend["default"], {
config: config,
legendItems: items,
chart: chart
});
}
return /*#__PURE__*/_react["default"].createElement(_TableLegend["default"], {
config: config,
legendItems: items,
chart: chart
});
}
// @ts-ignore
var ReactLegend = /*#__PURE__*/function (_CategoryLegend) {
(0, _inheritsLoose2["default"])(ReactLegend, _CategoryLegend);
function ReactLegend(props) {
var _this;
var cfg = props.cfg,
container = props.container,
chart = props.chart,
legendConfig = props.legendConfig;
_this = _CategoryLegend.call(this, cfg) || this;
_this.container = void 0;
_this.chart = void 0;
_this.legendConfig = void 0;
_this.container = container;
_this.chart = chart;
_this.legendConfig = legendConfig;
return _this;
}
var _proto = ReactLegend.prototype;
_proto.drawLegendContent = function drawLegendContent(group) {
var items = this.get('items');
// const currentPoint = this.get('currentPoint');
// const startX = currentPoint.x;
// const startY = currentPoint.y;
var LegendRender = switchLegendComponent(this.legendConfig, items, this.chart);
_reactDom["default"].render(LegendRender, this.container);
};
return ReactLegend;
}(_dependents.CategoryLegend);
var _default = exports["default"] = ReactLegend;