@antv/g2
Version:
the Grammar of Graphics in Javascript
55 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("../util");
var state_base_1 = tslib_1.__importDefault(require("./state-base"));
/**
* 单状态量的 Action 基类
* @class
* @ignore
*/
var ElementSingleState = /** @class */ (function (_super) {
tslib_1.__extends(ElementSingleState, _super);
function ElementSingleState() {
return _super !== null && _super.apply(this, arguments) || this;
}
ElementSingleState.prototype.setStateEnable = function (enable) {
var element = (0, util_1.getCurrentElement)(this.context);
if (element) {
// 在同一个 element 内部移动,忽视 label 和 shape 之间
if (!(0, util_1.isElementChange)(this.context)) {
return;
}
// 仅支持单个状态量的元素,只能由 element 触发
if (enable) {
this.clear();
this.setElementState(element, true);
}
else if (this.hasState(element)) {
this.setElementState(element, false);
}
}
};
/**
* 切换选中,只允许选中一个
*/
ElementSingleState.prototype.toggle = function () {
var element = (0, util_1.getCurrentElement)(this.context);
if (element) {
var hasState = this.hasState(element); // 提前获取状态
if (!hasState) {
this.clear();
}
this.setElementState(element, !hasState);
}
};
/**
* 取消当前时间影响的状态
*/
ElementSingleState.prototype.reset = function () {
this.setStateEnable(false);
};
return ElementSingleState;
}(state_base_1.default));
exports.default = ElementSingleState;
//# sourceMappingURL=single-state.js.map