@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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import isEqual from 'lodash-es/isEqual.js';
|
|
2
|
+
import { guidFast } from '../../utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a default configuration for a base filter.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const getDefaultBaseFilterConfig = () => ({
|
|
8
|
+
guid: guidFast(13),
|
|
9
|
+
disabled: false,
|
|
10
|
+
locked: false,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Returns a default configuration for a members filter.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export const getDefaultMembersFilterConfig = () => (Object.assign(Object.assign({}, getDefaultBaseFilterConfig()), { excludeMembers: false, enableMultiSelection: true, deactivatedMembers: [] }));
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether the given configuration is a members filter configuration.
|
|
19
|
+
* @param config - The filter configuration.
|
|
20
|
+
* @returns Whether the configuration is a members filter configuration.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export function isMembersFilterConfig(config) {
|
|
24
|
+
return 'excludeMembers' in config;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Simplifies the filter configuration by removing default values.
|
|
28
|
+
* @param config - The filter configuration.
|
|
29
|
+
* @returns The simplified filter configuration.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export const simplifyFilterConfig = (config) => {
|
|
33
|
+
const defaultConfig = isMembersFilterConfig(config)
|
|
34
|
+
? getDefaultMembersFilterConfig()
|
|
35
|
+
: getDefaultBaseFilterConfig();
|
|
36
|
+
// Filter out properties that match their default values
|
|
37
|
+
const simplifiedConfig = Object.fromEntries(Object.entries(config).filter(([key, value]) => !isEqual(value, defaultConfig[key])));
|
|
38
|
+
return simplifiedConfig;
|
|
39
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LevelAttribute, Attribute, Measure, Filter } from '../interfaces.js';
|
|
1
|
+
import { LevelAttribute, Attribute, Measure, Filter, MembersFilterConfig, CompleteMembersFilterConfig, CompleteBaseFilterConfig, BaseFilterConfig } from '../interfaces.js';
|
|
2
2
|
import { DimensionalElement } from '../base.js';
|
|
3
3
|
import { AnyObject } from '../types.js';
|
|
4
4
|
/**
|
|
@@ -92,26 +92,10 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
92
92
|
*/
|
|
93
93
|
readonly filterType: string;
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
95
|
+
* Filter configuration
|
|
96
96
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
private _locked;
|
|
100
|
-
/**
|
|
101
|
-
* Boolean flag whether the filter is disabled
|
|
102
|
-
*
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
get disabled(): boolean;
|
|
106
|
-
set disabled(value: boolean);
|
|
107
|
-
/**
|
|
108
|
-
* Boolean flag whether the filter is locked
|
|
109
|
-
*
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
get locked(): boolean;
|
|
113
|
-
set locked(value: boolean);
|
|
114
|
-
constructor(att: Attribute, filterType: string, guid?: string);
|
|
97
|
+
config: CompleteBaseFilterConfig;
|
|
98
|
+
constructor(att: Attribute, filterType: string, config?: BaseFilterConfig);
|
|
115
99
|
get name(): string;
|
|
116
100
|
/**
|
|
117
101
|
* Gets JAQL representing this Filter instance
|
|
@@ -144,7 +128,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
144
128
|
export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
145
129
|
readonly filters: Filter[];
|
|
146
130
|
readonly operator: string;
|
|
147
|
-
constructor(filters: Filter[], operator: string,
|
|
131
|
+
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig);
|
|
148
132
|
/**
|
|
149
133
|
* gets the element's ID
|
|
150
134
|
*/
|
|
@@ -162,16 +146,9 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
162
146
|
* @internal
|
|
163
147
|
*/
|
|
164
148
|
export declare class MembersFilter extends AbstractFilter {
|
|
165
|
-
readonly members:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
/** @internal */
|
|
169
|
-
multiSelection: boolean;
|
|
170
|
-
/** @internal */
|
|
171
|
-
deactivatedMembers: any[];
|
|
172
|
-
/** @internal */
|
|
173
|
-
backgroundFilter?: Filter;
|
|
174
|
-
constructor(attribute: Attribute, members?: any[], excludeMembers?: boolean, guid?: string, deactivatedMembers?: any[], backgroundFilter?: Filter, multiSelection?: boolean);
|
|
149
|
+
readonly members: string[];
|
|
150
|
+
config: CompleteMembersFilterConfig;
|
|
151
|
+
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig);
|
|
175
152
|
/**
|
|
176
153
|
* gets the element's ID
|
|
177
154
|
*/
|
|
@@ -190,15 +167,15 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
190
167
|
*/
|
|
191
168
|
export declare class CascadingFilter extends AbstractFilter {
|
|
192
169
|
readonly filters: Filter[];
|
|
193
|
-
constructor(filters: Filter[],
|
|
170
|
+
constructor(filters: Filter[], config?: BaseFilterConfig);
|
|
171
|
+
/**
|
|
172
|
+
* Propagates the parent config to all level filters
|
|
173
|
+
*/
|
|
174
|
+
propagateConfig(): void;
|
|
194
175
|
/**
|
|
195
176
|
* gets the element's ID
|
|
196
177
|
*/
|
|
197
178
|
get id(): string;
|
|
198
|
-
get disabled(): boolean;
|
|
199
|
-
set disabled(value: boolean);
|
|
200
|
-
get locked(): boolean;
|
|
201
|
-
set locked(value: boolean);
|
|
202
179
|
/**
|
|
203
180
|
* Gets a serializable representation of the element
|
|
204
181
|
*/
|
|
@@ -215,7 +192,7 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
215
192
|
export declare class ExcludeFilter extends AbstractFilter {
|
|
216
193
|
readonly filter: Filter;
|
|
217
194
|
readonly input?: Filter;
|
|
218
|
-
constructor(filter: Filter, input?: Filter,
|
|
195
|
+
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig);
|
|
219
196
|
/**
|
|
220
197
|
* gets the element's ID
|
|
221
198
|
*/
|
|
@@ -237,7 +214,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
237
214
|
operatorB?: string;
|
|
238
215
|
valueA?: Type;
|
|
239
216
|
valueB?: Type;
|
|
240
|
-
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type,
|
|
217
|
+
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, config?: BaseFilterConfig);
|
|
241
218
|
/**
|
|
242
219
|
* gets the element's ID
|
|
243
220
|
*/
|
|
@@ -256,7 +233,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
256
233
|
*/
|
|
257
234
|
export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
258
235
|
measure: Measure;
|
|
259
|
-
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number,
|
|
236
|
+
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
260
237
|
/**
|
|
261
238
|
* gets the element's ID
|
|
262
239
|
*/
|
|
@@ -274,7 +251,7 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
274
251
|
count: number;
|
|
275
252
|
operator: string;
|
|
276
253
|
measure: Measure;
|
|
277
|
-
constructor(att: Attribute, measure: Measure, operator: string, count: number,
|
|
254
|
+
constructor(att: Attribute, measure: Measure, operator: string, count: number, config?: BaseFilterConfig);
|
|
278
255
|
/**
|
|
279
256
|
* gets the element's ID
|
|
280
257
|
*/
|
|
@@ -292,19 +269,19 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
292
269
|
* @internal
|
|
293
270
|
*/
|
|
294
271
|
export declare class NumericFilter extends DoubleOperatorFilter<number> {
|
|
295
|
-
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number,
|
|
272
|
+
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
296
273
|
}
|
|
297
274
|
/**
|
|
298
275
|
* @internal
|
|
299
276
|
*/
|
|
300
277
|
export declare class TextFilter extends DoubleOperatorFilter<string> {
|
|
301
|
-
constructor(att: Attribute, operator: string, value: string,
|
|
278
|
+
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig);
|
|
302
279
|
}
|
|
303
280
|
/**
|
|
304
281
|
* @internal
|
|
305
282
|
*/
|
|
306
283
|
export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
|
|
307
|
-
constructor(l: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string,
|
|
284
|
+
constructor(l: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig);
|
|
308
285
|
get level(): LevelAttribute;
|
|
309
286
|
get from(): string;
|
|
310
287
|
get to(): string;
|
|
@@ -321,7 +298,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
321
298
|
readonly count: number;
|
|
322
299
|
readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
|
|
323
300
|
readonly anchor?: Date | string;
|
|
324
|
-
constructor(l: LevelAttribute, offset: number, count: number, operator?: typeof DateOperators.Last | typeof DateOperators.Next, anchor?: Date | string,
|
|
301
|
+
constructor(l: LevelAttribute, offset: number, count: number, operator?: typeof DateOperators.Last | typeof DateOperators.Next, anchor?: Date | string, config?: BaseFilterConfig);
|
|
325
302
|
get level(): LevelAttribute;
|
|
326
303
|
/**
|
|
327
304
|
* gets the element's ID
|
|
@@ -342,7 +319,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
342
319
|
*/
|
|
343
320
|
export declare class CustomFilter extends AbstractFilter {
|
|
344
321
|
readonly jaqlExpression: any;
|
|
345
|
-
constructor(att: Attribute, jaql: any,
|
|
322
|
+
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig);
|
|
346
323
|
/**
|
|
347
324
|
* gets the element's ID
|
|
348
325
|
*/
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
6
|
-
/* eslint-disable max-params */
|
|
7
|
-
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
8
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
9
1
|
import hash from 'hash-it';
|
|
10
2
|
import { DimensionalElement } from '../base.js';
|
|
11
3
|
import { DateLevels, MetadataTypes } from '../types.js';
|
|
12
4
|
import { create } from '../factory.js';
|
|
13
5
|
import { DimensionalBaseMeasure } from '../measures/measures.js';
|
|
14
6
|
import { TranslatableError } from '../../translation/translatable-error.js';
|
|
15
|
-
import {
|
|
7
|
+
import { getDefaultBaseFilterConfig, getDefaultMembersFilterConfig, } from './filter-config-utils.js';
|
|
8
|
+
import merge from 'lodash-es/merge.js';
|
|
16
9
|
/**
|
|
17
10
|
* Different text operators that can be used with text filters
|
|
18
11
|
*
|
|
@@ -96,36 +89,12 @@ export const FilterTypes = {
|
|
|
96
89
|
* @internal
|
|
97
90
|
*/
|
|
98
91
|
class AbstractFilter extends DimensionalElement {
|
|
99
|
-
constructor(att, filterType,
|
|
92
|
+
constructor(att, filterType, config) {
|
|
100
93
|
super('filter', MetadataTypes.Filter);
|
|
101
94
|
this.filterType = filterType;
|
|
102
95
|
AbstractFilter.checkAttributeSupport(att);
|
|
103
96
|
this.attribute = att;
|
|
104
|
-
this.
|
|
105
|
-
this.disabled = false;
|
|
106
|
-
this.locked = false;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Boolean flag whether the filter is disabled
|
|
110
|
-
*
|
|
111
|
-
* @internal
|
|
112
|
-
*/
|
|
113
|
-
get disabled() {
|
|
114
|
-
return this._disabled;
|
|
115
|
-
}
|
|
116
|
-
set disabled(value) {
|
|
117
|
-
this._disabled = value;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Boolean flag whether the filter is locked
|
|
121
|
-
*
|
|
122
|
-
* @internal
|
|
123
|
-
*/
|
|
124
|
-
get locked() {
|
|
125
|
-
return this._locked;
|
|
126
|
-
}
|
|
127
|
-
set locked(value) {
|
|
128
|
-
this._locked = value;
|
|
97
|
+
this.config = merge({}, getDefaultBaseFilterConfig(), config !== null && config !== void 0 ? config : {});
|
|
129
98
|
}
|
|
130
99
|
get name() {
|
|
131
100
|
// to hexadecimal string
|
|
@@ -146,7 +115,7 @@ class AbstractFilter extends DimensionalElement {
|
|
|
146
115
|
* @param nested - defines whether the JAQL is nested within parent JAQL statement or a root JAQL element
|
|
147
116
|
*/
|
|
148
117
|
jaql(nested) {
|
|
149
|
-
if (this.disabled) {
|
|
118
|
+
if (this.config.disabled) {
|
|
150
119
|
return AbstractFilter.disabledJaql(nested);
|
|
151
120
|
}
|
|
152
121
|
const result = this.attribute.jaql(false);
|
|
@@ -187,8 +156,8 @@ class AbstractFilter extends DimensionalElement {
|
|
|
187
156
|
* @internal
|
|
188
157
|
*/
|
|
189
158
|
export class LogicalAttributeFilter extends AbstractFilter {
|
|
190
|
-
constructor(filters, operator,
|
|
191
|
-
super(filters[0].attribute, FilterTypes.logicalAttribute,
|
|
159
|
+
constructor(filters, operator, config) {
|
|
160
|
+
super(filters[0].attribute, FilterTypes.logicalAttribute, config);
|
|
192
161
|
this.operator = operator;
|
|
193
162
|
this.filters = filters;
|
|
194
163
|
}
|
|
@@ -220,18 +189,17 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
220
189
|
* @internal
|
|
221
190
|
*/
|
|
222
191
|
export class MembersFilter extends AbstractFilter {
|
|
223
|
-
constructor(attribute, members,
|
|
224
|
-
super(attribute, FilterTypes.members
|
|
192
|
+
constructor(attribute, members, config) {
|
|
193
|
+
super(attribute, FilterTypes.members);
|
|
225
194
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
226
|
-
this.excludeMembers = excludeMembers !== null && excludeMembers !== void 0 ? excludeMembers : false;
|
|
227
|
-
this.multiSelection = multiSelection;
|
|
228
|
-
this.deactivatedMembers = deactivatedMembers !== null && deactivatedMembers !== void 0 ? deactivatedMembers : [];
|
|
229
|
-
this.backgroundFilter = backgroundFilter;
|
|
230
195
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
231
196
|
throw new TranslatableError('errors.filter.membersFilterNullMember', {
|
|
232
197
|
attributeId: attribute.id,
|
|
233
198
|
});
|
|
234
199
|
}
|
|
200
|
+
// merge default config and input config into a new object
|
|
201
|
+
// to avoid mutation
|
|
202
|
+
this.config = merge({}, getDefaultMembersFilterConfig(), config !== null && config !== void 0 ? config : {});
|
|
235
203
|
}
|
|
236
204
|
/**
|
|
237
205
|
* gets the element's ID
|
|
@@ -245,9 +213,6 @@ export class MembersFilter extends AbstractFilter {
|
|
|
245
213
|
serializable() {
|
|
246
214
|
const result = super.serializable();
|
|
247
215
|
result.members = this.members;
|
|
248
|
-
if (this.backgroundFilter) {
|
|
249
|
-
result.backgroundFilter = this.backgroundFilter.serializable();
|
|
250
|
-
}
|
|
251
216
|
return result;
|
|
252
217
|
}
|
|
253
218
|
/**
|
|
@@ -257,10 +222,12 @@ export class MembersFilter extends AbstractFilter {
|
|
|
257
222
|
const membersFilterJaql = {
|
|
258
223
|
members: this.members.map((m) => m.toString()),
|
|
259
224
|
};
|
|
260
|
-
const filterJaql = this.excludeMembers
|
|
261
|
-
|
|
225
|
+
const filterJaql = this.config.excludeMembers
|
|
226
|
+
? { exclude: membersFilterJaql }
|
|
227
|
+
: membersFilterJaql;
|
|
228
|
+
if (this.config.backgroundFilter) {
|
|
262
229
|
return {
|
|
263
|
-
and: [filterJaql, this.backgroundFilter.filterJaql()],
|
|
230
|
+
and: [filterJaql, this.config.backgroundFilter.filterJaql()],
|
|
264
231
|
};
|
|
265
232
|
}
|
|
266
233
|
return filterJaql;
|
|
@@ -270,9 +237,20 @@ export class MembersFilter extends AbstractFilter {
|
|
|
270
237
|
* @internal
|
|
271
238
|
*/
|
|
272
239
|
export class CascadingFilter extends AbstractFilter {
|
|
273
|
-
constructor(filters,
|
|
274
|
-
super(filters[0].attribute, FilterTypes.cascading,
|
|
240
|
+
constructor(filters, config) {
|
|
241
|
+
super(filters[0].attribute, FilterTypes.cascading, config);
|
|
275
242
|
this.filters = filters;
|
|
243
|
+
this.propagateConfig();
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Propagates the parent config to all level filters
|
|
247
|
+
*/
|
|
248
|
+
propagateConfig() {
|
|
249
|
+
const { disabled, locked } = this.config;
|
|
250
|
+
this.filters.forEach((f) => {
|
|
251
|
+
f.config.disabled = disabled;
|
|
252
|
+
f.config.locked = locked;
|
|
253
|
+
});
|
|
276
254
|
}
|
|
277
255
|
/**
|
|
278
256
|
* gets the element's ID
|
|
@@ -280,28 +258,6 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
280
258
|
get id() {
|
|
281
259
|
return `${this.filterType}_${this.filters.map((f) => f.id).join()}`;
|
|
282
260
|
}
|
|
283
|
-
get disabled() {
|
|
284
|
-
return super.disabled;
|
|
285
|
-
}
|
|
286
|
-
set disabled(value) {
|
|
287
|
-
super.disabled = value;
|
|
288
|
-
if (this.filters) {
|
|
289
|
-
this.filters.forEach((filter) => {
|
|
290
|
-
filter.disabled = value;
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
get locked() {
|
|
295
|
-
return super.locked;
|
|
296
|
-
}
|
|
297
|
-
set locked(value) {
|
|
298
|
-
super.locked = value;
|
|
299
|
-
if (this.filters) {
|
|
300
|
-
this.filters.forEach((filter) => {
|
|
301
|
-
filter.locked = value;
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
261
|
/**
|
|
306
262
|
* Gets a serializable representation of the element
|
|
307
263
|
*/
|
|
@@ -318,7 +274,7 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
318
274
|
return {};
|
|
319
275
|
}
|
|
320
276
|
jaql(nested) {
|
|
321
|
-
if (this.disabled) {
|
|
277
|
+
if (this.config.disabled) {
|
|
322
278
|
return AbstractFilter.disabledJaql(nested);
|
|
323
279
|
}
|
|
324
280
|
// return jaql of all level filters treated as scope filters
|
|
@@ -332,8 +288,8 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
332
288
|
* @internal
|
|
333
289
|
*/
|
|
334
290
|
export class ExcludeFilter extends AbstractFilter {
|
|
335
|
-
constructor(filter, input,
|
|
336
|
-
super(filter.attribute, FilterTypes.exclude,
|
|
291
|
+
constructor(filter, input, config) {
|
|
292
|
+
super(filter.attribute, FilterTypes.exclude, config);
|
|
337
293
|
this.input = input;
|
|
338
294
|
this.filter = filter;
|
|
339
295
|
}
|
|
@@ -378,8 +334,8 @@ export class ExcludeFilter extends AbstractFilter {
|
|
|
378
334
|
* @internal
|
|
379
335
|
*/
|
|
380
336
|
export class DoubleOperatorFilter extends AbstractFilter {
|
|
381
|
-
constructor(att, filterType, operatorA, valueA, operatorB, valueB,
|
|
382
|
-
super(att, filterType,
|
|
337
|
+
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config) {
|
|
338
|
+
super(att, filterType, config);
|
|
383
339
|
if (operatorA && valueA !== undefined) {
|
|
384
340
|
this.valueA = valueA;
|
|
385
341
|
this.operatorA = operatorA;
|
|
@@ -439,8 +395,8 @@ export class DoubleOperatorFilter extends AbstractFilter {
|
|
|
439
395
|
* @internal
|
|
440
396
|
*/
|
|
441
397
|
export class MeasureFilter extends DoubleOperatorFilter {
|
|
442
|
-
constructor(att, measure, operatorA, valueA, operatorB, valueB,
|
|
443
|
-
super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB,
|
|
398
|
+
constructor(att, measure, operatorA, valueA, operatorB, valueB, config) {
|
|
399
|
+
super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB, config);
|
|
444
400
|
this.measure = measure;
|
|
445
401
|
}
|
|
446
402
|
/**
|
|
@@ -465,7 +421,7 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
465
421
|
return result;
|
|
466
422
|
}
|
|
467
423
|
jaql(nested) {
|
|
468
|
-
if (this.disabled) {
|
|
424
|
+
if (this.config.disabled) {
|
|
469
425
|
return AbstractFilter.disabledJaql(nested);
|
|
470
426
|
}
|
|
471
427
|
const result = super.jaql(nested);
|
|
@@ -481,8 +437,8 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
481
437
|
* @internal
|
|
482
438
|
*/
|
|
483
439
|
export class RankingFilter extends AbstractFilter {
|
|
484
|
-
constructor(att, measure, operator, count,
|
|
485
|
-
super(att, FilterTypes.ranking,
|
|
440
|
+
constructor(att, measure, operator, count, config) {
|
|
441
|
+
super(att, FilterTypes.ranking, config);
|
|
486
442
|
this.count = count;
|
|
487
443
|
this.operator = operator;
|
|
488
444
|
this.measure = measure;
|
|
@@ -517,24 +473,24 @@ export class RankingFilter extends AbstractFilter {
|
|
|
517
473
|
* @internal
|
|
518
474
|
*/
|
|
519
475
|
export class NumericFilter extends DoubleOperatorFilter {
|
|
520
|
-
constructor(att, operatorA, valueA, operatorB, valueB,
|
|
521
|
-
super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB,
|
|
476
|
+
constructor(att, operatorA, valueA, operatorB, valueB, config) {
|
|
477
|
+
super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config);
|
|
522
478
|
}
|
|
523
479
|
}
|
|
524
480
|
/**
|
|
525
481
|
* @internal
|
|
526
482
|
*/
|
|
527
483
|
export class TextFilter extends DoubleOperatorFilter {
|
|
528
|
-
constructor(att, operator, value,
|
|
529
|
-
super(att, FilterTypes.text, operator, value, undefined, undefined,
|
|
484
|
+
constructor(att, operator, value, config) {
|
|
485
|
+
super(att, FilterTypes.text, operator, value, undefined, undefined, config);
|
|
530
486
|
}
|
|
531
487
|
}
|
|
532
488
|
/**
|
|
533
489
|
* @internal
|
|
534
490
|
*/
|
|
535
491
|
export class DateRangeFilter extends DoubleOperatorFilter {
|
|
536
|
-
constructor(l, valueFrom, valueTo,
|
|
537
|
-
super(l, FilterTypes.dateRange, DateOperators.From, valueFrom, DateOperators.To, valueTo,
|
|
492
|
+
constructor(l, valueFrom, valueTo, config) {
|
|
493
|
+
super(l, FilterTypes.dateRange, DateOperators.From, valueFrom, DateOperators.To, valueTo, config);
|
|
538
494
|
if (typeof valueFrom === 'object') {
|
|
539
495
|
this.valueA = valueFrom.toISOString();
|
|
540
496
|
}
|
|
@@ -562,8 +518,8 @@ export class DateRangeFilter extends DoubleOperatorFilter {
|
|
|
562
518
|
* @internal
|
|
563
519
|
*/
|
|
564
520
|
export class RelativeDateFilter extends AbstractFilter {
|
|
565
|
-
constructor(l, offset, count, operator, anchor,
|
|
566
|
-
super(l, FilterTypes.relativeDate,
|
|
521
|
+
constructor(l, offset, count, operator, anchor, config) {
|
|
522
|
+
super(l, FilterTypes.relativeDate, config);
|
|
567
523
|
if (!operator) {
|
|
568
524
|
operator = DateOperators.Next;
|
|
569
525
|
}
|
|
@@ -628,8 +584,8 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
628
584
|
* @internal
|
|
629
585
|
*/
|
|
630
586
|
export class CustomFilter extends AbstractFilter {
|
|
631
|
-
constructor(att, jaql,
|
|
632
|
-
super(att, FilterTypes.advanced,
|
|
587
|
+
constructor(att, jaql, config) {
|
|
588
|
+
super(att, FilterTypes.advanced, config);
|
|
633
589
|
// remove filterType from jaql as it is not needed
|
|
634
590
|
delete jaql.filterType;
|
|
635
591
|
this.jaqlExpression = jaql;
|
|
@@ -638,7 +594,7 @@ export class CustomFilter extends AbstractFilter {
|
|
|
638
594
|
* gets the element's ID
|
|
639
595
|
*/
|
|
640
596
|
get id() {
|
|
641
|
-
return `custom_${this.attribute.id}_${this.guid}`;
|
|
597
|
+
return `custom_${this.attribute.id}_${this.config.guid}`;
|
|
642
598
|
}
|
|
643
599
|
/**
|
|
644
600
|
* Gets JAQL representing this Filter instance
|
|
@@ -6,16 +6,16 @@ export declare const getSelectedConditionOption: (filter: ConditionFilterJaql) =
|
|
|
6
6
|
*
|
|
7
7
|
* @param attribute - Provided attribute
|
|
8
8
|
* @param conditionFilterJaql - Condition filter JAQL object
|
|
9
|
-
* @param guid -
|
|
9
|
+
* @param guid - GUID for the filter
|
|
10
10
|
* @returns attribute filter
|
|
11
11
|
*/
|
|
12
|
-
export declare const createAttributeFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, guid
|
|
12
|
+
export declare const createAttributeFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, guid: string) => Filter;
|
|
13
13
|
/**
|
|
14
14
|
* Creates a measure filter from the provided measure and condition filter JAQL object
|
|
15
15
|
*
|
|
16
16
|
* @param measure - Provided measure
|
|
17
17
|
* @param conditionFilterJaql - Condition filter JAQL object
|
|
18
|
-
* @param guid -
|
|
18
|
+
* @param guid - GUID for the filter
|
|
19
19
|
* @returns measure filter
|
|
20
20
|
*/
|
|
21
|
-
export declare const createMeasureFilterFromConditionFilterJaql: (measure: BaseMeasure, conditionFilterJaql: ConditionFilterJaql, guid
|
|
21
|
+
export declare const createMeasureFilterFromConditionFilterJaql: (measure: BaseMeasure, conditionFilterJaql: ConditionFilterJaql, guid: string) => Filter;
|
|
@@ -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),
|