@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
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.simplifyFilterConfig = exports.isMembersFilterConfig = exports.getDefaultMembersFilterConfig = exports.getDefaultBaseFilterConfig = void 0;
|
|
7
|
+
const isEqual_js_1 = __importDefault(require("lodash-es/isEqual.js"));
|
|
8
|
+
const utils_js_1 = require("../../utils.js");
|
|
9
|
+
/**
|
|
10
|
+
* Returns a default configuration for a base filter.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
const getDefaultBaseFilterConfig = () => ({
|
|
14
|
+
guid: (0, utils_js_1.guidFast)(13),
|
|
15
|
+
disabled: false,
|
|
16
|
+
locked: false,
|
|
17
|
+
});
|
|
18
|
+
exports.getDefaultBaseFilterConfig = getDefaultBaseFilterConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Returns a default configuration for a members filter.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
const getDefaultMembersFilterConfig = () => (Object.assign(Object.assign({}, (0, exports.getDefaultBaseFilterConfig)()), { excludeMembers: false, enableMultiSelection: true, deactivatedMembers: [] }));
|
|
24
|
+
exports.getDefaultMembersFilterConfig = getDefaultMembersFilterConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Checks whether the given configuration is a members filter configuration.
|
|
27
|
+
* @param config - The filter configuration.
|
|
28
|
+
* @returns Whether the configuration is a members filter configuration.
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
function isMembersFilterConfig(config) {
|
|
32
|
+
return 'excludeMembers' in config;
|
|
33
|
+
}
|
|
34
|
+
exports.isMembersFilterConfig = isMembersFilterConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Simplifies the filter configuration by removing default values.
|
|
37
|
+
* @param config - The filter configuration.
|
|
38
|
+
* @returns The simplified filter configuration.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
const simplifyFilterConfig = (config) => {
|
|
42
|
+
const defaultConfig = isMembersFilterConfig(config)
|
|
43
|
+
? (0, exports.getDefaultMembersFilterConfig)()
|
|
44
|
+
: (0, exports.getDefaultBaseFilterConfig)();
|
|
45
|
+
// Filter out properties that match their default values
|
|
46
|
+
const simplifiedConfig = Object.fromEntries(Object.entries(config).filter(([key, value]) => !(0, isEqual_js_1.default)(value, defaultConfig[key])));
|
|
47
|
+
return simplifiedConfig;
|
|
48
|
+
};
|
|
49
|
+
exports.simplifyFilterConfig = simplifyFilterConfig;
|
|
@@ -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
|
/**
|
|
@@ -34,11 +34,11 @@ export declare const NumericOperators: {
|
|
|
34
34
|
* @internal
|
|
35
35
|
*/
|
|
36
36
|
export declare const DateOperators: {
|
|
37
|
-
From:
|
|
38
|
-
To:
|
|
39
|
-
Last:
|
|
40
|
-
Next:
|
|
41
|
-
Anchor:
|
|
37
|
+
readonly From: "from";
|
|
38
|
+
readonly To: "to";
|
|
39
|
+
readonly Last: "last";
|
|
40
|
+
readonly Next: "next";
|
|
41
|
+
readonly Anchor: "Anchor";
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Different logical operators that can be used with logical filters
|
|
@@ -92,26 +92,10 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
92
92
|
*/
|
|
93
93
|
readonly filterType: string;
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
96
|
-
*/
|
|
97
|
-
readonly guid: string;
|
|
98
|
-
private _disabled;
|
|
99
|
-
private _locked;
|
|
100
|
-
/**
|
|
101
|
-
* Boolean flag whether the filter is disabled
|
|
102
|
-
*
|
|
103
|
-
* @internal
|
|
95
|
+
* Filter configuration
|
|
104
96
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
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;
|
|
@@ -319,9 +296,9 @@ export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string>
|
|
|
319
296
|
export declare class RelativeDateFilter extends AbstractFilter {
|
|
320
297
|
readonly offset: number;
|
|
321
298
|
readonly count: number;
|
|
322
|
-
readonly operator:
|
|
299
|
+
readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
|
|
323
300
|
readonly anchor?: Date | string;
|
|
324
|
-
constructor(l: LevelAttribute, offset: number, count: number, operator?:
|
|
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
|
*/
|
|
@@ -4,21 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createFilter = exports.isDateRangeFilter = exports.isTextFilter = exports.isRelativeDateFilter = exports.isCascadingFilter = exports.isLogicalAttributeFilter = exports.isExcludeFilter = exports.isMeasureFilter = exports.isRankingFilter = exports.isNumericFilter = exports.isMembersFilter = exports.isCustomFilter = exports.CustomFilter = exports.RelativeDateFilter = exports.DateRangeFilter = exports.TextFilter = exports.NumericFilter = exports.RankingFilter = exports.MeasureFilter = exports.DoubleOperatorFilter = exports.ExcludeFilter = exports.CascadingFilter = exports.MembersFilter = exports.LogicalAttributeFilter = exports.FilterTypes = exports.RankingOperators = exports.LogicalOperators = exports.DateOperators = exports.NumericOperators = exports.TextOperators = void 0;
|
|
7
|
-
/* eslint-disable max-lines */
|
|
8
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
9
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
10
|
-
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
11
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
12
|
-
/* eslint-disable max-params */
|
|
13
|
-
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
14
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
15
7
|
const hash_it_1 = __importDefault(require("hash-it"));
|
|
16
8
|
const base_js_1 = require("../base.js");
|
|
17
9
|
const types_js_1 = require("../types.js");
|
|
18
10
|
const factory_js_1 = require("../factory.js");
|
|
19
11
|
const measures_js_1 = require("../measures/measures.js");
|
|
20
12
|
const translatable_error_js_1 = require("../../translation/translatable-error.js");
|
|
21
|
-
const
|
|
13
|
+
const filter_config_utils_js_1 = require("./filter-config-utils.js");
|
|
14
|
+
const merge_js_1 = __importDefault(require("lodash-es/merge.js"));
|
|
22
15
|
/**
|
|
23
16
|
* Different text operators that can be used with text filters
|
|
24
17
|
*
|
|
@@ -102,36 +95,12 @@ exports.FilterTypes = {
|
|
|
102
95
|
* @internal
|
|
103
96
|
*/
|
|
104
97
|
class AbstractFilter extends base_js_1.DimensionalElement {
|
|
105
|
-
constructor(att, filterType,
|
|
98
|
+
constructor(att, filterType, config) {
|
|
106
99
|
super('filter', types_js_1.MetadataTypes.Filter);
|
|
107
100
|
this.filterType = filterType;
|
|
108
101
|
AbstractFilter.checkAttributeSupport(att);
|
|
109
102
|
this.attribute = att;
|
|
110
|
-
this.
|
|
111
|
-
this.disabled = false;
|
|
112
|
-
this.locked = false;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Boolean flag whether the filter is disabled
|
|
116
|
-
*
|
|
117
|
-
* @internal
|
|
118
|
-
*/
|
|
119
|
-
get disabled() {
|
|
120
|
-
return this._disabled;
|
|
121
|
-
}
|
|
122
|
-
set disabled(value) {
|
|
123
|
-
this._disabled = value;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Boolean flag whether the filter is locked
|
|
127
|
-
*
|
|
128
|
-
* @internal
|
|
129
|
-
*/
|
|
130
|
-
get locked() {
|
|
131
|
-
return this._locked;
|
|
132
|
-
}
|
|
133
|
-
set locked(value) {
|
|
134
|
-
this._locked = value;
|
|
103
|
+
this.config = (0, merge_js_1.default)({}, (0, filter_config_utils_js_1.getDefaultBaseFilterConfig)(), config !== null && config !== void 0 ? config : {});
|
|
135
104
|
}
|
|
136
105
|
get name() {
|
|
137
106
|
// to hexadecimal string
|
|
@@ -152,7 +121,7 @@ class AbstractFilter extends base_js_1.DimensionalElement {
|
|
|
152
121
|
* @param nested - defines whether the JAQL is nested within parent JAQL statement or a root JAQL element
|
|
153
122
|
*/
|
|
154
123
|
jaql(nested) {
|
|
155
|
-
if (this.disabled) {
|
|
124
|
+
if (this.config.disabled) {
|
|
156
125
|
return AbstractFilter.disabledJaql(nested);
|
|
157
126
|
}
|
|
158
127
|
const result = this.attribute.jaql(false);
|
|
@@ -193,8 +162,8 @@ class AbstractFilter extends base_js_1.DimensionalElement {
|
|
|
193
162
|
* @internal
|
|
194
163
|
*/
|
|
195
164
|
class LogicalAttributeFilter extends AbstractFilter {
|
|
196
|
-
constructor(filters, operator,
|
|
197
|
-
super(filters[0].attribute, exports.FilterTypes.logicalAttribute,
|
|
165
|
+
constructor(filters, operator, config) {
|
|
166
|
+
super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config);
|
|
198
167
|
this.operator = operator;
|
|
199
168
|
this.filters = filters;
|
|
200
169
|
}
|
|
@@ -227,18 +196,17 @@ exports.LogicalAttributeFilter = LogicalAttributeFilter;
|
|
|
227
196
|
* @internal
|
|
228
197
|
*/
|
|
229
198
|
class MembersFilter extends AbstractFilter {
|
|
230
|
-
constructor(attribute, members,
|
|
231
|
-
super(attribute, exports.FilterTypes.members
|
|
199
|
+
constructor(attribute, members, config) {
|
|
200
|
+
super(attribute, exports.FilterTypes.members);
|
|
232
201
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
233
|
-
this.excludeMembers = excludeMembers !== null && excludeMembers !== void 0 ? excludeMembers : false;
|
|
234
|
-
this.multiSelection = multiSelection;
|
|
235
|
-
this.deactivatedMembers = deactivatedMembers !== null && deactivatedMembers !== void 0 ? deactivatedMembers : [];
|
|
236
|
-
this.backgroundFilter = backgroundFilter;
|
|
237
202
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
238
203
|
throw new translatable_error_js_1.TranslatableError('errors.filter.membersFilterNullMember', {
|
|
239
204
|
attributeId: attribute.id,
|
|
240
205
|
});
|
|
241
206
|
}
|
|
207
|
+
// merge default config and input config into a new object
|
|
208
|
+
// to avoid mutation
|
|
209
|
+
this.config = (0, merge_js_1.default)({}, (0, filter_config_utils_js_1.getDefaultMembersFilterConfig)(), config !== null && config !== void 0 ? config : {});
|
|
242
210
|
}
|
|
243
211
|
/**
|
|
244
212
|
* gets the element's ID
|
|
@@ -252,9 +220,6 @@ class MembersFilter extends AbstractFilter {
|
|
|
252
220
|
serializable() {
|
|
253
221
|
const result = super.serializable();
|
|
254
222
|
result.members = this.members;
|
|
255
|
-
if (this.backgroundFilter) {
|
|
256
|
-
result.backgroundFilter = this.backgroundFilter.serializable();
|
|
257
|
-
}
|
|
258
223
|
return result;
|
|
259
224
|
}
|
|
260
225
|
/**
|
|
@@ -264,10 +229,12 @@ class MembersFilter extends AbstractFilter {
|
|
|
264
229
|
const membersFilterJaql = {
|
|
265
230
|
members: this.members.map((m) => m.toString()),
|
|
266
231
|
};
|
|
267
|
-
const filterJaql = this.excludeMembers
|
|
268
|
-
|
|
232
|
+
const filterJaql = this.config.excludeMembers
|
|
233
|
+
? { exclude: membersFilterJaql }
|
|
234
|
+
: membersFilterJaql;
|
|
235
|
+
if (this.config.backgroundFilter) {
|
|
269
236
|
return {
|
|
270
|
-
and: [filterJaql, this.backgroundFilter.filterJaql()],
|
|
237
|
+
and: [filterJaql, this.config.backgroundFilter.filterJaql()],
|
|
271
238
|
};
|
|
272
239
|
}
|
|
273
240
|
return filterJaql;
|
|
@@ -278,9 +245,20 @@ exports.MembersFilter = MembersFilter;
|
|
|
278
245
|
* @internal
|
|
279
246
|
*/
|
|
280
247
|
class CascadingFilter extends AbstractFilter {
|
|
281
|
-
constructor(filters,
|
|
282
|
-
super(filters[0].attribute, exports.FilterTypes.cascading,
|
|
248
|
+
constructor(filters, config) {
|
|
249
|
+
super(filters[0].attribute, exports.FilterTypes.cascading, config);
|
|
283
250
|
this.filters = filters;
|
|
251
|
+
this.propagateConfig();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Propagates the parent config to all level filters
|
|
255
|
+
*/
|
|
256
|
+
propagateConfig() {
|
|
257
|
+
const { disabled, locked } = this.config;
|
|
258
|
+
this.filters.forEach((f) => {
|
|
259
|
+
f.config.disabled = disabled;
|
|
260
|
+
f.config.locked = locked;
|
|
261
|
+
});
|
|
284
262
|
}
|
|
285
263
|
/**
|
|
286
264
|
* gets the element's ID
|
|
@@ -288,28 +266,6 @@ class CascadingFilter extends AbstractFilter {
|
|
|
288
266
|
get id() {
|
|
289
267
|
return `${this.filterType}_${this.filters.map((f) => f.id).join()}`;
|
|
290
268
|
}
|
|
291
|
-
get disabled() {
|
|
292
|
-
return super.disabled;
|
|
293
|
-
}
|
|
294
|
-
set disabled(value) {
|
|
295
|
-
super.disabled = value;
|
|
296
|
-
if (this.filters) {
|
|
297
|
-
this.filters.forEach((filter) => {
|
|
298
|
-
filter.disabled = value;
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
get locked() {
|
|
303
|
-
return super.locked;
|
|
304
|
-
}
|
|
305
|
-
set locked(value) {
|
|
306
|
-
super.locked = value;
|
|
307
|
-
if (this.filters) {
|
|
308
|
-
this.filters.forEach((filter) => {
|
|
309
|
-
filter.locked = value;
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
269
|
/**
|
|
314
270
|
* Gets a serializable representation of the element
|
|
315
271
|
*/
|
|
@@ -326,7 +282,7 @@ class CascadingFilter extends AbstractFilter {
|
|
|
326
282
|
return {};
|
|
327
283
|
}
|
|
328
284
|
jaql(nested) {
|
|
329
|
-
if (this.disabled) {
|
|
285
|
+
if (this.config.disabled) {
|
|
330
286
|
return AbstractFilter.disabledJaql(nested);
|
|
331
287
|
}
|
|
332
288
|
// return jaql of all level filters treated as scope filters
|
|
@@ -341,8 +297,8 @@ exports.CascadingFilter = CascadingFilter;
|
|
|
341
297
|
* @internal
|
|
342
298
|
*/
|
|
343
299
|
class ExcludeFilter extends AbstractFilter {
|
|
344
|
-
constructor(filter, input,
|
|
345
|
-
super(filter.attribute, exports.FilterTypes.exclude,
|
|
300
|
+
constructor(filter, input, config) {
|
|
301
|
+
super(filter.attribute, exports.FilterTypes.exclude, config);
|
|
346
302
|
this.input = input;
|
|
347
303
|
this.filter = filter;
|
|
348
304
|
}
|
|
@@ -388,8 +344,8 @@ exports.ExcludeFilter = ExcludeFilter;
|
|
|
388
344
|
* @internal
|
|
389
345
|
*/
|
|
390
346
|
class DoubleOperatorFilter extends AbstractFilter {
|
|
391
|
-
constructor(att, filterType, operatorA, valueA, operatorB, valueB,
|
|
392
|
-
super(att, filterType,
|
|
347
|
+
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config) {
|
|
348
|
+
super(att, filterType, config);
|
|
393
349
|
if (operatorA && valueA !== undefined) {
|
|
394
350
|
this.valueA = valueA;
|
|
395
351
|
this.operatorA = operatorA;
|
|
@@ -450,8 +406,8 @@ exports.DoubleOperatorFilter = DoubleOperatorFilter;
|
|
|
450
406
|
* @internal
|
|
451
407
|
*/
|
|
452
408
|
class MeasureFilter extends DoubleOperatorFilter {
|
|
453
|
-
constructor(att, measure, operatorA, valueA, operatorB, valueB,
|
|
454
|
-
super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB,
|
|
409
|
+
constructor(att, measure, operatorA, valueA, operatorB, valueB, config) {
|
|
410
|
+
super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config);
|
|
455
411
|
this.measure = measure;
|
|
456
412
|
}
|
|
457
413
|
/**
|
|
@@ -476,7 +432,7 @@ class MeasureFilter extends DoubleOperatorFilter {
|
|
|
476
432
|
return result;
|
|
477
433
|
}
|
|
478
434
|
jaql(nested) {
|
|
479
|
-
if (this.disabled) {
|
|
435
|
+
if (this.config.disabled) {
|
|
480
436
|
return AbstractFilter.disabledJaql(nested);
|
|
481
437
|
}
|
|
482
438
|
const result = super.jaql(nested);
|
|
@@ -493,8 +449,8 @@ exports.MeasureFilter = MeasureFilter;
|
|
|
493
449
|
* @internal
|
|
494
450
|
*/
|
|
495
451
|
class RankingFilter extends AbstractFilter {
|
|
496
|
-
constructor(att, measure, operator, count,
|
|
497
|
-
super(att, exports.FilterTypes.ranking,
|
|
452
|
+
constructor(att, measure, operator, count, config) {
|
|
453
|
+
super(att, exports.FilterTypes.ranking, config);
|
|
498
454
|
this.count = count;
|
|
499
455
|
this.operator = operator;
|
|
500
456
|
this.measure = measure;
|
|
@@ -530,8 +486,8 @@ exports.RankingFilter = RankingFilter;
|
|
|
530
486
|
* @internal
|
|
531
487
|
*/
|
|
532
488
|
class NumericFilter extends DoubleOperatorFilter {
|
|
533
|
-
constructor(att, operatorA, valueA, operatorB, valueB,
|
|
534
|
-
super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB,
|
|
489
|
+
constructor(att, operatorA, valueA, operatorB, valueB, config) {
|
|
490
|
+
super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config);
|
|
535
491
|
}
|
|
536
492
|
}
|
|
537
493
|
exports.NumericFilter = NumericFilter;
|
|
@@ -539,8 +495,8 @@ exports.NumericFilter = NumericFilter;
|
|
|
539
495
|
* @internal
|
|
540
496
|
*/
|
|
541
497
|
class TextFilter extends DoubleOperatorFilter {
|
|
542
|
-
constructor(att, operator, value,
|
|
543
|
-
super(att, exports.FilterTypes.text, operator, value, undefined, undefined,
|
|
498
|
+
constructor(att, operator, value, config) {
|
|
499
|
+
super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config);
|
|
544
500
|
}
|
|
545
501
|
}
|
|
546
502
|
exports.TextFilter = TextFilter;
|
|
@@ -548,8 +504,8 @@ exports.TextFilter = TextFilter;
|
|
|
548
504
|
* @internal
|
|
549
505
|
*/
|
|
550
506
|
class DateRangeFilter extends DoubleOperatorFilter {
|
|
551
|
-
constructor(l, valueFrom, valueTo,
|
|
552
|
-
super(l, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo,
|
|
507
|
+
constructor(l, valueFrom, valueTo, config) {
|
|
508
|
+
super(l, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, config);
|
|
553
509
|
if (typeof valueFrom === 'object') {
|
|
554
510
|
this.valueA = valueFrom.toISOString();
|
|
555
511
|
}
|
|
@@ -578,8 +534,8 @@ exports.DateRangeFilter = DateRangeFilter;
|
|
|
578
534
|
* @internal
|
|
579
535
|
*/
|
|
580
536
|
class RelativeDateFilter extends AbstractFilter {
|
|
581
|
-
constructor(l, offset, count, operator, anchor,
|
|
582
|
-
super(l, exports.FilterTypes.relativeDate,
|
|
537
|
+
constructor(l, offset, count, operator, anchor, config) {
|
|
538
|
+
super(l, exports.FilterTypes.relativeDate, config);
|
|
583
539
|
if (!operator) {
|
|
584
540
|
operator = exports.DateOperators.Next;
|
|
585
541
|
}
|
|
@@ -645,8 +601,8 @@ exports.RelativeDateFilter = RelativeDateFilter;
|
|
|
645
601
|
* @internal
|
|
646
602
|
*/
|
|
647
603
|
class CustomFilter extends AbstractFilter {
|
|
648
|
-
constructor(att, jaql,
|
|
649
|
-
super(att, exports.FilterTypes.advanced,
|
|
604
|
+
constructor(att, jaql, config) {
|
|
605
|
+
super(att, exports.FilterTypes.advanced, config);
|
|
650
606
|
// remove filterType from jaql as it is not needed
|
|
651
607
|
delete jaql.filterType;
|
|
652
608
|
this.jaqlExpression = jaql;
|
|
@@ -655,7 +611,7 @@ class CustomFilter extends AbstractFilter {
|
|
|
655
611
|
* gets the element's ID
|
|
656
612
|
*/
|
|
657
613
|
get id() {
|
|
658
|
-
return `custom_${this.attribute.id}_${this.guid}`;
|
|
614
|
+
return `custom_${this.attribute.id}_${this.config.guid}`;
|
|
659
615
|
}
|
|
660
616
|
/**
|
|
661
617
|
* 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;
|