1 | import { __extends, __read } from "tslib";
|
2 | import { each } from '@antv/util';
|
3 | import Action from '../base';
|
4 | import { getDelegationObject, getElements, getElementValue, getScaleByField, isList, isSlider, isMask, getMaskedElements, } from '../util';
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | var ElementFilter = (function (_super) {
|
10 | __extends(ElementFilter, _super);
|
11 | function ElementFilter() {
|
12 | return _super !== null && _super.apply(this, arguments) || this;
|
13 | }
|
14 | |
15 |
|
16 |
|
17 | ElementFilter.prototype.filter = function () {
|
18 | var delegateObject = getDelegationObject(this.context);
|
19 | var view = this.context.view;
|
20 | var elements = getElements(view);
|
21 | if (isMask(this.context)) {
|
22 | var maskElements_1 = getMaskedElements(this.context, 10);
|
23 | if (maskElements_1) {
|
24 | each(elements, function (el) {
|
25 | if (maskElements_1.includes(el)) {
|
26 | el.show();
|
27 | }
|
28 | else {
|
29 | el.hide();
|
30 | }
|
31 | });
|
32 | }
|
33 | }
|
34 | else if (delegateObject) {
|
35 | var component = delegateObject.component;
|
36 | var field_1 = component.get('field');
|
37 |
|
38 | if (isList(delegateObject)) {
|
39 | if (field_1) {
|
40 | var unCheckedItems = component.getItemsByState('unchecked');
|
41 | var scale_1 = getScaleByField(view, field_1);
|
42 | var names_1 = unCheckedItems.map(function (item) { return item.name; });
|
43 |
|
44 | each(elements, function (el) {
|
45 | var value = getElementValue(el, field_1);
|
46 | var text = scale_1.getText(value);
|
47 | if (names_1.indexOf(text) >= 0) {
|
48 | el.hide();
|
49 | }
|
50 | else {
|
51 | el.show();
|
52 | }
|
53 | });
|
54 | }
|
55 | }
|
56 | else if (isSlider(delegateObject)) {
|
57 | var range = component.getValue();
|
58 | var _a = __read(range, 2), min_1 = _a[0], max_1 = _a[1];
|
59 | each(elements, function (el) {
|
60 | var value = getElementValue(el, field_1);
|
61 | if (value >= min_1 && value <= max_1) {
|
62 | el.show();
|
63 | }
|
64 | else {
|
65 | el.hide();
|
66 | }
|
67 | });
|
68 | }
|
69 | }
|
70 | };
|
71 | |
72 |
|
73 |
|
74 | ElementFilter.prototype.clear = function () {
|
75 | var elements = getElements(this.context.view);
|
76 | each(elements, function (el) {
|
77 | el.show();
|
78 | });
|
79 | };
|
80 | |
81 |
|
82 |
|
83 | ElementFilter.prototype.reset = function () {
|
84 | this.clear();
|
85 | };
|
86 | return ElementFilter;
|
87 | }(Action));
|
88 | export default ElementFilter;
|
89 |
|
\ | No newline at end of file |