| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import { Util } from '@antv/g2';
- import { get, isEmpty, isFunction, reduce } from '@antv/util';
- import { deepAssign, findGeometry } from '../../../utils';
- import { isLine } from './option';
- /**
- * 获取 view 的 legendItem,供存在不含有 seriesField 的图形使用
- * @param params
- */
- export function getViewLegendItems(params) {
- var view = params.view, geometryOption = params.geometryOption, yField = params.yField, legend = params.legend;
- var userMarker = get(legend, 'marker');
- var geometry = findGeometry(view, isLine(geometryOption) ? 'line' : 'interval');
- if (!geometryOption.seriesField) {
- var legendItemName = get(view, "options.scales.".concat(yField, ".alias")) || yField;
- // 返回 g2 设置的图例
- var colorAttribute = geometry.getAttribute('color');
- var color = view.getTheme().defaultColor;
- if (colorAttribute) {
- color = Util.getMappingValue(colorAttribute, legendItemName, get(colorAttribute, ['values', 0], color));
- }
- var marker = (isFunction(userMarker)
- ? userMarker
- : !isEmpty(userMarker) &&
- deepAssign({}, {
- style: {
- stroke: color,
- fill: color,
- },
- }, userMarker)) ||
- (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 reduce(attributes, function (items, attr) {
- var attrItems = Util.getLegendItems(view, geometry, attr, view.getTheme(), userMarker);
- return items.concat(attrItems);
- }, []);
- }
- //# sourceMappingURL=legend.js.map
|