UNPKG

@antv/g2

Version:

the Grammar of Graphics in Javascript

91 lines 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var util_1 = require("@antv/util"); var base_1 = tslib_1.__importDefault(require("../base")); var util_2 = require("../util"); /** * 元素过滤的 Action,控制元素的显示隐藏 * @ignore */ var ElementFilter = /** @class */ (function (_super) { tslib_1.__extends(ElementFilter, _super); function ElementFilter() { return _super !== null && _super.apply(this, arguments) || this; } /** * 过滤 */ ElementFilter.prototype.filter = function () { var delegateObject = util_2.getDelegationObject(this.context); var view = this.context.view; var elements = util_2.getElements(view); if (util_2.isMask(this.context)) { var maskElements_1 = util_2.getMaskedElements(this.context, 10); if (maskElements_1) { util_1.each(elements, function (el) { if (maskElements_1.includes(el)) { el.show(); } else { el.hide(); } }); } } else if (delegateObject) { var component = delegateObject.component; var field_1 = component.get('field'); // 列表类的组件能够触发 if (util_2.isList(delegateObject)) { if (field_1) { var unCheckedItems = component.getItemsByState('unchecked'); var scale_1 = util_2.getScaleByField(view, field_1); var names_1 = unCheckedItems.map(function (item) { return item.name; }); // 直接控制显示、隐藏 util_1.each(elements, function (el) { var value = util_2.getElementValue(el, field_1); var text = scale_1.getText(value); if (names_1.indexOf(text) >= 0) { el.hide(); } else { el.show(); } }); } } else if (util_2.isSlider(delegateObject)) { var range = component.getValue(); var min_1 = range[0], max_1 = range[1]; util_1.each(elements, function (el) { var value = util_2.getElementValue(el, field_1); if (value >= min_1 && value <= max_1) { el.show(); } else { el.hide(); } }); } } }; /** * 清除过滤 */ ElementFilter.prototype.clear = function () { var elements = util_2.getElements(this.context.view); util_1.each(elements, function (el) { el.show(); }); }; /** * 恢复发生的过滤,保持同 data-filter 命名的一致 */ ElementFilter.prototype.reset = function () { this.clear(); }; return ElementFilter; }(base_1.default)); exports.default = ElementFilter; //# sourceMappingURL=filter.js.map