@antv/f2
Version:
Charts for mobile visualization.
41 lines • 1.35 kB
JavaScript
import { __assign, __extends } from "tslib";
import { jsx, Component } from '@antv/f-engine';
import { each } from '@antv/util';
export default (function (View) {
return /** @class */function (_super) {
__extends(ElementLink, _super);
function ElementLink(props) {
return _super.call(this, props) || this;
}
ElementLink.prototype.getHighlightData = function () {
var props = this.props;
var chart = props.chart;
var highlights = chart.state.highlights;
var geometry = chart.getGeometrys()[0];
var data = geometry.flatRecords();
var elements = [];
each(highlights, function (condition, field) {
if (!condition) return;
var highlightsData = data.filter(function (record) {
return condition(record[field], record);
});
if (!highlightsData.length) return;
elements.push({
highlightsData: highlightsData,
field: field,
color: highlightsData[0].color || 'transparent'
});
});
return elements;
};
ElementLink.prototype.render = function () {
var props = this.props;
var elements = this.getHighlightData();
if (!elements.length) return null;
return jsx(View, __assign({
elements: elements
}, props));
};
return ElementLink;
}(Component);
});