@qrvey/filters 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/classes/FilterAdapter.js +1 -1
- package/dist/cjs/classes/FilterResources.js +16 -0
- package/dist/cjs/helpers/filter-adapt.helpers.js +3 -1
- package/dist/cjs/helpers/filter-adapt.logic.helpers.js +2 -2
- package/dist/classes/FilterAdapter.js +1 -1
- package/dist/classes/FilterResources.d.ts +2 -1
- package/dist/classes/FilterResources.js +16 -0
- package/dist/helpers/filter-adapt.helpers.js +3 -1
- package/dist/helpers/filter-adapt.logic.helpers.d.ts +2 -1
- package/dist/helpers/filter-adapt.logic.helpers.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ class FilterAdapter {
|
|
|
27
27
|
return (0, filter_adapt_legacy_helpers_1.filterToLegacyVisual)(this._filters, this.datasets, this.interactiveTable);
|
|
28
28
|
}
|
|
29
29
|
filterToLogic() {
|
|
30
|
-
return (0, filter_adapt_logic_helpers_1.filterToLogic)(this._filters);
|
|
30
|
+
return (0, filter_adapt_logic_helpers_1.filterToLogic)(this._filters, this.datasets);
|
|
31
31
|
}
|
|
32
32
|
filterToVisual() {
|
|
33
33
|
return (0, filter_adapt_helpers_1.filterToVisual)(this._filters, this.datasets, this.interactiveTable);
|
|
@@ -90,6 +90,22 @@ class FilterResources {
|
|
|
90
90
|
static getHierarchyScopes() {
|
|
91
91
|
return filter_scopes_resources_1.FILTER_SCOPES;
|
|
92
92
|
}
|
|
93
|
+
static getScopeIdentifiers(filters) {
|
|
94
|
+
if (!Array.isArray(filters) || (0, utils_1.isEmpty)(filters))
|
|
95
|
+
return [];
|
|
96
|
+
const seen = new Map();
|
|
97
|
+
for (const filter of filters) {
|
|
98
|
+
const key = `${filter.scope}|${filter.scopeId ?? ""}`;
|
|
99
|
+
if (!seen.has(key)) {
|
|
100
|
+
seen.set(key, {
|
|
101
|
+
datasetId: filter.datasetId,
|
|
102
|
+
scope: filter.scope,
|
|
103
|
+
scopeId: filter.scopeId,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return Array.from(seen.values());
|
|
108
|
+
}
|
|
93
109
|
static getFiltersByTimezone(filters, timezone) {
|
|
94
110
|
if ((0, utils_1.isEmpty)(filters) || !Array.isArray(filters))
|
|
95
111
|
return [];
|
|
@@ -97,7 +97,9 @@ function buildFilter(filter, dataset) {
|
|
|
97
97
|
collapsed: filter.collapsed ?? filters_resources_1.DEFAULT_FILTER.collapsed,
|
|
98
98
|
datasetLabel: dataset?.label ?? filter_visual_resources_1.DEFAULT_UI_FILTER.datasetLabel,
|
|
99
99
|
columnLabel: columnInfo?.label ?? filter_visual_resources_1.DEFAULT_UI_FILTER.columnLabel,
|
|
100
|
-
formulaType: columnInfo?.formulaType
|
|
100
|
+
formulaType: columnInfo?.formulaType ||
|
|
101
|
+
filter.formulaType ||
|
|
102
|
+
filter_visual_resources_1.DEFAULT_UI_FILTER.formulaType,
|
|
101
103
|
icon: filter.icon ?? filter_visual_resources_1.DEFAULT_UI_FILTER.icon,
|
|
102
104
|
iconTooltip: filter.iconTooltip ?? filter_visual_resources_1.DEFAULT_UI_FILTER.iconTooltip,
|
|
103
105
|
};
|
|
@@ -13,10 +13,10 @@ const filter_logic_resources_1 = require("../resources/filter-logic.resources");
|
|
|
13
13
|
const filter_operators_resources_1 = require("../resources/filter-operators.resources");
|
|
14
14
|
const filter_validators_resources_1 = require("../resources/filter-validators.resources");
|
|
15
15
|
const filters_resources_1 = require("../resources/filters.resources");
|
|
16
|
-
function filterToLogic(filters) {
|
|
16
|
+
function filterToLogic(filters, datasets = []) {
|
|
17
17
|
if ((0, utils_1.isEmpty)(filters))
|
|
18
18
|
return [];
|
|
19
|
-
const visual = (0, filter_adapt_helpers_1.filterToVisual)(filters);
|
|
19
|
+
const visual = (0, filter_adapt_helpers_1.filterToVisual)(filters, datasets);
|
|
20
20
|
return visualToLogic(visual);
|
|
21
21
|
}
|
|
22
22
|
function visualToLogic(visual) {
|
|
@@ -24,7 +24,7 @@ export class FilterAdapter {
|
|
|
24
24
|
return filterToLegacyVisual(this._filters, this.datasets, this.interactiveTable);
|
|
25
25
|
}
|
|
26
26
|
filterToLogic() {
|
|
27
|
-
return filterToLogic(this._filters);
|
|
27
|
+
return filterToLogic(this._filters, this.datasets);
|
|
28
28
|
}
|
|
29
29
|
filterToVisual() {
|
|
30
30
|
return filterToVisual(this._filters, this.datasets, this.interactiveTable);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IColumnVsFormulaType, IDTimezone } from "@qrvey/utils";
|
|
2
2
|
import { IFilterGroupingInfoByColumnTypeSettings, IFilterGroupingInfoByFilterSettings, IFilterGroupingInfoListByColumnSettings } from "../resources/filter-functions.resources";
|
|
3
3
|
import { IFilterGrouping, IFilterGroupingInfo } from "../resources/filter-grouping.resources";
|
|
4
|
-
import { IFilterScope } from "../resources/filter-scopes.resources";
|
|
4
|
+
import { IFilterScope, IFilterScopeIdentifier } from "../resources/filter-scopes.resources";
|
|
5
5
|
import { IFilterValidator, IFilterValidatorInfo } from "../resources/filter-validators.resources";
|
|
6
6
|
import { IFilter } from "../resources/filters.resources";
|
|
7
7
|
export declare class FilterResources {
|
|
@@ -16,6 +16,7 @@ export declare class FilterResources {
|
|
|
16
16
|
static getGroupings(): IFilterGrouping[];
|
|
17
17
|
static getGroupingsInfoList(): IFilterGroupingInfo[];
|
|
18
18
|
static getHierarchyScopes(): IFilterScope[];
|
|
19
|
+
static getScopeIdentifiers(filters: IFilter[]): IFilterScopeIdentifier[];
|
|
19
20
|
static getFiltersByTimezone(filters: IFilter[], timezone: IDTimezone): IFilter[];
|
|
20
21
|
static getValidatorInfo(validator: IFilterValidator): IFilterValidatorInfo;
|
|
21
22
|
static getValidatorInfoList(): IFilterValidatorInfo[];
|
|
@@ -87,6 +87,22 @@ export class FilterResources {
|
|
|
87
87
|
static getHierarchyScopes() {
|
|
88
88
|
return FILTER_SCOPES;
|
|
89
89
|
}
|
|
90
|
+
static getScopeIdentifiers(filters) {
|
|
91
|
+
if (!Array.isArray(filters) || isEmpty(filters))
|
|
92
|
+
return [];
|
|
93
|
+
const seen = new Map();
|
|
94
|
+
for (const filter of filters) {
|
|
95
|
+
const key = `${filter.scope}|${filter.scopeId ?? ""}`;
|
|
96
|
+
if (!seen.has(key)) {
|
|
97
|
+
seen.set(key, {
|
|
98
|
+
datasetId: filter.datasetId,
|
|
99
|
+
scope: filter.scope,
|
|
100
|
+
scopeId: filter.scopeId,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return Array.from(seen.values());
|
|
105
|
+
}
|
|
90
106
|
static getFiltersByTimezone(filters, timezone) {
|
|
91
107
|
if (isEmpty(filters) || !Array.isArray(filters))
|
|
92
108
|
return [];
|
|
@@ -93,7 +93,9 @@ function buildFilter(filter, dataset) {
|
|
|
93
93
|
collapsed: filter.collapsed ?? DEFAULT_FILTER.collapsed,
|
|
94
94
|
datasetLabel: dataset?.label ?? DEFAULT_UI_FILTER.datasetLabel,
|
|
95
95
|
columnLabel: columnInfo?.label ?? DEFAULT_UI_FILTER.columnLabel,
|
|
96
|
-
formulaType: columnInfo?.formulaType
|
|
96
|
+
formulaType: columnInfo?.formulaType ||
|
|
97
|
+
filter.formulaType ||
|
|
98
|
+
DEFAULT_UI_FILTER.formulaType,
|
|
97
99
|
icon: filter.icon ?? DEFAULT_UI_FILTER.icon,
|
|
98
100
|
iconTooltip: filter.iconTooltip ?? DEFAULT_UI_FILTER.iconTooltip,
|
|
99
101
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { IDataset } from "@qrvey/utils";
|
|
1
2
|
import { IFilterLogic, IFilterLogicExpression, IFilterLogicExpressionValue } from "../resources/filter-logic.resources";
|
|
2
3
|
import { IFilterUI, IFilterVisual } from "../resources/filter-visual.resources";
|
|
3
4
|
import { IFilter } from "../resources/filters.resources";
|
|
4
|
-
export declare function filterToLogic(filters: IFilter[]): IFilterLogic[];
|
|
5
|
+
export declare function filterToLogic(filters: IFilter[], datasets?: IDataset[]): IFilterLogic[];
|
|
5
6
|
export declare function visualToLogic(visual: IFilterVisual): IFilterLogic[];
|
|
6
7
|
export declare function buildLogicExpression(filter: IFilterUI): IFilterLogicExpression;
|
|
7
8
|
export declare function getFilterLogicValues(filter: IFilterUI): IFilterLogicExpressionValue[];
|
|
@@ -7,10 +7,10 @@ import { FILTER_LOGIC_VALIDATOR, } from "../resources/filter-logic.resources";
|
|
|
7
7
|
import { FILTER_OPERATOR, } from "../resources/filter-operators.resources";
|
|
8
8
|
import { FILTER_LOGIC_VALIDATOR_BY_VALIDATOR, FILTER_VALIDATOR, } from "../resources/filter-validators.resources";
|
|
9
9
|
import { FILTER_TYPE } from "../resources/filters.resources";
|
|
10
|
-
export function filterToLogic(filters) {
|
|
10
|
+
export function filterToLogic(filters, datasets = []) {
|
|
11
11
|
if (isEmpty(filters))
|
|
12
12
|
return [];
|
|
13
|
-
const visual = filterToVisual(filters);
|
|
13
|
+
const visual = filterToVisual(filters, datasets);
|
|
14
14
|
return visualToLogic(visual);
|
|
15
15
|
}
|
|
16
16
|
export function visualToLogic(visual) {
|