@antv/g2
Version:
the Grammar of Graphics in Javascript
51 lines • 1.8 kB
JavaScript
import { __extends } from "tslib";
import { getElements, getElementValue, getCurrentElement } from '../util';
import Highlight, { STATUS_ACTIVE, STATUS_UNACTIVE } from './highlight';
/**
* Highlight x
* @ignore
*/
var HighlightX = /** @class */ (function (_super) {
__extends(HighlightX, _super);
function HighlightX() {
return _super !== null && _super.apply(this, arguments) || this;
}
// 不允许多选
HighlightX.prototype.setElementHighlight = function (el, callback) {
if (callback(el)) {
if (el.hasState(STATUS_UNACTIVE)) {
el.setState(STATUS_UNACTIVE, false);
}
el.setState(STATUS_ACTIVE, true);
}
else {
el.setState(STATUS_UNACTIVE, true);
if (el.hasState(STATUS_ACTIVE)) {
el.setState(STATUS_ACTIVE, false);
}
}
};
HighlightX.prototype.setStateByElement = function (element, enable) {
var view = this.context.view;
var scale = view.getXScale();
var value = getElementValue(element, scale.field);
var elements = getElements(view);
var highlightElements = elements.filter(function (el) {
return getElementValue(el, scale.field) === value;
});
this.setHighlightBy(elements, function (el) { return highlightElements.includes(el); }, enable);
};
/**
* 切换状态
*/
HighlightX.prototype.toggle = function () {
var element = getCurrentElement(this.context);
if (element) {
var hasState = element.hasState(this.stateName);
this.setStateByElement(element, !hasState);
}
};
return HighlightX;
}(Highlight));
export default HighlightX;
//# sourceMappingURL=highlight-by-x.js.map