@antv/f2
Version:
Charts for mobile visualization.
47 lines (46 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _tslib = require("tslib");
var _fEngine = require("@antv/f-engine");
var _util = require("@antv/util");
var _default = exports.default = function _default(View) {
return /** @class */function (_super) {
(0, _tslib.__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 = [];
(0, _util.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 (0, _fEngine.jsx)(View, (0, _tslib.__assign)({
elements: elements
}, props));
};
return ElementLink;
}(_fEngine.Component);
};