UNPKG

2.59 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var util_1 = require("@antv/util");
5var base_1 = (0, tslib_1.__importDefault)(require("../base"));
6var util_2 = require("../util");
7/**
8 * 数据过滤。
9 * @ignore
10 */
11var DataFilter = /** @class */ (function (_super) {
12 (0, tslib_1.__extends)(DataFilter, _super);
13 function DataFilter() {
14 return _super !== null && _super.apply(this, arguments) || this;
15 }
16 DataFilter.prototype.filterView = function (view, field, filter) {
17 var _this = this;
18 // 只有存在这个 scale 时才生效
19 if (view.getScaleByField(field)) {
20 view.filter(field, filter);
21 }
22 if (view.views && view.views.length) {
23 (0, util_1.each)(view.views, function (subView) {
24 _this.filterView(subView, field, filter);
25 });
26 }
27 };
28 /**
29 * 过滤数据
30 */
31 DataFilter.prototype.filter = function () {
32 var delegateObject = (0, util_2.getDelegationObject)(this.context);
33 if (delegateObject) {
34 var view = this.context.view;
35 var component = delegateObject.component;
36 var field = component.get('field');
37 // 列表类的组件能够触发
38 if ((0, util_2.isList)(delegateObject)) {
39 if (field) {
40 var unCheckedItems = component.getItemsByState('unchecked');
41 var scale_1 = (0, util_2.getScaleByField)(view, field);
42 var names_1 = unCheckedItems.map(function (item) { return item.name; });
43 if (names_1.length) {
44 this.filterView(view, field, function (value) {
45 var text = scale_1.getText(value);
46 return !names_1.includes(text);
47 });
48 }
49 else {
50 this.filterView(view, field, null);
51 }
52 view.render(true);
53 }
54 }
55 else if ((0, util_2.isSlider)(delegateObject)) {
56 var range = component.getValue();
57 var min_1 = range[0], max_1 = range[1];
58 this.filterView(view, field, function (value) {
59 return value >= min_1 && value <= max_1;
60 });
61 view.render(true);
62 }
63 }
64 };
65 return DataFilter;
66}(base_1.default));
67exports.default = DataFilter;
68//# sourceMappingURL=filter.js.map
\No newline at end of file