@sisense/sdk-data 1.34.0 → 2.0.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/analytics/factory.d.ts +10 -10
- package/dist/cjs/dimensional-model/analytics/factory.js +15 -16
- package/dist/cjs/dimensional-model/attributes.d.ts +4 -4
- package/dist/cjs/dimensional-model/attributes.js +21 -7
- package/dist/cjs/dimensional-model/base.d.ts +3 -3
- package/dist/cjs/dimensional-model/base.js +7 -4
- package/dist/cjs/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/cjs/dimensional-model/compose-code-utils.js +127 -0
- package/dist/cjs/dimensional-model/consts.d.ts +1 -0
- package/dist/cjs/dimensional-model/consts.js +4 -0
- package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +5 -5
- package/dist/cjs/dimensional-model/dimensions/dimensions.js +25 -16
- package/dist/cjs/dimensional-model/filters/factory.d.ts +41 -41
- package/dist/cjs/dimensional-model/filters/factory.js +53 -168
- package/dist/cjs/dimensional-model/filters/filter-relations.js +2 -5
- package/dist/cjs/dimensional-model/filters/filters.d.ts +39 -23
- package/dist/cjs/dimensional-model/filters/filters.js +102 -52
- package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +28 -26
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
- package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/cjs/dimensional-model/interfaces.d.ts +9 -7
- package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/cjs/dimensional-model/jaql-element.js +53 -1
- package/dist/cjs/dimensional-model/measures/factory.d.ts +45 -52
- package/dist/cjs/dimensional-model/measures/factory.js +55 -184
- package/dist/cjs/dimensional-model/measures/measures.d.ts +9 -9
- package/dist/cjs/dimensional-model/measures/measures.js +31 -29
- package/dist/cjs/dimensional-model/types.d.ts +25 -2
- package/dist/cjs/utils.d.ts +26 -19
- package/dist/cjs/utils.js +82 -41
- package/dist/dimensional-model/analytics/factory.d.ts +10 -10
- package/dist/dimensional-model/analytics/factory.js +15 -14
- package/dist/dimensional-model/attributes.d.ts +4 -4
- package/dist/dimensional-model/attributes.js +21 -7
- package/dist/dimensional-model/base.d.ts +3 -3
- package/dist/dimensional-model/base.js +7 -4
- package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/dimensional-model/compose-code-utils.js +119 -0
- package/dist/dimensional-model/consts.d.ts +1 -0
- package/dist/dimensional-model/consts.js +1 -0
- package/dist/dimensional-model/dimensions/dimensions.d.ts +5 -5
- package/dist/dimensional-model/dimensions/dimensions.js +26 -17
- package/dist/dimensional-model/filters/factory.d.ts +41 -41
- package/dist/dimensional-model/filters/factory.js +51 -125
- package/dist/dimensional-model/filters/filter-relations.js +3 -6
- package/dist/dimensional-model/filters/filters.d.ts +39 -23
- package/dist/dimensional-model/filters/filters.js +102 -52
- package/dist/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +28 -26
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
- package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/dimensional-model/interfaces.d.ts +9 -7
- package/dist/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/dimensional-model/jaql-element.js +52 -1
- package/dist/dimensional-model/measures/factory.d.ts +45 -52
- package/dist/dimensional-model/measures/factory.js +54 -141
- package/dist/dimensional-model/measures/measures.d.ts +9 -9
- package/dist/dimensional-model/measures/measures.js +31 -29
- package/dist/dimensional-model/types.d.ts +25 -2
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +26 -19
- package/dist/utils.js +60 -44
- package/package.json +3 -3
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
- package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/dimensional-model/filters/utils/filter-code-util.js +0 -77
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DimensionalElement } from '../base.js';
|
|
2
2
|
import { Attribute, BaseFilterConfig, CompleteBaseFilterConfig, CompleteMembersFilterConfig, Filter, LevelAttribute, Measure, MembersFilterConfig } from '../interfaces.js';
|
|
3
|
-
import { AnyObject } from '../types.js';
|
|
3
|
+
import { AnyObject, JSONObject } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Different text operators that can be used with text filters
|
|
6
6
|
*
|
|
@@ -95,7 +95,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
95
95
|
* Filter configuration
|
|
96
96
|
*/
|
|
97
97
|
config: CompleteBaseFilterConfig;
|
|
98
|
-
constructor(att: Attribute, filterType: string, config?: BaseFilterConfig);
|
|
98
|
+
constructor(att: Attribute, filterType: string, config?: BaseFilterConfig, composeCode?: string);
|
|
99
99
|
get name(): string;
|
|
100
100
|
/**
|
|
101
101
|
* Gets JAQL representing this Filter instance
|
|
@@ -112,7 +112,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
112
112
|
/**
|
|
113
113
|
* Gets a serializable representation of the element
|
|
114
114
|
*/
|
|
115
|
-
|
|
115
|
+
serialize(): JSONObject;
|
|
116
116
|
/**
|
|
117
117
|
* Gets the JAQL representation of this instance
|
|
118
118
|
*
|
|
@@ -128,7 +128,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
128
128
|
export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
129
129
|
readonly filters: Filter[];
|
|
130
130
|
readonly operator: string;
|
|
131
|
-
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig);
|
|
131
|
+
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig, composeCode?: string);
|
|
132
132
|
/**
|
|
133
133
|
* gets the element's ID
|
|
134
134
|
*/
|
|
@@ -136,7 +136,7 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
136
136
|
/**
|
|
137
137
|
* Gets a serializable representation of the element
|
|
138
138
|
*/
|
|
139
|
-
|
|
139
|
+
serialize(): JSONObject;
|
|
140
140
|
/**
|
|
141
141
|
* Gets JAQL representing this Filter instance
|
|
142
142
|
*/
|
|
@@ -148,7 +148,7 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
148
148
|
export declare class MembersFilter extends AbstractFilter {
|
|
149
149
|
readonly members: string[];
|
|
150
150
|
config: CompleteMembersFilterConfig;
|
|
151
|
-
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig);
|
|
151
|
+
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig, composeCode?: string);
|
|
152
152
|
/**
|
|
153
153
|
* gets the element's ID
|
|
154
154
|
*/
|
|
@@ -157,7 +157,7 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
157
157
|
/**
|
|
158
158
|
* Gets a serializable representation of the element
|
|
159
159
|
*/
|
|
160
|
-
|
|
160
|
+
serialize(): JSONObject;
|
|
161
161
|
/**
|
|
162
162
|
* Gets JAQL representing this Filter instance
|
|
163
163
|
*/
|
|
@@ -168,7 +168,7 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
168
168
|
*/
|
|
169
169
|
export declare class CascadingFilter extends AbstractFilter {
|
|
170
170
|
readonly _filters: Filter[];
|
|
171
|
-
constructor(filters: Filter[], config?: BaseFilterConfig);
|
|
171
|
+
constructor(filters: Filter[], config?: BaseFilterConfig, composeCode?: string);
|
|
172
172
|
/**
|
|
173
173
|
* Returns the level filters with the root config applied.
|
|
174
174
|
*/
|
|
@@ -180,7 +180,7 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
180
180
|
/**
|
|
181
181
|
* Gets a serializable representation of the element
|
|
182
182
|
*/
|
|
183
|
-
|
|
183
|
+
serialize(): JSONObject;
|
|
184
184
|
/**
|
|
185
185
|
* Gets JAQL representing this Filter instance
|
|
186
186
|
*/
|
|
@@ -193,7 +193,7 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
193
193
|
export declare class ExcludeFilter extends AbstractFilter {
|
|
194
194
|
readonly filter: Filter;
|
|
195
195
|
readonly input?: Filter;
|
|
196
|
-
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig);
|
|
196
|
+
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig, composeCode?: string);
|
|
197
197
|
/**
|
|
198
198
|
* gets the element's ID
|
|
199
199
|
*/
|
|
@@ -201,7 +201,7 @@ export declare class ExcludeFilter extends AbstractFilter {
|
|
|
201
201
|
/**
|
|
202
202
|
* Gets a serializable representation of the element
|
|
203
203
|
*/
|
|
204
|
-
|
|
204
|
+
serialize(): JSONObject;
|
|
205
205
|
/**
|
|
206
206
|
* Gets JAQL representing this Filter instance
|
|
207
207
|
*/
|
|
@@ -215,7 +215,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
215
215
|
operatorB?: string;
|
|
216
216
|
valueA?: Type;
|
|
217
217
|
valueB?: Type;
|
|
218
|
-
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, config?: BaseFilterConfig);
|
|
218
|
+
constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, config?: BaseFilterConfig, composeCode?: string);
|
|
219
219
|
/**
|
|
220
220
|
* gets the element's ID
|
|
221
221
|
*/
|
|
@@ -223,7 +223,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
223
223
|
/**
|
|
224
224
|
* Gets a serializable representation of the element
|
|
225
225
|
*/
|
|
226
|
-
|
|
226
|
+
serialize(): JSONObject;
|
|
227
227
|
/**
|
|
228
228
|
* Gets JAQL representing this Filter instance
|
|
229
229
|
*/
|
|
@@ -234,7 +234,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
234
234
|
*/
|
|
235
235
|
export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
236
236
|
measure: Measure;
|
|
237
|
-
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
237
|
+
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
238
238
|
/**
|
|
239
239
|
* gets the element's ID
|
|
240
240
|
*/
|
|
@@ -242,7 +242,7 @@ export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
|
242
242
|
/**
|
|
243
243
|
* Gets a serializable representation of the element
|
|
244
244
|
*/
|
|
245
|
-
|
|
245
|
+
serialize(): JSONObject;
|
|
246
246
|
jaql(nested?: boolean | undefined): any;
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
@@ -252,7 +252,7 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
252
252
|
count: number;
|
|
253
253
|
operator: string;
|
|
254
254
|
measure: Measure;
|
|
255
|
-
constructor(att: Attribute, measure: Measure, operator: string, count: number, config?: BaseFilterConfig);
|
|
255
|
+
constructor(att: Attribute, measure: Measure, operator: string, count: number, config?: BaseFilterConfig, composeCode?: string);
|
|
256
256
|
/**
|
|
257
257
|
* gets the element's ID
|
|
258
258
|
*/
|
|
@@ -260,7 +260,7 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
260
260
|
/**
|
|
261
261
|
* Gets a serializable representation of the element
|
|
262
262
|
*/
|
|
263
|
-
|
|
263
|
+
serialize(): JSONObject;
|
|
264
264
|
/**
|
|
265
265
|
* Gets JAQL representing this Filter instance
|
|
266
266
|
*/
|
|
@@ -270,19 +270,27 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
270
270
|
* @internal
|
|
271
271
|
*/
|
|
272
272
|
export declare class NumericFilter extends DoubleOperatorFilter<number> {
|
|
273
|
-
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig);
|
|
273
|
+
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
274
|
+
/**
|
|
275
|
+
* Gets a serializable representation of the element
|
|
276
|
+
*/
|
|
277
|
+
serialize(): JSONObject;
|
|
274
278
|
}
|
|
275
279
|
/**
|
|
276
280
|
* @internal
|
|
277
281
|
*/
|
|
278
282
|
export declare class TextFilter extends DoubleOperatorFilter<string> {
|
|
279
|
-
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig);
|
|
283
|
+
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig, composeCode?: string);
|
|
284
|
+
/**
|
|
285
|
+
* Gets a serializable representation of the element
|
|
286
|
+
*/
|
|
287
|
+
serialize(): JSONObject;
|
|
280
288
|
}
|
|
281
289
|
/**
|
|
282
290
|
* @internal
|
|
283
291
|
*/
|
|
284
292
|
export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
|
|
285
|
-
constructor(
|
|
293
|
+
constructor(levelAttribute: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig, composeCode?: string);
|
|
286
294
|
get level(): LevelAttribute;
|
|
287
295
|
get from(): string;
|
|
288
296
|
get to(): string;
|
|
@@ -290,6 +298,10 @@ export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string>
|
|
|
290
298
|
* Gets JAQL representing this Filter instance
|
|
291
299
|
*/
|
|
292
300
|
filterJaql(): any;
|
|
301
|
+
/**
|
|
302
|
+
* Gets a serializable representation of the element
|
|
303
|
+
*/
|
|
304
|
+
serialize(): JSONObject;
|
|
293
305
|
}
|
|
294
306
|
/**
|
|
295
307
|
* @internal
|
|
@@ -299,7 +311,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
299
311
|
readonly count: number;
|
|
300
312
|
readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
|
|
301
313
|
readonly anchor?: Date | string;
|
|
302
|
-
constructor(
|
|
314
|
+
constructor(levelAttribute: LevelAttribute, offset: number, count: number, operator?: typeof DateOperators.Last | typeof DateOperators.Next, anchor?: Date | string, config?: BaseFilterConfig, composeCode?: string);
|
|
303
315
|
get level(): LevelAttribute;
|
|
304
316
|
/**
|
|
305
317
|
* gets the element's ID
|
|
@@ -308,7 +320,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
308
320
|
/**
|
|
309
321
|
* Gets a serializable representation of the element
|
|
310
322
|
*/
|
|
311
|
-
|
|
323
|
+
serialize(): JSONObject;
|
|
312
324
|
/**
|
|
313
325
|
* Gets JAQL representing this Filter instance
|
|
314
326
|
*
|
|
@@ -320,7 +332,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
320
332
|
*/
|
|
321
333
|
export declare class CustomFilter extends AbstractFilter {
|
|
322
334
|
readonly jaqlExpression: any;
|
|
323
|
-
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig);
|
|
335
|
+
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig, composeCode?: string);
|
|
324
336
|
/**
|
|
325
337
|
* gets the element's ID
|
|
326
338
|
*/
|
|
@@ -330,6 +342,10 @@ export declare class CustomFilter extends AbstractFilter {
|
|
|
330
342
|
*
|
|
331
343
|
*/
|
|
332
344
|
filterJaql(): any;
|
|
345
|
+
/**
|
|
346
|
+
* Gets a serializable representation of the element
|
|
347
|
+
*/
|
|
348
|
+
serialize(): JSONObject;
|
|
333
349
|
}
|
|
334
350
|
/**
|
|
335
351
|
* Checks if a filter is a CustomFilter.
|
|
@@ -90,8 +90,8 @@ export const FilterTypes = {
|
|
|
90
90
|
* @internal
|
|
91
91
|
*/
|
|
92
92
|
class AbstractFilter extends DimensionalElement {
|
|
93
|
-
constructor(att, filterType, config) {
|
|
94
|
-
super('filter', MetadataTypes.Filter);
|
|
93
|
+
constructor(att, filterType, config, composeCode) {
|
|
94
|
+
super('filter', MetadataTypes.Filter, undefined, undefined, composeCode);
|
|
95
95
|
this.filterType = filterType;
|
|
96
96
|
// need to set isScope
|
|
97
97
|
// to make filter complete for comparison
|
|
@@ -107,10 +107,15 @@ class AbstractFilter extends DimensionalElement {
|
|
|
107
107
|
/**
|
|
108
108
|
* Gets a serializable representation of the element
|
|
109
109
|
*/
|
|
110
|
-
|
|
111
|
-
const result = super.
|
|
110
|
+
serialize() {
|
|
111
|
+
const result = super.serialize();
|
|
112
|
+
result.__serializable = 'AbstractFilter';
|
|
112
113
|
result.filterType = this.filterType;
|
|
113
|
-
result.attribute = this.attribute.
|
|
114
|
+
result.attribute = this.attribute.serialize();
|
|
115
|
+
if (this.config) {
|
|
116
|
+
result.config = this.config;
|
|
117
|
+
}
|
|
118
|
+
result.composeCode = this.composeCode;
|
|
114
119
|
return result;
|
|
115
120
|
}
|
|
116
121
|
/**
|
|
@@ -160,8 +165,8 @@ class AbstractFilter extends DimensionalElement {
|
|
|
160
165
|
* @internal
|
|
161
166
|
*/
|
|
162
167
|
export class LogicalAttributeFilter extends AbstractFilter {
|
|
163
|
-
constructor(filters, operator, config) {
|
|
164
|
-
super(filters[0].attribute, FilterTypes.logicalAttribute, config);
|
|
168
|
+
constructor(filters, operator, config, composeCode) {
|
|
169
|
+
super(filters[0].attribute, FilterTypes.logicalAttribute, config, composeCode);
|
|
165
170
|
this.operator = operator;
|
|
166
171
|
this.filters = filters;
|
|
167
172
|
}
|
|
@@ -174,10 +179,11 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
174
179
|
/**
|
|
175
180
|
* Gets a serializable representation of the element
|
|
176
181
|
*/
|
|
177
|
-
|
|
178
|
-
const result = super.
|
|
182
|
+
serialize() {
|
|
183
|
+
const result = super.serialize();
|
|
184
|
+
result.__serializable = 'LogicalAttributeFilter';
|
|
179
185
|
result.operator = this.operator;
|
|
180
|
-
result.filters = this.filters.map((f) => f.
|
|
186
|
+
result.filters = this.filters.map((f) => f.serialize());
|
|
181
187
|
return result;
|
|
182
188
|
}
|
|
183
189
|
/**
|
|
@@ -193,8 +199,8 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
193
199
|
* @internal
|
|
194
200
|
*/
|
|
195
201
|
export class MembersFilter extends AbstractFilter {
|
|
196
|
-
constructor(attribute, members, config) {
|
|
197
|
-
super(attribute, FilterTypes.members);
|
|
202
|
+
constructor(attribute, members, config, composeCode) {
|
|
203
|
+
super(attribute, FilterTypes.members, undefined, composeCode);
|
|
198
204
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
199
205
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
200
206
|
throw new TranslatableError('errors.filter.membersFilterNullMember', {
|
|
@@ -218,8 +224,13 @@ export class MembersFilter extends AbstractFilter {
|
|
|
218
224
|
/**
|
|
219
225
|
* Gets a serializable representation of the element
|
|
220
226
|
*/
|
|
221
|
-
|
|
222
|
-
const result = super.
|
|
227
|
+
serialize() {
|
|
228
|
+
const result = super.serialize();
|
|
229
|
+
result.__serializable = 'MembersFilter';
|
|
230
|
+
if (this.config) {
|
|
231
|
+
result.config = (this.config.backgroundFilter
|
|
232
|
+
? Object.assign(Object.assign({}, this.config), { backgroundFilter: this.config.backgroundFilter.serialize() }) : this.config);
|
|
233
|
+
}
|
|
223
234
|
result.members = this.members;
|
|
224
235
|
return result;
|
|
225
236
|
}
|
|
@@ -245,8 +256,8 @@ export class MembersFilter extends AbstractFilter {
|
|
|
245
256
|
* @internal
|
|
246
257
|
*/
|
|
247
258
|
export class CascadingFilter extends AbstractFilter {
|
|
248
|
-
constructor(filters, config) {
|
|
249
|
-
super(filters[0].attribute, FilterTypes.cascading, config);
|
|
259
|
+
constructor(filters, config, composeCode) {
|
|
260
|
+
super(filters[0].attribute, FilterTypes.cascading, config, composeCode);
|
|
250
261
|
this._filters = filters;
|
|
251
262
|
}
|
|
252
263
|
/**
|
|
@@ -268,9 +279,10 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
268
279
|
/**
|
|
269
280
|
* Gets a serializable representation of the element
|
|
270
281
|
*/
|
|
271
|
-
|
|
272
|
-
const result = super.
|
|
273
|
-
result.
|
|
282
|
+
serialize() {
|
|
283
|
+
const result = super.serialize();
|
|
284
|
+
result.__serializable = 'CascadingFilter';
|
|
285
|
+
result._filters = this.filters.map((f) => f.serialize());
|
|
274
286
|
return result;
|
|
275
287
|
}
|
|
276
288
|
/**
|
|
@@ -295,8 +307,8 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
295
307
|
* @internal
|
|
296
308
|
*/
|
|
297
309
|
export class ExcludeFilter extends AbstractFilter {
|
|
298
|
-
constructor(filter, input, config) {
|
|
299
|
-
super(filter.attribute, FilterTypes.exclude, config);
|
|
310
|
+
constructor(filter, input, config, composeCode) {
|
|
311
|
+
super(filter.attribute, FilterTypes.exclude, config, composeCode);
|
|
300
312
|
this.input = input;
|
|
301
313
|
this.filter = filter;
|
|
302
314
|
}
|
|
@@ -313,11 +325,12 @@ export class ExcludeFilter extends AbstractFilter {
|
|
|
313
325
|
/**
|
|
314
326
|
* Gets a serializable representation of the element
|
|
315
327
|
*/
|
|
316
|
-
|
|
317
|
-
const result = super.
|
|
318
|
-
result.
|
|
328
|
+
serialize() {
|
|
329
|
+
const result = super.serialize();
|
|
330
|
+
result.__serializable = 'ExcludeFilter';
|
|
331
|
+
result.filter = this.filter.serialize();
|
|
319
332
|
if (this.input) {
|
|
320
|
-
result.input = this.input.
|
|
333
|
+
result.input = this.input.serialize();
|
|
321
334
|
}
|
|
322
335
|
return result;
|
|
323
336
|
}
|
|
@@ -341,8 +354,8 @@ export class ExcludeFilter extends AbstractFilter {
|
|
|
341
354
|
* @internal
|
|
342
355
|
*/
|
|
343
356
|
export class DoubleOperatorFilter extends AbstractFilter {
|
|
344
|
-
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config) {
|
|
345
|
-
super(att, filterType, config);
|
|
357
|
+
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
358
|
+
super(att, filterType, config, composeCode);
|
|
346
359
|
if (operatorA && valueA !== undefined) {
|
|
347
360
|
this.valueA = valueA;
|
|
348
361
|
this.operatorA = operatorA;
|
|
@@ -368,8 +381,9 @@ export class DoubleOperatorFilter extends AbstractFilter {
|
|
|
368
381
|
/**
|
|
369
382
|
* Gets a serializable representation of the element
|
|
370
383
|
*/
|
|
371
|
-
|
|
372
|
-
const result = super.
|
|
384
|
+
serialize() {
|
|
385
|
+
const result = super.serialize();
|
|
386
|
+
result.__serializable = 'DoubleOperatorFilter';
|
|
373
387
|
if (this.operatorA) {
|
|
374
388
|
result.operatorA = this.operatorA;
|
|
375
389
|
}
|
|
@@ -402,8 +416,8 @@ export class DoubleOperatorFilter extends AbstractFilter {
|
|
|
402
416
|
* @internal
|
|
403
417
|
*/
|
|
404
418
|
export class MeasureFilter extends DoubleOperatorFilter {
|
|
405
|
-
constructor(att, measure, operatorA, valueA, operatorB, valueB, config) {
|
|
406
|
-
super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB, config);
|
|
419
|
+
constructor(att, measure, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
420
|
+
super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
407
421
|
this.measure = measure;
|
|
408
422
|
}
|
|
409
423
|
/**
|
|
@@ -422,9 +436,10 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
422
436
|
/**
|
|
423
437
|
* Gets a serializable representation of the element
|
|
424
438
|
*/
|
|
425
|
-
|
|
426
|
-
const result = super.
|
|
427
|
-
result.
|
|
439
|
+
serialize() {
|
|
440
|
+
const result = super.serialize();
|
|
441
|
+
result.__serializable = 'MeasureFilter';
|
|
442
|
+
result.measure = this.measure.serialize();
|
|
428
443
|
return result;
|
|
429
444
|
}
|
|
430
445
|
jaql(nested) {
|
|
@@ -444,8 +459,8 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
444
459
|
* @internal
|
|
445
460
|
*/
|
|
446
461
|
export class RankingFilter extends AbstractFilter {
|
|
447
|
-
constructor(att, measure, operator, count, config) {
|
|
448
|
-
super(att, FilterTypes.ranking, config);
|
|
462
|
+
constructor(att, measure, operator, count, config, composeCode) {
|
|
463
|
+
super(att, FilterTypes.ranking, config, composeCode);
|
|
449
464
|
this.count = count;
|
|
450
465
|
this.operator = operator;
|
|
451
466
|
this.measure = measure;
|
|
@@ -459,11 +474,12 @@ export class RankingFilter extends AbstractFilter {
|
|
|
459
474
|
/**
|
|
460
475
|
* Gets a serializable representation of the element
|
|
461
476
|
*/
|
|
462
|
-
|
|
463
|
-
const result = super.
|
|
477
|
+
serialize() {
|
|
478
|
+
const result = super.serialize();
|
|
479
|
+
result.__serializable = 'RankingFilter';
|
|
464
480
|
result.count = this.count;
|
|
465
481
|
result.operator = this.operator;
|
|
466
|
-
result.measure = this.measure.
|
|
482
|
+
result.measure = this.measure.serialize();
|
|
467
483
|
return result;
|
|
468
484
|
}
|
|
469
485
|
/**
|
|
@@ -480,24 +496,40 @@ export class RankingFilter extends AbstractFilter {
|
|
|
480
496
|
* @internal
|
|
481
497
|
*/
|
|
482
498
|
export class NumericFilter extends DoubleOperatorFilter {
|
|
483
|
-
constructor(att, operatorA, valueA, operatorB, valueB, config) {
|
|
484
|
-
super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config);
|
|
499
|
+
constructor(att, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
500
|
+
super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Gets a serializable representation of the element
|
|
504
|
+
*/
|
|
505
|
+
serialize() {
|
|
506
|
+
const result = super.serialize();
|
|
507
|
+
result.__serializable = 'NumericFilter';
|
|
508
|
+
return result;
|
|
485
509
|
}
|
|
486
510
|
}
|
|
487
511
|
/**
|
|
488
512
|
* @internal
|
|
489
513
|
*/
|
|
490
514
|
export class TextFilter extends DoubleOperatorFilter {
|
|
491
|
-
constructor(att, operator, value, config) {
|
|
492
|
-
super(att, FilterTypes.text, operator, value, undefined, undefined, config);
|
|
515
|
+
constructor(att, operator, value, config, composeCode) {
|
|
516
|
+
super(att, FilterTypes.text, operator, value, undefined, undefined, config, composeCode);
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Gets a serializable representation of the element
|
|
520
|
+
*/
|
|
521
|
+
serialize() {
|
|
522
|
+
const result = super.serialize();
|
|
523
|
+
result.__serializable = 'TextFilter';
|
|
524
|
+
return result;
|
|
493
525
|
}
|
|
494
526
|
}
|
|
495
527
|
/**
|
|
496
528
|
* @internal
|
|
497
529
|
*/
|
|
498
530
|
export class DateRangeFilter extends DoubleOperatorFilter {
|
|
499
|
-
constructor(
|
|
500
|
-
super(
|
|
531
|
+
constructor(levelAttribute, valueFrom, valueTo, config, composeCode) {
|
|
532
|
+
super(levelAttribute, FilterTypes.dateRange, DateOperators.From, valueFrom, DateOperators.To, valueTo, config, composeCode);
|
|
501
533
|
if (typeof valueFrom === 'object') {
|
|
502
534
|
this.valueA = valueFrom.toISOString();
|
|
503
535
|
}
|
|
@@ -520,13 +552,21 @@ export class DateRangeFilter extends DoubleOperatorFilter {
|
|
|
520
552
|
filterJaql() {
|
|
521
553
|
return super.filterJaql();
|
|
522
554
|
}
|
|
555
|
+
/**
|
|
556
|
+
* Gets a serializable representation of the element
|
|
557
|
+
*/
|
|
558
|
+
serialize() {
|
|
559
|
+
const result = super.serialize();
|
|
560
|
+
result.__serializable = 'DateRangeFilter';
|
|
561
|
+
return result;
|
|
562
|
+
}
|
|
523
563
|
}
|
|
524
564
|
/**
|
|
525
565
|
* @internal
|
|
526
566
|
*/
|
|
527
567
|
export class RelativeDateFilter extends AbstractFilter {
|
|
528
|
-
constructor(
|
|
529
|
-
super(
|
|
568
|
+
constructor(levelAttribute, offset, count, operator, anchor, config, composeCode) {
|
|
569
|
+
super(levelAttribute, FilterTypes.relativeDate, config, composeCode);
|
|
530
570
|
if (!operator) {
|
|
531
571
|
operator = DateOperators.Next;
|
|
532
572
|
}
|
|
@@ -556,13 +596,14 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
556
596
|
/**
|
|
557
597
|
* Gets a serializable representation of the element
|
|
558
598
|
*/
|
|
559
|
-
|
|
560
|
-
const result = super.
|
|
599
|
+
serialize() {
|
|
600
|
+
const result = super.serialize();
|
|
601
|
+
result.__serializable = 'RelativeDateFilter';
|
|
561
602
|
result.offset = this.offset;
|
|
562
603
|
result.count = this.count;
|
|
563
604
|
result.operator = this.operator;
|
|
564
605
|
if (this.anchor) {
|
|
565
|
-
result.anchor = this.anchor;
|
|
606
|
+
result.anchor = typeof this.anchor === 'string' ? this.anchor : this.anchor.toISOString();
|
|
566
607
|
}
|
|
567
608
|
return result;
|
|
568
609
|
}
|
|
@@ -591,8 +632,8 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
591
632
|
* @internal
|
|
592
633
|
*/
|
|
593
634
|
export class CustomFilter extends AbstractFilter {
|
|
594
|
-
constructor(att, jaql, config) {
|
|
595
|
-
super(att, FilterTypes.advanced, config);
|
|
635
|
+
constructor(att, jaql, config, composeCode) {
|
|
636
|
+
super(att, FilterTypes.advanced, config, composeCode);
|
|
596
637
|
// remove filterType from jaql as it is not needed
|
|
597
638
|
delete jaql.filterType;
|
|
598
639
|
this.jaqlExpression = jaql;
|
|
@@ -610,6 +651,15 @@ export class CustomFilter extends AbstractFilter {
|
|
|
610
651
|
filterJaql() {
|
|
611
652
|
return this.jaqlExpression;
|
|
612
653
|
}
|
|
654
|
+
/**
|
|
655
|
+
* Gets a serializable representation of the element
|
|
656
|
+
*/
|
|
657
|
+
serialize() {
|
|
658
|
+
const result = super.serialize();
|
|
659
|
+
result.__serializable = 'CustomFilter';
|
|
660
|
+
result.jaqlExpression = this.jaqlExpression;
|
|
661
|
+
return result;
|
|
662
|
+
}
|
|
613
663
|
}
|
|
614
664
|
/**
|
|
615
665
|
* Checks if a filter is a CustomFilter.
|
|
@@ -6,15 +6,11 @@ import { createAttributeHelper, createCalculatedMeasureHelper, createMeasureHelp
|
|
|
6
6
|
* @returns attribute or level attribute
|
|
7
7
|
*/
|
|
8
8
|
export const createAttributeFromFilterJaql = (jaql) => {
|
|
9
|
-
const { dim,
|
|
9
|
+
const { dim, datatype, title, datasource: dataSource } = jaql;
|
|
10
10
|
return createAttributeHelper({
|
|
11
|
-
dim,
|
|
12
|
-
table,
|
|
13
|
-
column,
|
|
11
|
+
expression: dim,
|
|
14
12
|
dataType: datatype,
|
|
15
13
|
granularity: getGranularityFromJaql(jaql),
|
|
16
|
-
format: undefined,
|
|
17
|
-
sort: undefined,
|
|
18
14
|
title,
|
|
19
15
|
dataSource,
|
|
20
16
|
});
|
|
@@ -26,13 +22,11 @@ export const createAttributeFromFilterJaql = (jaql) => {
|
|
|
26
22
|
* @returns Measure
|
|
27
23
|
*/
|
|
28
24
|
export const createMeasureFromFilterJaql = (jaql) => {
|
|
29
|
-
const { dim,
|
|
25
|
+
const { dim, title, datatype: dataType, agg, datasource: dataSource } = jaql;
|
|
30
26
|
if (!agg)
|
|
31
27
|
return undefined;
|
|
32
28
|
return createMeasureHelper({
|
|
33
|
-
dim,
|
|
34
|
-
table,
|
|
35
|
-
column,
|
|
29
|
+
expression: dim,
|
|
36
30
|
dataType,
|
|
37
31
|
agg,
|
|
38
32
|
granularity: getGranularityFromJaql(jaql),
|
|
@@ -51,11 +45,9 @@ export const createMeasureFromFilterJaql = (jaql) => {
|
|
|
51
45
|
export const createMeasureFromRankingFilterJaql = (jaql, rankingMessage) => {
|
|
52
46
|
if ('formula' in jaql)
|
|
53
47
|
return createCalculatedMeasureHelper(jaql);
|
|
54
|
-
const { dim,
|
|
48
|
+
const { dim, datatype: dataType, agg } = jaql;
|
|
55
49
|
return createMeasureHelper({
|
|
56
|
-
dim,
|
|
57
|
-
table,
|
|
58
|
-
column,
|
|
50
|
+
expression: dim,
|
|
59
51
|
granularity: getGranularityFromJaql(jaql),
|
|
60
52
|
dataType,
|
|
61
53
|
agg,
|