@sisense/sdk-data 1.23.0 → 1.25.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/dist/cjs/dimensional-model/filter-relations.d.ts +9 -0
- package/dist/cjs/dimensional-model/filter-relations.js +18 -0
- package/dist/cjs/dimensional-model/filters/factory.d.ts +84 -85
- package/dist/cjs/dimensional-model/filters/factory.js +126 -127
- package/dist/cjs/dimensional-model/filters/filter-config-utils.d.ts +25 -0
- package/dist/cjs/dimensional-model/filters/filter-config-utils.js +49 -0
- package/dist/cjs/dimensional-model/filters/filters.d.ts +28 -51
- package/dist/cjs/dimensional-model/filters/filters.js +51 -95
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.d.ts +4 -4
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +35 -28
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +9 -5
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +32 -8
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +17 -27
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +37 -39
- package/dist/cjs/dimensional-model/interfaces.d.ts +113 -15
- package/dist/cjs/dimensional-model/types.d.ts +18 -11
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/interfaces.d.ts +8 -0
- package/dist/cjs/utils.d.ts +5 -3
- package/dist/cjs/utils.js +35 -9
- package/dist/dimensional-model/filter-relations.d.ts +9 -0
- package/dist/dimensional-model/filter-relations.js +14 -0
- package/dist/dimensional-model/filters/factory.d.ts +84 -85
- package/dist/dimensional-model/filters/factory.js +126 -127
- package/dist/dimensional-model/filters/filter-config-utils.d.ts +25 -0
- package/dist/dimensional-model/filters/filter-config-utils.js +39 -0
- package/dist/dimensional-model/filters/filters.d.ts +28 -51
- package/dist/dimensional-model/filters/filters.js +51 -95
- package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +4 -4
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +35 -28
- package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +9 -5
- package/dist/dimensional-model/filters/utils/filter-code-util.js +32 -8
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +17 -27
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +36 -37
- package/dist/dimensional-model/interfaces.d.ts +113 -15
- package/dist/dimensional-model/types.d.ts +18 -11
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/interfaces.d.ts +8 -0
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +5 -3
- package/dist/utils.js +33 -7
- package/package.json +3 -3
|
@@ -3,6 +3,7 @@ import { withComposeCode } from './filter-code-util.js';
|
|
|
3
3
|
import * as filterFactory from '../factory.js';
|
|
4
4
|
import { createMeasureFromRankingFilterJaql } from './attribute-measure-util.js';
|
|
5
5
|
import { TranslatableError } from '../../../translation/translatable-error.js';
|
|
6
|
+
import { simplifyFilterConfig } from '../filter-config-utils.js';
|
|
6
7
|
const isTopCondition = (filter) => filter.top !== undefined;
|
|
7
8
|
const isBottomCondition = (filter) => filter.bottom !== undefined;
|
|
8
9
|
const isExcludeCondition = (filter) => { var _a; return !!((_a = filter.exclude) === null || _a === void 0 ? void 0 : _a.members); };
|
|
@@ -78,57 +79,57 @@ export const getSelectedConditionOption = (filter) => {
|
|
|
78
79
|
*
|
|
79
80
|
* @param attribute - Provided attribute
|
|
80
81
|
* @param conditionFilterJaql - Condition filter JAQL object
|
|
81
|
-
* @param guid -
|
|
82
|
+
* @param guid - GUID for the filter
|
|
82
83
|
* @returns attribute filter
|
|
83
84
|
*/
|
|
84
85
|
export const createAttributeFilterFromConditionFilterJaql = (attribute, conditionFilterJaql, guid) => {
|
|
85
|
-
var _a, _b, _c, _d, _e, _f;
|
|
86
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
86
87
|
const conditionType = getSelectedConditionOption(conditionFilterJaql);
|
|
87
88
|
switch (conditionType) {
|
|
88
89
|
case ConditionFilterType.BOTTOM:
|
|
89
90
|
if (conditionFilterJaql.by) {
|
|
90
|
-
return withComposeCode(filterFactory.bottomRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.BOTTOM], guid);
|
|
91
|
+
return withComposeCode(filterFactory.bottomRanking, 'bottomRanking')(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.BOTTOM], { guid });
|
|
91
92
|
}
|
|
92
93
|
break;
|
|
93
94
|
case ConditionFilterType.EQUALS:
|
|
94
|
-
return withComposeCode(filterFactory.equals)(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], guid);
|
|
95
|
+
return withComposeCode(filterFactory.equals, 'equals')(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
|
|
95
96
|
case ConditionFilterType.DOESNT_EQUAL:
|
|
96
|
-
return withComposeCode(filterFactory.doesntEqual)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_EQUAL], guid);
|
|
97
|
+
return withComposeCode(filterFactory.doesntEqual, 'doesntEqual')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_EQUAL], { guid });
|
|
97
98
|
case ConditionFilterType.GREATER_THAN:
|
|
98
|
-
return withComposeCode(filterFactory.greaterThan)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], guid);
|
|
99
|
+
return withComposeCode(filterFactory.greaterThan, 'greaterThan')(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
|
|
99
100
|
case ConditionFilterType.GREATER_THAN_OR_EQUAL:
|
|
100
|
-
return withComposeCode(filterFactory.greaterThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], guid);
|
|
101
|
+
return withComposeCode(filterFactory.greaterThanOrEqual, 'greaterThanOrEqual')(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
|
|
101
102
|
case ConditionFilterType.TOP:
|
|
102
103
|
if (conditionFilterJaql.by) {
|
|
103
|
-
return withComposeCode(filterFactory.topRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.TOP], guid);
|
|
104
|
+
return withComposeCode(filterFactory.topRanking, 'topRanking')(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.TOP], { guid });
|
|
104
105
|
}
|
|
105
106
|
break;
|
|
106
107
|
case ConditionFilterType.STARTS_WITH:
|
|
107
|
-
return withComposeCode(filterFactory.startsWith)(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], guid);
|
|
108
|
+
return withComposeCode(filterFactory.startsWith, 'startsWith')(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], { guid });
|
|
108
109
|
case ConditionFilterType.DOESNT_START_WITH:
|
|
109
|
-
return withComposeCode(filterFactory.doesntStartWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], guid);
|
|
110
|
+
return withComposeCode(filterFactory.doesntStartWith, 'doesntStartWith')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], { guid });
|
|
110
111
|
case ConditionFilterType.ENDS_WITH:
|
|
111
|
-
return withComposeCode(filterFactory.endsWith)(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], guid);
|
|
112
|
+
return withComposeCode(filterFactory.endsWith, 'endsWith')(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], { guid });
|
|
112
113
|
case ConditionFilterType.DOESNT_END_WITH:
|
|
113
|
-
return withComposeCode(filterFactory.doesntEndWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], guid);
|
|
114
|
+
return withComposeCode(filterFactory.doesntEndWith, 'doesntEndWith')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], { guid });
|
|
114
115
|
case ConditionFilterType.CONTAINS:
|
|
115
|
-
return withComposeCode(filterFactory.contains)(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], guid);
|
|
116
|
+
return withComposeCode(filterFactory.contains, 'contains')(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], { guid });
|
|
116
117
|
case ConditionFilterType.DOESNT_CONTAIN:
|
|
117
|
-
return withComposeCode(filterFactory.doesntContain)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], guid);
|
|
118
|
+
return withComposeCode(filterFactory.doesntContain, 'doesntContain')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], { guid });
|
|
118
119
|
case ConditionFilterType.LESS_THAN:
|
|
119
|
-
return withComposeCode(filterFactory.lessThan)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], guid);
|
|
120
|
+
return withComposeCode(filterFactory.lessThan, 'lessThan')(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
|
|
120
121
|
case ConditionFilterType.LESS_THAN_OR_EQUAL:
|
|
121
|
-
return withComposeCode(filterFactory.lessThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], guid);
|
|
122
|
+
return withComposeCode(filterFactory.lessThanOrEqual, 'lessThanOrEqual')(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
|
|
122
123
|
case ConditionFilterType.BETWEEN:
|
|
123
|
-
return withComposeCode(filterFactory.between)(attribute, conditionFilterJaql.from, conditionFilterJaql.to, guid);
|
|
124
|
+
return withComposeCode(filterFactory.between, 'between')(attribute, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
|
|
124
125
|
case ConditionFilterType.IS_NOT_BETWEEN:
|
|
125
|
-
return withComposeCode(filterFactory.exclude)(withComposeCode(filterFactory.between)(attribute, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, guid), undefined, guid);
|
|
126
|
+
return withComposeCode(filterFactory.exclude, 'exclude')(withComposeCode(filterFactory.between, 'between')(attribute, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, { guid }), undefined, { guid });
|
|
126
127
|
case ConditionFilterType.MULTIPLE_CONDITION:
|
|
127
128
|
if (conditionFilterJaql.and) {
|
|
128
|
-
return withComposeCode(filterFactory.intersection)(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
|
|
129
|
+
return withComposeCode(filterFactory.intersection, 'intersection')(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
|
|
129
130
|
}
|
|
130
131
|
if (conditionFilterJaql.or) {
|
|
131
|
-
return withComposeCode(filterFactory.union)(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
|
|
132
|
+
return withComposeCode(filterFactory.union, 'union')(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
|
|
132
133
|
}
|
|
133
134
|
break;
|
|
134
135
|
case ConditionFilterType.IS_NOT: {
|
|
@@ -136,7 +137,13 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
136
137
|
[];
|
|
137
138
|
const selectedMembers = ((_f = (_e = conditionFilterJaql.exclude) === null || _e === void 0 ? void 0 : _e.members) === null || _f === void 0 ? void 0 : _f.filter((member) => !deactivatedMembers.includes(member))) || [];
|
|
138
139
|
// use members filter with exclude instead of exclude filter
|
|
139
|
-
|
|
140
|
+
const config = simplifyFilterConfig({
|
|
141
|
+
guid,
|
|
142
|
+
excludeMembers: true,
|
|
143
|
+
enableMultiSelection: (_g = conditionFilterJaql.multiSelection) !== null && _g !== void 0 ? _g : true,
|
|
144
|
+
deactivatedMembers,
|
|
145
|
+
});
|
|
146
|
+
return withComposeCode(filterFactory.members, 'members')(attribute, selectedMembers, config);
|
|
140
147
|
}
|
|
141
148
|
case ConditionFilterType.AFTER:
|
|
142
149
|
case ConditionFilterType.BEFORE:
|
|
@@ -154,24 +161,24 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
154
161
|
*
|
|
155
162
|
* @param measure - Provided measure
|
|
156
163
|
* @param conditionFilterJaql - Condition filter JAQL object
|
|
157
|
-
* @param guid -
|
|
164
|
+
* @param guid - GUID for the filter
|
|
158
165
|
* @returns measure filter
|
|
159
166
|
*/
|
|
160
167
|
export const createMeasureFilterFromConditionFilterJaql = (measure, conditionFilterJaql, guid) => {
|
|
161
168
|
const conditionType = getSelectedConditionOption(conditionFilterJaql);
|
|
162
169
|
switch (conditionType) {
|
|
163
170
|
case ConditionFilterType.EQUALS:
|
|
164
|
-
return withComposeCode(filterFactory.measureEquals)(measure, conditionFilterJaql[ConditionFilterType.EQUALS], guid);
|
|
171
|
+
return withComposeCode(filterFactory.measureEquals, 'measureEquals')(measure, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
|
|
165
172
|
case ConditionFilterType.GREATER_THAN:
|
|
166
|
-
return withComposeCode(filterFactory.measureGreaterThan)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], guid);
|
|
173
|
+
return withComposeCode(filterFactory.measureGreaterThan, 'measureGreaterThan')(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
|
|
167
174
|
case ConditionFilterType.GREATER_THAN_OR_EQUAL:
|
|
168
|
-
return withComposeCode(filterFactory.measureGreaterThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], guid);
|
|
175
|
+
return withComposeCode(filterFactory.measureGreaterThanOrEqual, 'measureGreaterThanOrEqual')(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
|
|
169
176
|
case ConditionFilterType.LESS_THAN:
|
|
170
|
-
return withComposeCode(filterFactory.measureLessThan)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], guid);
|
|
177
|
+
return withComposeCode(filterFactory.measureLessThan, 'measureLessThan')(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
|
|
171
178
|
case ConditionFilterType.LESS_THAN_OR_EQUAL:
|
|
172
|
-
return withComposeCode(filterFactory.measureLessThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], guid);
|
|
179
|
+
return withComposeCode(filterFactory.measureLessThanOrEqual, 'measureLessThanOrEqual')(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
|
|
173
180
|
case ConditionFilterType.BETWEEN:
|
|
174
|
-
return withComposeCode(filterFactory.measureBetween)(measure, conditionFilterJaql.from, conditionFilterJaql.to, guid);
|
|
181
|
+
return withComposeCode(filterFactory.measureBetween, 'measureBetween')(measure, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
|
|
175
182
|
}
|
|
176
183
|
throw new TranslatableError('errors.filter.unsupportedConditionFilter', {
|
|
177
184
|
filter: JSON.stringify(conditionFilterJaql),
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Stringifies the argument
|
|
2
|
+
* Stringifies the argument, with an option to exclude specific properties.
|
|
3
3
|
*
|
|
4
|
-
* @param arg - argument to stringify
|
|
5
|
-
* @
|
|
4
|
+
* @param arg - The argument to stringify.
|
|
5
|
+
* @param excludeProps - Optional array of property names to exclude when stringifying objects.
|
|
6
|
+
* @returns The stringified representation of the argument.
|
|
6
7
|
*/
|
|
7
|
-
export declare function stringifyHelper(arg: any): string;
|
|
8
|
+
export declare function stringifyHelper(arg: any, excludeProps?: string[]): string;
|
|
8
9
|
/**
|
|
9
10
|
* High order function to construct compose code for filter factory functions
|
|
10
11
|
*
|
|
11
12
|
* @param func - filter factory function
|
|
13
|
+
* @param funcName - name of the filter factory function. Needed if the function name is minified.
|
|
14
|
+
* @param ignoreIndexes - Indexes of parameters to ignore in the generated composeCode
|
|
15
|
+
* @returns filter factory function with composeCode property added to the filter
|
|
12
16
|
*/
|
|
13
|
-
export declare function withComposeCode
|
|
17
|
+
export declare function withComposeCode<T extends (...args: any[]) => any>(func: T, funcName?: string, ignoreIndexes?: number[]): T;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Stringifies the argument
|
|
2
|
+
* Stringifies the argument, with an option to exclude specific properties.
|
|
3
3
|
*
|
|
4
|
-
* @param arg - argument to stringify
|
|
5
|
-
* @
|
|
4
|
+
* @param arg - The argument to stringify.
|
|
5
|
+
* @param excludeProps - Optional array of property names to exclude when stringifying objects.
|
|
6
|
+
* @returns The stringified representation of the argument.
|
|
6
7
|
*/
|
|
7
|
-
export function stringifyHelper(arg) {
|
|
8
|
+
export function stringifyHelper(arg, excludeProps = []) {
|
|
8
9
|
try {
|
|
9
10
|
if (arg === null || arg === undefined) {
|
|
10
11
|
return JSON.stringify(arg);
|
|
@@ -16,7 +17,7 @@ export function stringifyHelper(arg) {
|
|
|
16
17
|
return ('[' +
|
|
17
18
|
arg
|
|
18
19
|
.map((e) => {
|
|
19
|
-
return stringifyHelper(e);
|
|
20
|
+
return stringifyHelper(e, excludeProps);
|
|
20
21
|
})
|
|
21
22
|
.join(', ') +
|
|
22
23
|
']');
|
|
@@ -27,6 +28,19 @@ export function stringifyHelper(arg) {
|
|
|
27
28
|
if (typeof arg === 'number' || !isNaN(arg)) {
|
|
28
29
|
return arg;
|
|
29
30
|
}
|
|
31
|
+
if (typeof arg === 'object') {
|
|
32
|
+
const filteredObject = Object.keys(arg)
|
|
33
|
+
.filter((key) => !excludeProps.includes(key))
|
|
34
|
+
.reduce((acc, key) => {
|
|
35
|
+
acc[key] = arg[key];
|
|
36
|
+
return acc;
|
|
37
|
+
}, {});
|
|
38
|
+
// Check if the filtered object is empty
|
|
39
|
+
if (Object.keys(filteredObject).length === 0) {
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
return JSON.stringify(filteredObject);
|
|
43
|
+
}
|
|
30
44
|
}
|
|
31
45
|
catch (e) {
|
|
32
46
|
console.error(e);
|
|
@@ -37,16 +51,26 @@ export function stringifyHelper(arg) {
|
|
|
37
51
|
* High order function to construct compose code for filter factory functions
|
|
38
52
|
*
|
|
39
53
|
* @param func - filter factory function
|
|
54
|
+
* @param funcName - name of the filter factory function. Needed if the function name is minified.
|
|
55
|
+
* @param ignoreIndexes - Indexes of parameters to ignore in the generated composeCode
|
|
56
|
+
* @returns filter factory function with composeCode property added to the filter
|
|
40
57
|
*/
|
|
41
|
-
export function withComposeCode(func) {
|
|
58
|
+
export function withComposeCode(func, funcName, ignoreIndexes = []) {
|
|
42
59
|
return function (...args) {
|
|
43
60
|
const argValues = args
|
|
44
|
-
.map(
|
|
61
|
+
.map((arg, index) => {
|
|
62
|
+
if (ignoreIndexes.includes(index)) {
|
|
63
|
+
return ''; // Placeholder for ignored parameters
|
|
64
|
+
}
|
|
65
|
+
return stringifyHelper(arg, ['guid']);
|
|
66
|
+
})
|
|
45
67
|
.join(', ')
|
|
46
68
|
// remove any number of trailing commas
|
|
47
69
|
.replace(/(,\s*)+$/, '');
|
|
48
|
-
const signature = `filterFactory.${func.name}(${argValues})`;
|
|
70
|
+
const signature = `filterFactory.${funcName !== null && funcName !== void 0 ? funcName : func.name}(${argValues})`;
|
|
71
|
+
// Call the original function and get the filter
|
|
49
72
|
const filter = func(...args);
|
|
73
|
+
// Add the composeCode property
|
|
50
74
|
filter.composeCode = signature;
|
|
51
75
|
return filter;
|
|
52
76
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseFilterJaql,
|
|
2
|
-
import { Attribute,
|
|
1
|
+
import { BaseFilterJaql, FilterJaqlInternal, PeriodFilterJaql, RangeFilterJaql, SpecificItemsFilterJaql } from './types.js';
|
|
2
|
+
import { Attribute, Filter, LevelAttribute } from '../../interfaces.js';
|
|
3
3
|
import { FilterJaql } from '../../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Creates a generic filter (aka pass-through JAQL filter) if the JAQL cannot be translated to a specific filter type.
|
|
@@ -8,75 +8,65 @@ import { FilterJaql } from '../../types.js';
|
|
|
8
8
|
* @param guid - Optional GUID for the filter
|
|
9
9
|
* @returns A generic Filter object.
|
|
10
10
|
*/
|
|
11
|
-
export declare const createGenericFilter: (jaql: FilterJaql | FilterJaqlInternal, guid
|
|
11
|
+
export declare const createGenericFilter: (jaql: FilterJaql | FilterJaqlInternal, guid: string) => Filter;
|
|
12
12
|
/**
|
|
13
13
|
* Creates a filter that includes all members of the attribute.
|
|
14
14
|
*
|
|
15
15
|
* @param attribute - The attribute.
|
|
16
|
-
* @param guid -
|
|
16
|
+
* @param guid - GUID for the filter
|
|
17
17
|
* @returns The created Filter object.
|
|
18
18
|
*/
|
|
19
|
-
export declare const createFilterIncludeAll: (attribute: Attribute, guid
|
|
19
|
+
export declare const createFilterIncludeAll: (attribute: Attribute, guid: string) => Filter;
|
|
20
20
|
/**
|
|
21
21
|
* Creates a filter from a specific items filter JAQL object.
|
|
22
22
|
*
|
|
23
23
|
* @param attribute - attribute
|
|
24
24
|
* @param specificItemsFilterJaql - Specific Items Filter Jaql
|
|
25
|
-
* @param guid -
|
|
25
|
+
* @param guid - GUID for the filter
|
|
26
26
|
* @returns Filter object
|
|
27
27
|
*/
|
|
28
|
-
export declare const createFilterFromSpecificItemsFilterJaql: (attribute: Attribute, specificItemsFilterJaql: SpecificItemsFilterJaql, guid
|
|
28
|
+
export declare const createFilterFromSpecificItemsFilterJaql: (attribute: Attribute, specificItemsFilterJaql: SpecificItemsFilterJaql, guid: string, multiSelection?: boolean) => Filter;
|
|
29
29
|
/**
|
|
30
30
|
* Creates a filter from a date range filter JAQL object.
|
|
31
31
|
*
|
|
32
32
|
* @param attribute - attribute
|
|
33
33
|
* @param rangeFilterJaql - Range Filter Jaql
|
|
34
|
-
* @param guid -
|
|
34
|
+
* @param guid - GUID for the filter
|
|
35
35
|
* @returns Filter object
|
|
36
36
|
*/
|
|
37
|
-
export declare const createFilterFromDateRangeFilterJaql: (attribute: LevelAttribute, rangeFilterJaql: RangeFilterJaql, guid
|
|
37
|
+
export declare const createFilterFromDateRangeFilterJaql: (attribute: LevelAttribute, rangeFilterJaql: RangeFilterJaql, guid: string) => Filter;
|
|
38
38
|
/**
|
|
39
39
|
* Creates a filter from a numeric range filter JAQL object.
|
|
40
40
|
*
|
|
41
41
|
* @param attribute - attribute
|
|
42
42
|
* @param rangeFilterJaql - Range Filter Jaql
|
|
43
|
-
* @param guid -
|
|
43
|
+
* @param guid - GUID for the filter
|
|
44
44
|
* @returns Filter object
|
|
45
45
|
*/
|
|
46
|
-
export declare const createFilterFromNumericRangeJaql: (attribute: Attribute, rangeFilterJaql: RangeFilterJaql, guid
|
|
46
|
+
export declare const createFilterFromNumericRangeJaql: (attribute: Attribute, rangeFilterJaql: RangeFilterJaql, guid: string) => Filter;
|
|
47
47
|
/**
|
|
48
48
|
* Creates a filter from a period filter JAQL object.
|
|
49
49
|
*
|
|
50
50
|
* @param attribute - attribute
|
|
51
51
|
* @param periodFilterJaql - Period Filter Jaql
|
|
52
|
-
* @param guid -
|
|
52
|
+
* @param guid - GUID for the filter
|
|
53
53
|
* @returns Filter object
|
|
54
54
|
*/
|
|
55
|
-
export declare const createFilterFromPeriodFilterJaql: (attribute: LevelAttribute, periodFilterJaql: PeriodFilterJaql, guid
|
|
56
|
-
/**
|
|
57
|
-
* Creates a filter from a condition filter JAQL object.
|
|
58
|
-
*
|
|
59
|
-
* @param attribute - attribute
|
|
60
|
-
* @param conditionFilterJaql - Condition Filter Jaql
|
|
61
|
-
* @param measure - measure
|
|
62
|
-
* @param guid - Optional GUID for the filter
|
|
63
|
-
* @returns Filter object
|
|
64
|
-
*/
|
|
65
|
-
export declare const createFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, measure?: BaseMeasure, guid?: string) => Filter;
|
|
55
|
+
export declare const createFilterFromPeriodFilterJaql: (attribute: LevelAttribute, periodFilterJaql: PeriodFilterJaql, guid: string) => Filter;
|
|
66
56
|
/**
|
|
67
57
|
* Creates a filter from a custom filter JAQL object.
|
|
68
58
|
*
|
|
69
59
|
* @param attribute - attribute
|
|
70
60
|
* @param customFilterJaql - Custom Filter Jaql
|
|
71
|
-
* @param guid -
|
|
61
|
+
* @param guid - GUID for the filter
|
|
72
62
|
* @returns Filter object
|
|
73
63
|
*/
|
|
74
|
-
export declare const createFilterFromCustomFilterJaql: (attribute: Attribute, customFilterJaql: BaseFilterJaql, guid
|
|
64
|
+
export declare const createFilterFromCustomFilterJaql: (attribute: Attribute, customFilterJaql: BaseFilterJaql, guid: string) => Filter;
|
|
75
65
|
/**
|
|
76
66
|
* Creates a filter from a filter JAQL object.
|
|
77
67
|
*
|
|
78
68
|
* @param jaql - The filter JAQL object.
|
|
79
|
-
* @param guid -
|
|
69
|
+
* @param guid - GUID for the filter
|
|
80
70
|
* @returns Filter object.
|
|
81
71
|
*/
|
|
82
|
-
export declare const createFilterFromJaqlInternal: (jaql: FilterJaqlInternal, guid
|
|
72
|
+
export declare const createFilterFromJaqlInternal: (jaql: FilterJaqlInternal, guid: string) => Filter;
|
|
@@ -4,8 +4,8 @@ import { createAttributeFilterFromConditionFilterJaql, createMeasureFilterFromCo
|
|
|
4
4
|
import { extractFilterTypeFromFilterJaql } from './filter-types-util.js';
|
|
5
5
|
import { withComposeCode } from './filter-code-util.js';
|
|
6
6
|
import { createAttributeFromFilterJaql, createMeasureFromFilterJaql, } from './attribute-measure-util.js';
|
|
7
|
-
import { guidFast } from '../../../utils.js';
|
|
8
7
|
import { TranslatableError } from '../../../translation/translatable-error.js';
|
|
8
|
+
import { getDefaultBaseFilterConfig, simplifyFilterConfig } from '../filter-config-utils.js';
|
|
9
9
|
/**
|
|
10
10
|
* Creates a generic filter (aka pass-through JAQL filter) if the JAQL cannot be translated to a specific filter type.
|
|
11
11
|
*
|
|
@@ -15,7 +15,7 @@ import { TranslatableError } from '../../../translation/translatable-error.js';
|
|
|
15
15
|
*/
|
|
16
16
|
export const createGenericFilter = (jaql, guid) => {
|
|
17
17
|
return {
|
|
18
|
-
|
|
18
|
+
config: Object.assign(Object.assign({}, getDefaultBaseFilterConfig()), { guid, originalFilterJaql: jaql }),
|
|
19
19
|
jaql: (nested) => {
|
|
20
20
|
if (nested) {
|
|
21
21
|
return jaql;
|
|
@@ -41,31 +41,40 @@ export const createGenericFilter = (jaql, guid) => {
|
|
|
41
41
|
* Creates a filter that includes all members of the attribute.
|
|
42
42
|
*
|
|
43
43
|
* @param attribute - The attribute.
|
|
44
|
-
* @param guid -
|
|
44
|
+
* @param guid - GUID for the filter
|
|
45
45
|
* @returns The created Filter object.
|
|
46
46
|
*/
|
|
47
47
|
export const createFilterIncludeAll = (attribute, guid) => {
|
|
48
48
|
// including all members is equivalent to excluding none
|
|
49
49
|
// so we can simply create a filter with no members and excludeMembers set to true
|
|
50
|
-
|
|
50
|
+
const config = {
|
|
51
|
+
guid,
|
|
52
|
+
excludeMembers: true,
|
|
53
|
+
};
|
|
54
|
+
return withComposeCode(filterFactory.members, 'members')(attribute, [], config);
|
|
51
55
|
};
|
|
52
56
|
/**
|
|
53
57
|
* Creates a filter from a specific items filter JAQL object.
|
|
54
58
|
*
|
|
55
59
|
* @param attribute - attribute
|
|
56
60
|
* @param specificItemsFilterJaql - Specific Items Filter Jaql
|
|
57
|
-
* @param guid -
|
|
61
|
+
* @param guid - GUID for the filter
|
|
58
62
|
* @returns Filter object
|
|
59
63
|
*/
|
|
60
64
|
export const createFilterFromSpecificItemsFilterJaql = (attribute, specificItemsFilterJaql, guid, multiSelection) => {
|
|
61
65
|
const deactivatedMembers = getDeactivatedMembersFromFilterJaql(specificItemsFilterJaql);
|
|
62
66
|
const activeMembers = getActiveMembersFromFilterJaql(specificItemsFilterJaql, deactivatedMembers);
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
const config = simplifyFilterConfig({
|
|
68
|
+
guid,
|
|
69
|
+
excludeMembers: false,
|
|
70
|
+
enableMultiSelection: multiSelection !== null && multiSelection !== void 0 ? multiSelection : true,
|
|
71
|
+
deactivatedMembers,
|
|
72
|
+
});
|
|
73
|
+
return withComposeCode(filterFactory.members, 'members')(attribute, activeMembers, config);
|
|
65
74
|
};
|
|
66
75
|
function getDeactivatedMembersFromFilterJaql(filterJaql) {
|
|
67
|
-
var _a, _b, _c;
|
|
68
|
-
return ((_a = filterJaql.filter) === null || _a === void 0 ? void 0 : _a.turnedOff) ? (_c = (_b = filterJaql.filter) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.members :
|
|
76
|
+
var _a, _b, _c, _d;
|
|
77
|
+
return ((_a = filterJaql.filter) === null || _a === void 0 ? void 0 : _a.turnedOff) ? (_d = (_c = (_b = filterJaql.filter) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.members) !== null && _d !== void 0 ? _d : [] : [];
|
|
69
78
|
}
|
|
70
79
|
function getActiveMembersFromFilterJaql(filterJaql, deactivatedMembers) {
|
|
71
80
|
const allMembers = filterJaql.members;
|
|
@@ -78,54 +87,37 @@ function getActiveMembersFromFilterJaql(filterJaql, deactivatedMembers) {
|
|
|
78
87
|
*
|
|
79
88
|
* @param attribute - attribute
|
|
80
89
|
* @param rangeFilterJaql - Range Filter Jaql
|
|
81
|
-
* @param guid -
|
|
90
|
+
* @param guid - GUID for the filter
|
|
82
91
|
* @returns Filter object
|
|
83
92
|
*/
|
|
84
93
|
export const createFilterFromDateRangeFilterJaql = (attribute, rangeFilterJaql, guid) => {
|
|
85
|
-
return withComposeCode(filterFactory.dateRange)(attribute, rangeFilterJaql.from, rangeFilterJaql.to, guid);
|
|
94
|
+
return withComposeCode(filterFactory.dateRange, 'dateRange')(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
|
|
86
95
|
};
|
|
87
96
|
/**
|
|
88
97
|
* Creates a filter from a numeric range filter JAQL object.
|
|
89
98
|
*
|
|
90
99
|
* @param attribute - attribute
|
|
91
100
|
* @param rangeFilterJaql - Range Filter Jaql
|
|
92
|
-
* @param guid -
|
|
101
|
+
* @param guid - GUID for the filter
|
|
93
102
|
* @returns Filter object
|
|
94
103
|
*/
|
|
95
104
|
export const createFilterFromNumericRangeJaql = (attribute, rangeFilterJaql, guid) => {
|
|
96
|
-
return withComposeCode(filterFactory.between)(attribute, rangeFilterJaql.from, rangeFilterJaql.to, guid);
|
|
105
|
+
return withComposeCode(filterFactory.between, 'between')(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
|
|
97
106
|
};
|
|
98
107
|
/**
|
|
99
108
|
* Creates a filter from a period filter JAQL object.
|
|
100
109
|
*
|
|
101
110
|
* @param attribute - attribute
|
|
102
111
|
* @param periodFilterJaql - Period Filter Jaql
|
|
103
|
-
* @param guid -
|
|
112
|
+
* @param guid - GUID for the filter
|
|
104
113
|
* @returns Filter object
|
|
105
114
|
*/
|
|
106
115
|
export const createFilterFromPeriodFilterJaql = (attribute, periodFilterJaql, guid) => {
|
|
107
116
|
if (periodFilterJaql.last) {
|
|
108
|
-
return withComposeCode(filterFactory.dateRelativeTo)(attribute, periodFilterJaql.last.offset, periodFilterJaql.last.count, periodFilterJaql.last.anchor, guid);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
return withComposeCode(filterFactory.dateRelativeFrom)(attribute, periodFilterJaql.next.offset, periodFilterJaql.next.count, periodFilterJaql.next.anchor, guid);
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Creates a filter from a condition filter JAQL object.
|
|
116
|
-
*
|
|
117
|
-
* @param attribute - attribute
|
|
118
|
-
* @param conditionFilterJaql - Condition Filter Jaql
|
|
119
|
-
* @param measure - measure
|
|
120
|
-
* @param guid - Optional GUID for the filter
|
|
121
|
-
* @returns Filter object
|
|
122
|
-
*/
|
|
123
|
-
export const createFilterFromConditionFilterJaql = (attribute, conditionFilterJaql, measure, guid) => {
|
|
124
|
-
if (measure) {
|
|
125
|
-
return createMeasureFilterFromConditionFilterJaql(measure, conditionFilterJaql, guid);
|
|
117
|
+
return withComposeCode(filterFactory.dateRelativeTo, 'dateRelativeTo')(attribute, periodFilterJaql.last.offset, periodFilterJaql.last.count, periodFilterJaql.last.anchor, { guid });
|
|
126
118
|
}
|
|
127
119
|
else {
|
|
128
|
-
return
|
|
120
|
+
return withComposeCode(filterFactory.dateRelativeFrom, 'dateRelativeFrom')(attribute, periodFilterJaql.next.offset, periodFilterJaql.next.count, periodFilterJaql.next.anchor, { guid });
|
|
129
121
|
}
|
|
130
122
|
};
|
|
131
123
|
/**
|
|
@@ -133,17 +125,19 @@ export const createFilterFromConditionFilterJaql = (attribute, conditionFilterJa
|
|
|
133
125
|
*
|
|
134
126
|
* @param attribute - attribute
|
|
135
127
|
* @param customFilterJaql - Custom Filter Jaql
|
|
136
|
-
* @param guid -
|
|
128
|
+
* @param guid - GUID for the filter
|
|
137
129
|
* @returns Filter object
|
|
138
130
|
*/
|
|
139
131
|
export const createFilterFromCustomFilterJaql = (attribute, customFilterJaql, guid) => {
|
|
140
|
-
return withComposeCode(filterFactory.customFilter)(attribute, customFilterJaql,
|
|
132
|
+
return withComposeCode(filterFactory.customFilter, 'customFilter')(attribute, customFilterJaql, {
|
|
133
|
+
guid,
|
|
134
|
+
});
|
|
141
135
|
};
|
|
142
136
|
/**
|
|
143
137
|
* Creates a filter from a filter JAQL object.
|
|
144
138
|
*
|
|
145
139
|
* @param jaql - The filter JAQL object.
|
|
146
|
-
* @param guid -
|
|
140
|
+
* @param guid - GUID for the filter
|
|
147
141
|
* @returns Filter object.
|
|
148
142
|
*/
|
|
149
143
|
export const createFilterFromJaqlInternal = (jaql, guid) => {
|
|
@@ -165,7 +159,12 @@ export const createFilterFromJaqlInternal = (jaql, guid) => {
|
|
|
165
159
|
case FILTER_TYPES.SPECIFIC_ITEMS:
|
|
166
160
|
return createFilterFromSpecificItemsFilterJaql(attribute, filterJaqlWithType, guid, filterJaqlWithType.multiSelection);
|
|
167
161
|
case FILTER_TYPES.CONDITION:
|
|
168
|
-
|
|
162
|
+
if (measure) {
|
|
163
|
+
return createMeasureFilterFromConditionFilterJaql(measure, filterJaqlWithType, guid);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
return createAttributeFilterFromConditionFilterJaql(attribute, filterJaqlWithType, guid);
|
|
167
|
+
}
|
|
169
168
|
case FILTER_TYPES.DATE_RANGE:
|
|
170
169
|
return createFilterFromDateRangeFilterJaql(attribute, filterJaqlWithType, guid);
|
|
171
170
|
case FILTER_TYPES.PERIOD:
|