@antv/g2plot
Version:
An interactive and responsive charting library
70 lines • 2.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getViewLegendItems = void 0;
var util_1 = require("@antv/util");
var g2_1 = require("@antv/g2");
var utils_1 = require("../../../utils");
var option_1 = require("./option");
/**
* 获取 view 的 legendItem,供存在不含有 seriesField 的图形使用
* @param params
*/
function getViewLegendItems(params) {
var view = params.view, geometryOption = params.geometryOption, yField = params.yField, legend = params.legend;
var userMarker = util_1.get(legend, 'marker');
var geometry = utils_1.findGeometry(view, option_1.isLine(geometryOption) ? 'line' : 'interval');
if (!geometryOption.seriesField) {
var legendItemName = util_1.get(view, "options.scales." + yField + ".alias") || yField;
// 返回 g2 设置的图例
var colorAttribute = geometry.getAttribute('color');
var color = view.getTheme().defaultColor;
if (colorAttribute) {
color = g2_1.Util.getMappingValue(colorAttribute, legendItemName, util_1.get(colorAttribute, ['values', 0], color));
}
var marker = (util_1.isFunction(userMarker)
? userMarker
: !util_1.isEmpty(userMarker) &&
utils_1.deepAssign({}, {
style: {
stroke: color,
fill: color,
},
}, userMarker)) ||
(option_1.isLine(geometryOption)
? {
symbol: function (x, y, r) {
return [
['M', x - r, y],
['L', x + r, y],
];
},
style: {
lineWidth: 2,
r: 6,
stroke: color,
},
}
: {
symbol: 'square',
style: {
fill: color,
},
});
return [
{
value: yField,
name: legendItemName,
marker: marker,
isGeometry: true,
viewId: view.id,
},
];
}
var attributes = geometry.getGroupAttributes();
return util_1.reduce(attributes, function (items, attr) {
var attrItems = g2_1.Util.getLegendItems(view, geometry, attr, view.getTheme(), userMarker);
return items.concat(attrItems);
}, []);
}
exports.getViewLegendItems = getViewLegendItems;
//# sourceMappingURL=legend.js.map
;