@antv/g2
Version:
the Grammar of Graphics in Javascript
53 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("../util");
var highlight_1 = tslib_1.__importStar(require("./highlight"));
/**
* Highlight x
* @ignore
*/
var HighlightX = /** @class */ (function (_super) {
tslib_1.__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(highlight_1.STATUS_UNACTIVE)) {
el.setState(highlight_1.STATUS_UNACTIVE, false);
}
el.setState(highlight_1.STATUS_ACTIVE, true);
}
else {
el.setState(highlight_1.STATUS_UNACTIVE, true);
if (el.hasState(highlight_1.STATUS_ACTIVE)) {
el.setState(highlight_1.STATUS_ACTIVE, false);
}
}
};
HighlightX.prototype.setStateByElement = function (element, enable) {
var view = this.context.view;
var scale = view.getXScale();
var value = (0, util_1.getElementValue)(element, scale.field);
var elements = (0, util_1.getElements)(view);
var highlightElements = elements.filter(function (el) {
return (0, util_1.getElementValue)(el, scale.field) === value;
});
this.setHighlightBy(elements, function (el) { return highlightElements.includes(el); }, enable);
};
/**
* 切换状态
*/
HighlightX.prototype.toggle = function () {
var element = (0, util_1.getCurrentElement)(this.context);
if (element) {
var hasState = element.hasState(this.stateName);
this.setStateByElement(element, !hasState);
}
};
return HighlightX;
}(highlight_1.default));
exports.default = HighlightX;
//# sourceMappingURL=highlight-by-x.js.map