legend.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getViewLegendItems = void 0;
  4. var g2_1 = require("@antv/g2");
  5. var util_1 = require("@antv/util");
  6. var utils_1 = require("../../../utils");
  7. var option_1 = require("./option");
  8. /**
  9. * 获取 view 的 legendItem,供存在不含有 seriesField 的图形使用
  10. * @param params
  11. */
  12. function getViewLegendItems(params) {
  13. var view = params.view, geometryOption = params.geometryOption, yField = params.yField, legend = params.legend;
  14. var userMarker = (0, util_1.get)(legend, 'marker');
  15. var geometry = (0, utils_1.findGeometry)(view, (0, option_1.isLine)(geometryOption) ? 'line' : 'interval');
  16. if (!geometryOption.seriesField) {
  17. var legendItemName = (0, util_1.get)(view, "options.scales.".concat(yField, ".alias")) || yField;
  18. // 返回 g2 设置的图例
  19. var colorAttribute = geometry.getAttribute('color');
  20. var color = view.getTheme().defaultColor;
  21. if (colorAttribute) {
  22. color = g2_1.Util.getMappingValue(colorAttribute, legendItemName, (0, util_1.get)(colorAttribute, ['values', 0], color));
  23. }
  24. var marker = ((0, util_1.isFunction)(userMarker)
  25. ? userMarker
  26. : !(0, util_1.isEmpty)(userMarker) &&
  27. (0, utils_1.deepAssign)({}, {
  28. style: {
  29. stroke: color,
  30. fill: color,
  31. },
  32. }, userMarker)) ||
  33. ((0, option_1.isLine)(geometryOption)
  34. ? {
  35. symbol: function (x, y, r) {
  36. return [
  37. ['M', x - r, y],
  38. ['L', x + r, y],
  39. ];
  40. },
  41. style: {
  42. lineWidth: 2,
  43. r: 6,
  44. stroke: color,
  45. },
  46. }
  47. : {
  48. symbol: 'square',
  49. style: {
  50. fill: color,
  51. },
  52. });
  53. return [
  54. {
  55. value: yField,
  56. name: legendItemName,
  57. marker: marker,
  58. isGeometry: true,
  59. viewId: view.id,
  60. },
  61. ];
  62. }
  63. var attributes = geometry.getGroupAttributes();
  64. return (0, util_1.reduce)(attributes, function (items, attr) {
  65. var attrItems = g2_1.Util.getLegendItems(view, geometry, attr, view.getTheme(), userMarker);
  66. return items.concat(attrItems);
  67. }, []);
  68. }
  69. exports.getViewLegendItems = getViewLegendItems;
  70. //# sourceMappingURL=legend.js.map