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