@qrvey/filters 0.0.45 → 0.1.0
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 +63 -1
- package/dist/cjs/classes/FilterAdapter.js +1 -80
- package/dist/cjs/classes/FilterBuilder.js +32 -251
- package/dist/cjs/classes/FilterManager.js +7 -64
- package/dist/cjs/classes/FilterResources.js +3 -116
- package/dist/cjs/classes/FilterSearcher.js +0 -77
- package/dist/cjs/classes/FilterValidation.js +0 -93
- package/dist/cjs/classes/FilterValues.js +0 -24
- package/dist/cjs/classes/index.js +8 -21
- package/dist/cjs/helpers/filter-adapt.helpers.js +3 -46
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.js +6 -53
- package/dist/cjs/helpers/filter-adapt.logic.helpers.js +7 -128
- package/dist/cjs/helpers/filter-builder.helpers.js +1 -8
- package/dist/cjs/helpers/filter-settings.helpers.js +6 -41
- package/dist/cjs/helpers/filter-validators.helpers.js +15 -9
- package/dist/cjs/helpers/filter-verbose.helpers.js +211 -0
- package/dist/cjs/helpers/getAggregateFilters.js +11 -0
- package/dist/cjs/helpers/getFilterId.js +1 -17
- package/dist/cjs/helpers/getFilterType.js +1 -8
- package/dist/cjs/helpers/index.js +12 -20
- package/dist/cjs/helpers/isDateDistinctGrouping.js +15 -0
- package/dist/cjs/helpers/isRankingFilter.js +10 -0
- package/dist/cjs/helpers/resolveFilterConditions.js +2 -10
- package/dist/cjs/helpers/utils.helpers.js +2 -19
- package/dist/cjs/index.js +5 -18
- package/dist/cjs/models/index.js +4 -17
- package/dist/cjs/resources/filter-grouping.resources.js +0 -18
- package/dist/cjs/resources/filter-logic.resources.js +0 -3
- package/dist/cjs/resources/filter-scopes.resources.js +10 -27
- package/dist/cjs/resources/filter-validators.resources.js +0 -3
- package/dist/cjs/resources/filter-verbose.resources.js +13 -0
- package/dist/cjs/resources/filters.resources.js +0 -12
- package/dist/cjs/resources/index.js +12 -24
- package/dist/classes/FilterAdapter.d.ts +0 -80
- package/dist/classes/FilterAdapter.js +1 -80
- package/dist/classes/FilterBuilder.d.ts +2 -177
- package/dist/classes/FilterBuilder.js +32 -251
- package/dist/classes/FilterManager.d.ts +7 -62
- package/dist/classes/FilterManager.js +7 -64
- package/dist/classes/FilterResources.d.ts +1 -115
- package/dist/classes/FilterResources.js +3 -116
- package/dist/classes/FilterSearcher.d.ts +2 -77
- package/dist/classes/FilterSearcher.js +0 -77
- package/dist/classes/FilterValidation.d.ts +1 -47
- package/dist/classes/FilterValidation.js +0 -93
- package/dist/classes/FilterValues.d.ts +0 -25
- package/dist/classes/FilterValues.js +0 -24
- package/dist/classes/index.d.ts +0 -1
- package/dist/helpers/filter-adapt.helpers.d.ts +0 -15
- package/dist/helpers/filter-adapt.helpers.js +1 -43
- package/dist/helpers/filter-adapt.legacy.helpers.d.ts +0 -20
- package/dist/helpers/filter-adapt.legacy.helpers.js +3 -49
- package/dist/helpers/filter-adapt.logic.helpers.d.ts +0 -22
- package/dist/helpers/filter-adapt.logic.helpers.js +3 -123
- package/dist/helpers/filter-builder.helpers.d.ts +0 -7
- package/dist/helpers/filter-builder.helpers.js +0 -6
- package/dist/helpers/filter-settings.helpers.d.ts +0 -35
- package/dist/helpers/filter-settings.helpers.js +0 -34
- package/dist/helpers/filter-validators.helpers.d.ts +3 -6
- package/dist/helpers/filter-validators.helpers.js +11 -7
- package/dist/helpers/filter-verbose.helpers.d.ts +6 -0
- package/dist/helpers/filter-verbose.helpers.js +206 -0
- package/dist/helpers/getAggregateFilters.d.ts +3 -0
- package/dist/helpers/getAggregateFilters.js +7 -0
- package/dist/helpers/getFilterId.d.ts +0 -16
- package/dist/helpers/getFilterId.js +0 -15
- package/dist/helpers/getFilterType.d.ts +0 -7
- package/dist/helpers/getFilterType.js +0 -6
- package/dist/helpers/index.d.ts +5 -1
- package/dist/helpers/index.js +5 -0
- package/dist/helpers/isDateDistinctGrouping.d.ts +2 -0
- package/dist/helpers/isDateDistinctGrouping.js +12 -0
- package/dist/helpers/isRankingFilter.d.ts +2 -0
- package/dist/helpers/isRankingFilter.js +7 -0
- package/dist/helpers/resolveFilterConditions.d.ts +0 -8
- package/dist/helpers/resolveFilterConditions.js +1 -8
- package/dist/helpers/utils.helpers.d.ts +0 -17
- package/dist/helpers/utils.helpers.js +0 -16
- package/dist/index.d.ts +0 -1
- package/dist/models/filter-builder.models.d.ts +0 -156
- package/dist/models/filter-resources.models.d.ts +0 -53
- package/dist/models/filter-searcher.models.d.ts +5 -34
- package/dist/models/filter-validation.models.d.ts +0 -40
- package/dist/models/index.d.ts +0 -1
- package/dist/resources/filter-functions.resources.d.ts +0 -49
- package/dist/resources/filter-grouping.resources.d.ts +0 -7
- package/dist/resources/filter-grouping.resources.js +0 -18
- package/dist/resources/filter-logic.resources.d.ts +0 -79
- package/dist/resources/filter-logic.resources.js +0 -3
- package/dist/resources/filter-operators.resources.d.ts +0 -1
- package/dist/resources/filter-panel.interfaces.d.ts +0 -49
- package/dist/resources/filter-scopes.resources.d.ts +2 -25
- package/dist/resources/filter-scopes.resources.js +10 -27
- package/dist/resources/filter-validation.resources.d.ts +0 -1
- package/dist/resources/filter-validators.resources.d.ts +0 -1
- package/dist/resources/filter-validators.resources.js +0 -3
- package/dist/resources/filter-values.resources.d.ts +0 -13
- package/dist/resources/filter-verbose.resources.d.ts +23 -0
- package/dist/resources/filter-verbose.resources.js +10 -0
- package/dist/resources/filter-visual.resources.d.ts +0 -50
- package/dist/resources/filters.resources.d.ts +1 -102
- package/dist/resources/filters.resources.js +0 -12
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.js +1 -0
- package/package.json +59 -44
- package/.eslintignore +0 -6
- package/.eslintrc.json +0 -122
- package/.husky/pre-commit +0 -4
- package/.lintstagedrc +0 -7
- package/.prettierignore +0 -6
- package/.prettierrc.json +0 -1
- package/CHANGELOG.md +0 -274
- package/CODE_OF_CONDUCT.md +0 -132
- package/bitbucket-pipelines.yml +0 -92
- package/dist/cjs/classes/FilterAdapter.d.ts +0 -107
- package/dist/cjs/classes/FilterAdapter.d.ts.map +0 -1
- package/dist/cjs/classes/FilterBuilder.d.ts +0 -206
- package/dist/cjs/classes/FilterBuilder.d.ts.map +0 -1
- package/dist/cjs/classes/FilterManager.d.ts +0 -84
- package/dist/cjs/classes/FilterManager.d.ts.map +0 -1
- package/dist/cjs/classes/FilterResources.d.ts +0 -139
- package/dist/cjs/classes/FilterResources.d.ts.map +0 -1
- package/dist/cjs/classes/FilterSearcher.d.ts +0 -90
- package/dist/cjs/classes/FilterSearcher.d.ts.map +0 -1
- package/dist/cjs/classes/FilterValidation.d.ts +0 -58
- package/dist/cjs/classes/FilterValidation.d.ts.map +0 -1
- package/dist/cjs/classes/FilterValues.d.ts +0 -33
- package/dist/cjs/classes/FilterValues.d.ts.map +0 -1
- package/dist/cjs/classes/index.d.ts +0 -8
- package/dist/cjs/classes/index.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.helpers.d.ts +0 -21
- package/dist/cjs/helpers/filter-adapt.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts +0 -26
- package/dist/cjs/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts +0 -29
- package/dist/cjs/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-builder.helpers.d.ts +0 -11
- package/dist/cjs/helpers/filter-builder.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-settings.helpers.d.ts +0 -42
- package/dist/cjs/helpers/filter-settings.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/filter-validators.helpers.d.ts +0 -8
- package/dist/cjs/helpers/filter-validators.helpers.d.ts.map +0 -1
- package/dist/cjs/helpers/getFilterId.d.ts +0 -18
- package/dist/cjs/helpers/getFilterId.d.ts.map +0 -1
- package/dist/cjs/helpers/getFilterType.d.ts +0 -11
- package/dist/cjs/helpers/getFilterType.d.ts.map +0 -1
- package/dist/cjs/helpers/index.d.ts +0 -7
- package/dist/cjs/helpers/index.d.ts.map +0 -1
- package/dist/cjs/helpers/resolveFilterConditions.d.ts +0 -11
- package/dist/cjs/helpers/resolveFilterConditions.d.ts.map +0 -1
- package/dist/cjs/helpers/utils.helpers.d.ts +0 -26
- package/dist/cjs/helpers/utils.helpers.d.ts.map +0 -1
- package/dist/cjs/index.d.ts +0 -5
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/models/filter-builder.models.d.ts +0 -203
- package/dist/cjs/models/filter-builder.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-resources.models.d.ts +0 -71
- package/dist/cjs/models/filter-resources.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-searcher.models.d.ts +0 -42
- package/dist/cjs/models/filter-searcher.models.d.ts.map +0 -1
- package/dist/cjs/models/filter-validation.models.d.ts +0 -59
- package/dist/cjs/models/filter-validation.models.d.ts.map +0 -1
- package/dist/cjs/models/index.d.ts +0 -4
- package/dist/cjs/models/index.d.ts.map +0 -1
- package/dist/cjs/resources/filter-functions.resources.d.ts +0 -94
- package/dist/cjs/resources/filter-functions.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-grouping.resources.d.ts +0 -103
- package/dist/cjs/resources/filter-grouping.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-logic.resources.d.ts +0 -135
- package/dist/cjs/resources/filter-logic.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-operators.resources.d.ts +0 -16
- package/dist/cjs/resources/filter-operators.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-panel.interfaces.d.ts +0 -80
- package/dist/cjs/resources/filter-panel.interfaces.d.ts.map +0 -1
- package/dist/cjs/resources/filter-scopes.resources.d.ts +0 -62
- package/dist/cjs/resources/filter-scopes.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-validation.resources.d.ts +0 -20
- package/dist/cjs/resources/filter-validation.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-validators.resources.d.ts +0 -80
- package/dist/cjs/resources/filter-validators.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-values.resources.d.ts +0 -40
- package/dist/cjs/resources/filter-values.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filter-visual.resources.d.ts +0 -77
- package/dist/cjs/resources/filter-visual.resources.d.ts.map +0 -1
- package/dist/cjs/resources/filters.resources.d.ts +0 -168
- package/dist/cjs/resources/filters.resources.d.ts.map +0 -1
- package/dist/cjs/resources/index.d.ts +0 -11
- package/dist/cjs/resources/index.d.ts.map +0 -1
- package/dist/classes/FilterAdapter.d.ts.map +0 -1
- package/dist/classes/FilterBuilder.d.ts.map +0 -1
- package/dist/classes/FilterManager.d.ts.map +0 -1
- package/dist/classes/FilterResources.d.ts.map +0 -1
- package/dist/classes/FilterSearcher.d.ts.map +0 -1
- package/dist/classes/FilterValidation.d.ts.map +0 -1
- package/dist/classes/FilterValues.d.ts.map +0 -1
- package/dist/classes/index.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.legacy.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-adapt.logic.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-builder.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-settings.helpers.d.ts.map +0 -1
- package/dist/helpers/filter-validators.helpers.d.ts.map +0 -1
- package/dist/helpers/getFilterId.d.ts.map +0 -1
- package/dist/helpers/getFilterType.d.ts.map +0 -1
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/resolveFilterConditions.d.ts.map +0 -1
- package/dist/helpers/utils.helpers.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/models/filter-builder.models.d.ts.map +0 -1
- package/dist/models/filter-resources.models.d.ts.map +0 -1
- package/dist/models/filter-searcher.models.d.ts.map +0 -1
- package/dist/models/filter-validation.models.d.ts.map +0 -1
- package/dist/models/index.d.ts.map +0 -1
- package/dist/resources/filter-functions.resources.d.ts.map +0 -1
- package/dist/resources/filter-grouping.resources.d.ts.map +0 -1
- package/dist/resources/filter-logic.resources.d.ts.map +0 -1
- package/dist/resources/filter-operators.resources.d.ts.map +0 -1
- package/dist/resources/filter-panel.interfaces.d.ts.map +0 -1
- package/dist/resources/filter-scopes.resources.d.ts.map +0 -1
- package/dist/resources/filter-validation.resources.d.ts.map +0 -1
- package/dist/resources/filter-validators.resources.d.ts.map +0 -1
- package/dist/resources/filter-values.resources.d.ts.map +0 -1
- package/dist/resources/filter-visual.resources.d.ts.map +0 -1
- package/dist/resources/filters.resources.d.ts.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/jest.config.js +0 -10
- package/jsdoc.config.json +0 -14
- package/scripts/clean-build/index.js +0 -62
- package/sonar-project.properties +0 -2
- package/src/classes/FilterAdapter.ts +0 -208
- package/src/classes/FilterBuilder.ts +0 -822
- package/src/classes/FilterManager.ts +0 -126
- package/src/classes/FilterResources.ts +0 -411
- package/src/classes/FilterSearcher.ts +0 -243
- package/src/classes/FilterValidation.ts +0 -221
- package/src/classes/FilterValues.ts +0 -89
- package/src/classes/index.ts +0 -7
- package/src/helpers/filter-adapt.helpers.ts +0 -204
- package/src/helpers/filter-adapt.legacy.helpers.ts +0 -298
- package/src/helpers/filter-adapt.logic.helpers.ts +0 -631
- package/src/helpers/filter-builder.helpers.ts +0 -28
- package/src/helpers/filter-settings.helpers.ts +0 -133
- package/src/helpers/filter-validators.helpers.ts +0 -15
- package/src/helpers/getFilterId.ts +0 -35
- package/src/helpers/getFilterType.ts +0 -23
- package/src/helpers/index.ts +0 -6
- package/src/helpers/resolveFilterConditions.ts +0 -29
- package/src/helpers/utils.helpers.ts +0 -37
- package/src/index.ts +0 -4
- package/src/models/filter-builder.models.ts +0 -256
- package/src/models/filter-resources.models.ts +0 -89
- package/src/models/filter-searcher.models.ts +0 -61
- package/src/models/filter-validation.models.ts +0 -71
- package/src/models/index.ts +0 -3
- package/src/resources/filter-functions.resources.ts +0 -132
- package/src/resources/filter-grouping.resources.ts +0 -531
- package/src/resources/filter-logic.resources.ts +0 -148
- package/src/resources/filter-operators.resources.ts +0 -40
- package/src/resources/filter-panel.interfaces.ts +0 -86
- package/src/resources/filter-scopes.resources.ts +0 -152
- package/src/resources/filter-validation.resources.ts +0 -90
- package/src/resources/filter-validators.resources.ts +0 -411
- package/src/resources/filter-values.resources.ts +0 -57
- package/src/resources/filter-visual.resources.ts +0 -86
- package/src/resources/filters.resources.ts +0 -232
- package/src/resources/index.ts +0 -10
- package/tests/classes/FilterAdapter.test.ts +0 -124
- package/tests/classes/FilterBuilder.test.ts +0 -903
- package/tests/classes/FilterResources.test.ts +0 -267
- package/tests/classes/FilterSearcher.test.ts +0 -188
- package/tests/classes/FilterValidation.test.ts +0 -54
- package/tests/helpers/getFilterId.test.ts +0 -121
- package/tests/mock/datasets.mock.ts +0 -61
- package/tests/mock/filters-adapter.mock.ts +0 -646
- package/tests/mock/filters-interactive-table.mock.ts +0 -59
- package/tests/mock/filters.mock.ts +0 -277
- package/tsconfig.doc.json +0 -4
- package/tsconfig.eslint.json +0 -4
- package/tsconfig.json +0 -113
|
@@ -1,631 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
_hasProperty,
|
|
3
|
-
COLUMN,
|
|
4
|
-
COLUMN_PROPERTY,
|
|
5
|
-
flattenDeep,
|
|
6
|
-
isDateColumn,
|
|
7
|
-
isEmpty,
|
|
8
|
-
} from "@qrvey/utils";
|
|
9
|
-
|
|
10
|
-
import { filterToVisual } from "./filter-adapt.helpers";
|
|
11
|
-
import { isNullValidator } from "./filter-validators.helpers";
|
|
12
|
-
import { getFilterType } from "./getFilterType";
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
FILTER_GROUPING,
|
|
16
|
-
IFilterGrouping,
|
|
17
|
-
} from "../resources/filter-grouping.resources";
|
|
18
|
-
import {
|
|
19
|
-
FILTER_LOGIC_VALIDATOR,
|
|
20
|
-
IFilterLogic,
|
|
21
|
-
IFilterLogicExpression,
|
|
22
|
-
IFilterLogicExpressionValue,
|
|
23
|
-
IFilterLogicExpressionValueRange,
|
|
24
|
-
IFilterLogicExpressionValueRanking,
|
|
25
|
-
IFilterLogicExpressionValueRegular,
|
|
26
|
-
IFilterLogicExpressionValueRelative,
|
|
27
|
-
IFilterLogicFilter,
|
|
28
|
-
IFilterLogicValidator,
|
|
29
|
-
} from "../resources/filter-logic.resources";
|
|
30
|
-
import {
|
|
31
|
-
FILTER_OPERATOR,
|
|
32
|
-
IFilterOperator,
|
|
33
|
-
} from "../resources/filter-operators.resources";
|
|
34
|
-
import {
|
|
35
|
-
FILTER_LOGIC_VALIDATOR_BY_VALIDATOR,
|
|
36
|
-
FILTER_VALIDATOR,
|
|
37
|
-
} from "../resources/filter-validators.resources";
|
|
38
|
-
import {
|
|
39
|
-
IFilterValueRange,
|
|
40
|
-
IFilterValueRanking,
|
|
41
|
-
IFilterValueRegular,
|
|
42
|
-
IFilterValueRelativeDate,
|
|
43
|
-
} from "../resources/filter-values.resources";
|
|
44
|
-
import {
|
|
45
|
-
IFilterUI,
|
|
46
|
-
IFilterVisual,
|
|
47
|
-
IFilterVisualDataset,
|
|
48
|
-
IFilterVisualScope,
|
|
49
|
-
} from "../resources/filter-visual.resources";
|
|
50
|
-
import { FILTER_TYPE, IFilter } from "../resources/filters.resources";
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Generates a Logic structure from the filter collection
|
|
54
|
-
* @param filters the filter collection
|
|
55
|
-
* @returns the logic structure
|
|
56
|
-
*/
|
|
57
|
-
export function filterToLogic(filters: IFilter[]): IFilterLogic[] {
|
|
58
|
-
if (isEmpty(filters)) return [];
|
|
59
|
-
|
|
60
|
-
const visual = filterToVisual(filters)!;
|
|
61
|
-
return visualToLogic(visual);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Generates a Logic structure from the visual filter structure
|
|
66
|
-
* @param visual the visual filter structure
|
|
67
|
-
* @returns the logic structure
|
|
68
|
-
*/
|
|
69
|
-
export function visualToLogic(visual: IFilterVisual): IFilterLogic[] {
|
|
70
|
-
return visual.scopes.reduce(
|
|
71
|
-
(logics: IFilterLogic[], scope: IFilterVisualScope) => {
|
|
72
|
-
const logic: IFilterLogic = buildLogic(scope);
|
|
73
|
-
let filters: IFilterLogicFilter[] = [];
|
|
74
|
-
if (scope.datasets.length > 0) {
|
|
75
|
-
scope.datasets.forEach((dataset: IFilterVisualDataset) => {
|
|
76
|
-
const expressions = buildLogicFilters(dataset.filters, true);
|
|
77
|
-
filters = filters.concat(expressions);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
logics.push({ ...logic, filters });
|
|
81
|
-
return logics;
|
|
82
|
-
},
|
|
83
|
-
[],
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Gets the Logic structure for the given scope
|
|
89
|
-
* @param scope the visual filter scope object
|
|
90
|
-
* @returns a logic structure
|
|
91
|
-
*/
|
|
92
|
-
function buildLogic(scope: IFilterVisualScope): IFilterLogic {
|
|
93
|
-
return {
|
|
94
|
-
filters: [],
|
|
95
|
-
scope: scope.scope,
|
|
96
|
-
scopeid: scope.id,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Gets the Logic Filters collection based on filters
|
|
102
|
-
* @param filters the filter collection
|
|
103
|
-
* @param groupColumns a flag to know if the
|
|
104
|
-
* @returns the logic filter collection
|
|
105
|
-
*/
|
|
106
|
-
function buildLogicFilters(
|
|
107
|
-
filters: IFilterUI[],
|
|
108
|
-
groupColumns = false,
|
|
109
|
-
): IFilterLogicFilter[] {
|
|
110
|
-
const expression = numericExpression(filters, groupColumns);
|
|
111
|
-
const orOperators = expression.split("+");
|
|
112
|
-
|
|
113
|
-
const getFilter = (fi: string): IFilterLogicExpression | undefined => {
|
|
114
|
-
const filter = filters.find((f) => f.id === fi);
|
|
115
|
-
if (filter == null) return;
|
|
116
|
-
|
|
117
|
-
return buildLogicExpression(filter);
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const expressions = orOperators
|
|
121
|
-
.map((group) => {
|
|
122
|
-
const andOperators = group.split("*");
|
|
123
|
-
if (andOperators.length > 1) {
|
|
124
|
-
const groupedExpression: IFilterLogicFilter = {
|
|
125
|
-
operator: FILTER_OPERATOR.AND,
|
|
126
|
-
expressions: andOperators
|
|
127
|
-
.map<IFilterLogicExpression>(
|
|
128
|
-
(group2) =>
|
|
129
|
-
getColumnExpressions(
|
|
130
|
-
group2,
|
|
131
|
-
getFilter,
|
|
132
|
-
) as IFilterLogicExpression,
|
|
133
|
-
)
|
|
134
|
-
.filter(Boolean),
|
|
135
|
-
};
|
|
136
|
-
return groupedExpression;
|
|
137
|
-
}
|
|
138
|
-
return getColumnExpressions(group, getFilter);
|
|
139
|
-
})
|
|
140
|
-
.filter(Boolean);
|
|
141
|
-
if (orOperators.length > 1) {
|
|
142
|
-
return [
|
|
143
|
-
{
|
|
144
|
-
operator: FILTER_OPERATOR.OR,
|
|
145
|
-
expressions: expressions as IFilterLogicExpression[],
|
|
146
|
-
},
|
|
147
|
-
];
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (_hasProperty(expressions[0], "expressions")) {
|
|
151
|
-
return expressions as IFilterLogicFilter[];
|
|
152
|
-
}
|
|
153
|
-
return [
|
|
154
|
-
{
|
|
155
|
-
operator: FILTER_OPERATOR.AND,
|
|
156
|
-
expressions: expressions as IFilterLogicExpression[],
|
|
157
|
-
},
|
|
158
|
-
];
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
*
|
|
163
|
-
* @param group
|
|
164
|
-
* @param getFilter
|
|
165
|
-
*/
|
|
166
|
-
function getColumnExpressions(
|
|
167
|
-
group: string,
|
|
168
|
-
getFilter: (fi: string) => IFilterLogicExpression | undefined,
|
|
169
|
-
): IFilterLogicFilter | IFilterLogicExpression {
|
|
170
|
-
const columnOrOperators = group.split("/");
|
|
171
|
-
if (columnOrOperators.length > 1) {
|
|
172
|
-
return {
|
|
173
|
-
operator: FILTER_OPERATOR.OR,
|
|
174
|
-
expressions: columnOrOperators
|
|
175
|
-
.map((group3) => getFilter(group3))
|
|
176
|
-
.filter(Boolean),
|
|
177
|
-
} as IFilterLogicFilter;
|
|
178
|
-
}
|
|
179
|
-
return getFilter(group) as IFilterLogicExpression;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
*
|
|
184
|
-
* @param operator
|
|
185
|
-
* @param priority
|
|
186
|
-
*/
|
|
187
|
-
function logicToNumeric(
|
|
188
|
-
operator: IFilterOperator,
|
|
189
|
-
priority = false,
|
|
190
|
-
): "*" | "/" | "+" {
|
|
191
|
-
if (operator === FILTER_OPERATOR.AND) {
|
|
192
|
-
return "*";
|
|
193
|
-
}
|
|
194
|
-
return priority ? "/" : "+";
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
*
|
|
199
|
-
* @param filters
|
|
200
|
-
* @param groupColumns
|
|
201
|
-
*/
|
|
202
|
-
function numericExpression(filters: IFilterUI[], groupColumns = false) {
|
|
203
|
-
let expression = "";
|
|
204
|
-
filters.forEach((item: IFilterUI, index: number) => {
|
|
205
|
-
const filter: IFilterUI = filters[index + 1] || {};
|
|
206
|
-
const operator = logicToNumeric(
|
|
207
|
-
item.operator,
|
|
208
|
-
groupColumns && item.columnId === filter?.columnId,
|
|
209
|
-
);
|
|
210
|
-
expression += `${item.id}${operator}`;
|
|
211
|
-
});
|
|
212
|
-
return expression.substring(0, expression.length - 1);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Builds filter expression by the filter data.
|
|
217
|
-
* - If the resulting value array is empty the enabled property will be false.
|
|
218
|
-
* @param filter The filter to transform
|
|
219
|
-
* @returns a filter expression
|
|
220
|
-
*/
|
|
221
|
-
export function buildLogicExpression(
|
|
222
|
-
filter: IFilterUI,
|
|
223
|
-
): IFilterLogicExpression {
|
|
224
|
-
const expression: IFilterLogicExpression = {
|
|
225
|
-
enabled: filter.enabled,
|
|
226
|
-
groupValue: getLogicExpressionGroupValue(filter),
|
|
227
|
-
questionid: filter.columnId,
|
|
228
|
-
property: getLogicExpressionProperty(filter),
|
|
229
|
-
validationType: getLogicExpressionValidator(filter),
|
|
230
|
-
value: getFilterLogicValues(filter),
|
|
231
|
-
};
|
|
232
|
-
expression.enabled =
|
|
233
|
-
filter.selectAll || expression.value!.length > 0 ? filter.enabled : false;
|
|
234
|
-
|
|
235
|
-
return expression;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Gets a group value for the backend logic structure
|
|
240
|
-
* @param filter The filter object
|
|
241
|
-
* @returns the group value
|
|
242
|
-
*/
|
|
243
|
-
function getLogicExpressionGroupValue(
|
|
244
|
-
filter: IFilterUI,
|
|
245
|
-
): IFilterGrouping | undefined {
|
|
246
|
-
if (
|
|
247
|
-
filter.aggregateType == null &&
|
|
248
|
-
isDateColumn({
|
|
249
|
-
formulaType: filter.formulaType,
|
|
250
|
-
type: filter.columnType,
|
|
251
|
-
id: filter.columnId,
|
|
252
|
-
qrveyid: filter.datasetId,
|
|
253
|
-
}) &&
|
|
254
|
-
filter.grouping != null
|
|
255
|
-
) {
|
|
256
|
-
return filter.grouping;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
return undefined;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Gets a property for the logic expression structure
|
|
264
|
-
* @param filter The filter
|
|
265
|
-
* @returns a property
|
|
266
|
-
*/
|
|
267
|
-
function getLogicExpressionProperty(
|
|
268
|
-
filter: IFilterUI,
|
|
269
|
-
): IFilterGrouping | string | undefined {
|
|
270
|
-
if (isEmpty(filter.aggregateType)) {
|
|
271
|
-
if (
|
|
272
|
-
isNullValidator(filter.validator) ||
|
|
273
|
-
isDateColumn({
|
|
274
|
-
formulaType: filter.formulaType,
|
|
275
|
-
type: filter.columnType,
|
|
276
|
-
id: filter.columnId,
|
|
277
|
-
qrveyid: filter.datasetId,
|
|
278
|
-
})
|
|
279
|
-
) {
|
|
280
|
-
return undefined;
|
|
281
|
-
} else if (
|
|
282
|
-
filter.columnType === COLUMN.EXPRESSION &&
|
|
283
|
-
filter.grouping != null
|
|
284
|
-
) {
|
|
285
|
-
return undefined;
|
|
286
|
-
} else if (
|
|
287
|
-
filter.columnType === COLUMN.LOOKUP &&
|
|
288
|
-
filter.grouping === FILTER_GROUPING.LOOKUP_DISPLAY &&
|
|
289
|
-
filter.lookupDisplayIndex != null
|
|
290
|
-
) {
|
|
291
|
-
return (filter.grouping as string)
|
|
292
|
-
?.concat("_")
|
|
293
|
-
.concat(filter.lookupDisplayIndex.toString());
|
|
294
|
-
} else if (filter.columnType === COLUMN.IMAGE) {
|
|
295
|
-
return (filter.values as IFilterValueRegular[]).every((value) =>
|
|
296
|
-
isEmpty(value.id),
|
|
297
|
-
)
|
|
298
|
-
? undefined
|
|
299
|
-
: COLUMN_PROPERTY.IMAGE_ANSWER_ID;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
return filter.grouping;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Gets the filter logic Validator
|
|
307
|
-
* @param filter the filter object
|
|
308
|
-
* @returns the Filter Logic Validator
|
|
309
|
-
*/
|
|
310
|
-
function getLogicExpressionValidator(filter: IFilterUI): IFilterLogicValidator {
|
|
311
|
-
let logicValidator = FILTER_LOGIC_VALIDATOR_BY_VALIDATOR[filter.validator];
|
|
312
|
-
|
|
313
|
-
if (filter.selectAll && filter.validator === FILTER_VALIDATOR.EQUALS)
|
|
314
|
-
logicValidator = FILTER_LOGIC_VALIDATOR.NOT_EQUAL;
|
|
315
|
-
|
|
316
|
-
if (filter.selectAll && filter.validator === FILTER_VALIDATOR.NOT_EQUAL)
|
|
317
|
-
logicValidator = FILTER_LOGIC_VALIDATOR.EQUALS;
|
|
318
|
-
|
|
319
|
-
return logicValidator;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Gets the expresion values in the logic format
|
|
324
|
-
* @param filter The filter structure
|
|
325
|
-
* @returns A collection of backend expression value
|
|
326
|
-
*/
|
|
327
|
-
export function getFilterLogicValues(
|
|
328
|
-
filter: IFilterUI,
|
|
329
|
-
): IFilterLogicExpressionValue[] {
|
|
330
|
-
const values = filter.values || [];
|
|
331
|
-
|
|
332
|
-
switch (filter.validator) {
|
|
333
|
-
case FILTER_VALIDATOR.EQUALS:
|
|
334
|
-
case FILTER_VALIDATOR.NOT_EQUAL:
|
|
335
|
-
case FILTER_VALIDATOR.CONTAINS:
|
|
336
|
-
case FILTER_VALIDATOR.NOT_CONTAIN:
|
|
337
|
-
case FILTER_VALIDATOR.STARTS_WITH:
|
|
338
|
-
case FILTER_VALIDATOR.NOT_START_WITH:
|
|
339
|
-
case FILTER_VALIDATOR.ENDS_WITH:
|
|
340
|
-
case FILTER_VALIDATOR.NOT_END_WITH:
|
|
341
|
-
if (
|
|
342
|
-
getFilterType(filter.columnType, filter.validator) ===
|
|
343
|
-
FILTER_TYPE.RANKING
|
|
344
|
-
)
|
|
345
|
-
return getRankingValues(values as IFilterValueRanking[][]);
|
|
346
|
-
return getResultValues(values as IFilterValueRegular[], filter);
|
|
347
|
-
case FILTER_VALIDATOR.BETWEEN_INCLUSIVE:
|
|
348
|
-
return getInclusiveRange(values as IFilterValueRange[]);
|
|
349
|
-
case FILTER_VALIDATOR.BETWEEN_EXCLUSIVE:
|
|
350
|
-
return getExclusiveRange(values as IFilterValueRange[]);
|
|
351
|
-
case FILTER_VALIDATOR.BEFORE:
|
|
352
|
-
case FILTER_VALIDATOR.LESS_THAN:
|
|
353
|
-
return getBeforeValues(values as IFilterValueRange[]);
|
|
354
|
-
case FILTER_VALIDATOR.BEFORE_ON:
|
|
355
|
-
case FILTER_VALIDATOR.LESS_THAN_EQUAL:
|
|
356
|
-
return getBeforeOnValues(values as IFilterValueRange[]);
|
|
357
|
-
case FILTER_VALIDATOR.AFTER:
|
|
358
|
-
case FILTER_VALIDATOR.GREATER_THAN:
|
|
359
|
-
return getAfterValues(values as IFilterValueRange[]);
|
|
360
|
-
case FILTER_VALIDATOR.AFTER_ON:
|
|
361
|
-
case FILTER_VALIDATOR.GREATER_THAN_EQUAL:
|
|
362
|
-
return getAfterOnValues(values as IFilterValueRange[]);
|
|
363
|
-
case FILTER_VALIDATOR.IS_NULL:
|
|
364
|
-
case FILTER_VALIDATOR.IS_NOT_NULL:
|
|
365
|
-
return getNullValues(values as IFilterValueRegular[], filter);
|
|
366
|
-
case FILTER_VALIDATOR.IN:
|
|
367
|
-
return getInValues(values as IFilterValueRelativeDate[]);
|
|
368
|
-
default:
|
|
369
|
-
return [];
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* Gets the expression values for Exclusive Ranges
|
|
375
|
-
* @param values the collection of values
|
|
376
|
-
* @returns the logic expression values
|
|
377
|
-
*/
|
|
378
|
-
function getExclusiveRange(
|
|
379
|
-
values: IFilterValueRange[],
|
|
380
|
-
): IFilterLogicExpressionValueRange[] {
|
|
381
|
-
return values.reduce(
|
|
382
|
-
(
|
|
383
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
384
|
-
value: IFilterValueRange,
|
|
385
|
-
) => {
|
|
386
|
-
const expressionValue = getValue(value, {
|
|
387
|
-
lt: value.max,
|
|
388
|
-
gt: value.min,
|
|
389
|
-
}) as IFilterLogicExpressionValueRange;
|
|
390
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
391
|
-
|
|
392
|
-
return expressionValues;
|
|
393
|
-
},
|
|
394
|
-
[],
|
|
395
|
-
);
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* Gets the expression values for Inclusive Ranges
|
|
400
|
-
* @param values the collection of values
|
|
401
|
-
* @returns the logic expression values
|
|
402
|
-
*/
|
|
403
|
-
function getInclusiveRange(
|
|
404
|
-
values: IFilterValueRange[],
|
|
405
|
-
): IFilterLogicExpressionValueRange[] {
|
|
406
|
-
return values.reduce(
|
|
407
|
-
(
|
|
408
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
409
|
-
value: IFilterValueRange,
|
|
410
|
-
) => {
|
|
411
|
-
const expressionValue = getValue(value, {
|
|
412
|
-
lte: value.max,
|
|
413
|
-
gte: value.min,
|
|
414
|
-
}) as IFilterLogicExpressionValueRange;
|
|
415
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
416
|
-
|
|
417
|
-
return expressionValues;
|
|
418
|
-
},
|
|
419
|
-
[],
|
|
420
|
-
);
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
/**
|
|
424
|
-
* Gets the expression values for Before Ranges
|
|
425
|
-
* @param values the collection of values
|
|
426
|
-
* @returns the logic expression values
|
|
427
|
-
*/
|
|
428
|
-
function getBeforeValues(
|
|
429
|
-
values: IFilterValueRange[],
|
|
430
|
-
): IFilterLogicExpressionValueRange[] {
|
|
431
|
-
return values.reduce(
|
|
432
|
-
(
|
|
433
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
434
|
-
value: IFilterValueRange,
|
|
435
|
-
) => {
|
|
436
|
-
const expressionValue = getValue(value, {
|
|
437
|
-
lt: value.max,
|
|
438
|
-
}) as IFilterLogicExpressionValueRange;
|
|
439
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
440
|
-
|
|
441
|
-
return expressionValues;
|
|
442
|
-
},
|
|
443
|
-
[],
|
|
444
|
-
);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
/**
|
|
448
|
-
* Gets the expression values for BeforeOn Ranges
|
|
449
|
-
* @param values the collection of values
|
|
450
|
-
* @returns the logic expression values
|
|
451
|
-
*/
|
|
452
|
-
function getBeforeOnValues(
|
|
453
|
-
values: IFilterValueRange[],
|
|
454
|
-
): IFilterLogicExpressionValueRange[] {
|
|
455
|
-
return values.reduce(
|
|
456
|
-
(
|
|
457
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
458
|
-
value: IFilterValueRange,
|
|
459
|
-
) => {
|
|
460
|
-
const expressionValue = getValue(value, {
|
|
461
|
-
lte: value.max,
|
|
462
|
-
}) as IFilterLogicExpressionValueRange;
|
|
463
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
464
|
-
|
|
465
|
-
return expressionValues;
|
|
466
|
-
},
|
|
467
|
-
[],
|
|
468
|
-
);
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* Gets the expression values for After Ranges
|
|
473
|
-
* @param values the collection of values
|
|
474
|
-
* @returns the logic expression values
|
|
475
|
-
*/
|
|
476
|
-
function getAfterValues(
|
|
477
|
-
values: IFilterValueRange[],
|
|
478
|
-
): IFilterLogicExpressionValueRange[] {
|
|
479
|
-
return values.reduce(
|
|
480
|
-
(
|
|
481
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
482
|
-
value: IFilterValueRange,
|
|
483
|
-
) => {
|
|
484
|
-
const expressionValue = getValue(value, {
|
|
485
|
-
gt: value.min,
|
|
486
|
-
}) as IFilterLogicExpressionValueRange;
|
|
487
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
488
|
-
|
|
489
|
-
return expressionValues;
|
|
490
|
-
},
|
|
491
|
-
[],
|
|
492
|
-
);
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
/**
|
|
496
|
-
* Gets the expression values for AfterOn Ranges
|
|
497
|
-
* @param values the collection of values
|
|
498
|
-
* @returns the logic expression values
|
|
499
|
-
*/
|
|
500
|
-
function getAfterOnValues(
|
|
501
|
-
values: IFilterValueRange[],
|
|
502
|
-
): IFilterLogicExpressionValueRange[] {
|
|
503
|
-
return values.reduce(
|
|
504
|
-
(
|
|
505
|
-
expressionValues: IFilterLogicExpressionValueRange[],
|
|
506
|
-
value: IFilterValueRange,
|
|
507
|
-
) => {
|
|
508
|
-
const expressionValue = getValue(value, {
|
|
509
|
-
gte: value.min,
|
|
510
|
-
}) as IFilterLogicExpressionValueRange;
|
|
511
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
512
|
-
|
|
513
|
-
return expressionValues;
|
|
514
|
-
},
|
|
515
|
-
[],
|
|
516
|
-
);
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
/**
|
|
520
|
-
* Gets the expression values for Nulls
|
|
521
|
-
* @param values the collection of values
|
|
522
|
-
* @param filter the filter structure
|
|
523
|
-
* @returns the logic expression values
|
|
524
|
-
*/
|
|
525
|
-
function getNullValues(
|
|
526
|
-
values: IFilterValueRegular[],
|
|
527
|
-
filter: IFilterUI,
|
|
528
|
-
): IFilterLogicExpressionValueRegular[] {
|
|
529
|
-
const addValue = values.length > 0 && values.every((value) => value.enabled);
|
|
530
|
-
return addValue ? [filter.validator] : [];
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
/**
|
|
534
|
-
* Gets the expression values for Relative Dates
|
|
535
|
-
* @param values the collection of values
|
|
536
|
-
* @returns the logic expression values
|
|
537
|
-
*/
|
|
538
|
-
function getInValues(
|
|
539
|
-
values: IFilterValueRelativeDate[],
|
|
540
|
-
): IFilterLogicExpressionValueRelative[] {
|
|
541
|
-
return values.reduce(
|
|
542
|
-
(
|
|
543
|
-
expressionValues: IFilterLogicExpressionValueRelative[],
|
|
544
|
-
value: IFilterValueRelativeDate,
|
|
545
|
-
) => {
|
|
546
|
-
const expressionValue = getValue(
|
|
547
|
-
value,
|
|
548
|
-
value,
|
|
549
|
-
) as IFilterLogicExpressionValueRelative;
|
|
550
|
-
if (expressionValue != null) expressionValues.push(expressionValue);
|
|
551
|
-
|
|
552
|
-
return expressionValues;
|
|
553
|
-
},
|
|
554
|
-
[],
|
|
555
|
-
);
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
/**
|
|
559
|
-
* Gets the value on the filter values
|
|
560
|
-
* @param objectValue The filter structure
|
|
561
|
-
* @param value The filter structure
|
|
562
|
-
* @returns the value
|
|
563
|
-
*/
|
|
564
|
-
function getValue(
|
|
565
|
-
objectValue:
|
|
566
|
-
| IFilterValueRegular
|
|
567
|
-
| IFilterValueRange
|
|
568
|
-
| IFilterValueRelativeDate,
|
|
569
|
-
value: IFilterLogicExpressionValue | string,
|
|
570
|
-
): IFilterLogicExpressionValue | undefined {
|
|
571
|
-
return objectValue.enabled ? value : undefined;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
/**
|
|
575
|
-
* Gets the expression values. Depending on the column type
|
|
576
|
-
* @param values a collection of filter values
|
|
577
|
-
* @param filter The filter structure
|
|
578
|
-
* @returns Expression values
|
|
579
|
-
*/
|
|
580
|
-
function getResultValues(
|
|
581
|
-
values: IFilterValueRegular[],
|
|
582
|
-
filter: IFilterUI,
|
|
583
|
-
): IFilterLogicExpressionValue[] {
|
|
584
|
-
return values.reduce(
|
|
585
|
-
(
|
|
586
|
-
expressionValues: IFilterLogicExpressionValueRegular[],
|
|
587
|
-
value: IFilterValueRegular,
|
|
588
|
-
) => {
|
|
589
|
-
let expressionValue = "";
|
|
590
|
-
if (value.enabled) {
|
|
591
|
-
expressionValue = value.value || "";
|
|
592
|
-
if (filter.columnType === COLUMN.IMAGE) {
|
|
593
|
-
expressionValue = value.id || value.imageUrl || value.value || "";
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
if (!isEmpty(expressionValue)) expressionValues.push(expressionValue);
|
|
597
|
-
|
|
598
|
-
return expressionValues;
|
|
599
|
-
},
|
|
600
|
-
[],
|
|
601
|
-
);
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
/**
|
|
605
|
-
* Gets the Ranking values.
|
|
606
|
-
* @param values a collection of filter values in the ranking structure
|
|
607
|
-
* @returns Expression values for ranking
|
|
608
|
-
*/
|
|
609
|
-
function getRankingValues(
|
|
610
|
-
values: IFilterValueRanking[][],
|
|
611
|
-
): IFilterLogicExpressionValueRanking[] {
|
|
612
|
-
const flattenValues: IFilterValueRanking[] = flattenDeep(values);
|
|
613
|
-
return flattenValues.reduce(
|
|
614
|
-
(
|
|
615
|
-
expressionValues: IFilterLogicExpressionValueRanking[],
|
|
616
|
-
value: IFilterValueRanking,
|
|
617
|
-
) => {
|
|
618
|
-
let expressionValue: IFilterLogicExpressionValueRanking;
|
|
619
|
-
if (value.enabled) {
|
|
620
|
-
expressionValue = {
|
|
621
|
-
position: value.position - 1,
|
|
622
|
-
value: value.value!,
|
|
623
|
-
};
|
|
624
|
-
}
|
|
625
|
-
if (expressionValue! != null) expressionValues.push(expressionValue);
|
|
626
|
-
|
|
627
|
-
return expressionValues;
|
|
628
|
-
},
|
|
629
|
-
[],
|
|
630
|
-
);
|
|
631
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { FilterResources } from "../classes/FilterResources";
|
|
2
|
-
import { IFilterFilterGroupingSettings } from "../resources/filter-functions.resources";
|
|
3
|
-
import { IFilterGrouping } from "../resources/filter-grouping.resources";
|
|
4
|
-
import { DEFAULT_FILTER, IFilter } from "../resources/filters.resources";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Gets the filter grouping for a given filter.
|
|
8
|
-
* @param filter The filter to get the grouping for.
|
|
9
|
-
* @param settings Settings for the filter grouping.
|
|
10
|
-
* @returns The filter grouping.
|
|
11
|
-
*/
|
|
12
|
-
export function getFilterGrouping(
|
|
13
|
-
filter: Partial<IFilter>,
|
|
14
|
-
settings?: IFilterFilterGroupingSettings,
|
|
15
|
-
): IFilterGrouping | undefined {
|
|
16
|
-
return (
|
|
17
|
-
(settings?.strictValidation
|
|
18
|
-
? FilterResources.getGroupingInfoByColumnType(
|
|
19
|
-
{
|
|
20
|
-
type: filter.columnType ?? DEFAULT_FILTER.columnType,
|
|
21
|
-
formulaType: filter.formulaType,
|
|
22
|
-
},
|
|
23
|
-
filter.grouping,
|
|
24
|
-
settings,
|
|
25
|
-
)?.value
|
|
26
|
-
: filter.grouping) || DEFAULT_FILTER.grouping
|
|
27
|
-
);
|
|
28
|
-
}
|