@sisense/sdk-data 1.34.0 → 2.1.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.
Files changed (68) hide show
  1. package/dist/cjs/dimensional-model/analytics/factory.d.ts +10 -10
  2. package/dist/cjs/dimensional-model/analytics/factory.js +15 -16
  3. package/dist/cjs/dimensional-model/attributes.d.ts +4 -4
  4. package/dist/cjs/dimensional-model/attributes.js +21 -7
  5. package/dist/cjs/dimensional-model/base.d.ts +3 -3
  6. package/dist/cjs/dimensional-model/base.js +7 -4
  7. package/dist/cjs/dimensional-model/compose-code-utils.d.ts +41 -0
  8. package/dist/cjs/dimensional-model/compose-code-utils.js +127 -0
  9. package/dist/cjs/dimensional-model/consts.d.ts +1 -0
  10. package/dist/cjs/dimensional-model/consts.js +4 -0
  11. package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +5 -5
  12. package/dist/cjs/dimensional-model/dimensions/dimensions.js +25 -16
  13. package/dist/cjs/dimensional-model/filters/factory.d.ts +41 -41
  14. package/dist/cjs/dimensional-model/filters/factory.js +53 -168
  15. package/dist/cjs/dimensional-model/filters/filter-relations.js +2 -5
  16. package/dist/cjs/dimensional-model/filters/filters.d.ts +39 -23
  17. package/dist/cjs/dimensional-model/filters/filters.js +102 -52
  18. package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
  19. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +28 -26
  20. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
  21. package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
  22. package/dist/cjs/dimensional-model/interfaces.d.ts +9 -7
  23. package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
  24. package/dist/cjs/dimensional-model/jaql-element.js +53 -1
  25. package/dist/cjs/dimensional-model/measures/factory.d.ts +45 -52
  26. package/dist/cjs/dimensional-model/measures/factory.js +55 -184
  27. package/dist/cjs/dimensional-model/measures/measures.d.ts +9 -9
  28. package/dist/cjs/dimensional-model/measures/measures.js +31 -29
  29. package/dist/cjs/dimensional-model/types.d.ts +25 -2
  30. package/dist/cjs/utils.d.ts +26 -19
  31. package/dist/cjs/utils.js +85 -41
  32. package/dist/dimensional-model/analytics/factory.d.ts +10 -10
  33. package/dist/dimensional-model/analytics/factory.js +15 -14
  34. package/dist/dimensional-model/attributes.d.ts +4 -4
  35. package/dist/dimensional-model/attributes.js +21 -7
  36. package/dist/dimensional-model/base.d.ts +3 -3
  37. package/dist/dimensional-model/base.js +7 -4
  38. package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
  39. package/dist/dimensional-model/compose-code-utils.js +119 -0
  40. package/dist/dimensional-model/consts.d.ts +1 -0
  41. package/dist/dimensional-model/consts.js +1 -0
  42. package/dist/dimensional-model/dimensions/dimensions.d.ts +5 -5
  43. package/dist/dimensional-model/dimensions/dimensions.js +26 -17
  44. package/dist/dimensional-model/filters/factory.d.ts +41 -41
  45. package/dist/dimensional-model/filters/factory.js +51 -125
  46. package/dist/dimensional-model/filters/filter-relations.js +3 -6
  47. package/dist/dimensional-model/filters/filters.d.ts +39 -23
  48. package/dist/dimensional-model/filters/filters.js +102 -52
  49. package/dist/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
  50. package/dist/dimensional-model/filters/utils/condition-filter-util.js +28 -26
  51. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
  52. package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
  53. package/dist/dimensional-model/interfaces.d.ts +9 -7
  54. package/dist/dimensional-model/jaql-element.d.ts +13 -1
  55. package/dist/dimensional-model/jaql-element.js +52 -1
  56. package/dist/dimensional-model/measures/factory.d.ts +45 -52
  57. package/dist/dimensional-model/measures/factory.js +54 -141
  58. package/dist/dimensional-model/measures/measures.d.ts +9 -9
  59. package/dist/dimensional-model/measures/measures.js +31 -29
  60. package/dist/dimensional-model/types.d.ts +25 -2
  61. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  62. package/dist/utils.d.ts +26 -19
  63. package/dist/utils.js +63 -44
  64. package/package.json +3 -3
  65. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  66. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
  67. package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  68. 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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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
- serializable(): any;
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(l: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig);
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(l: LevelAttribute, offset: number, count: number, operator?: typeof DateOperators.Last | typeof DateOperators.Next, anchor?: Date | string, config?: BaseFilterConfig);
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
- serializable(): any;
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
- serializable() {
111
- const result = super.serializable();
110
+ serialize() {
111
+ const result = super.serialize();
112
+ result.__serializable = 'AbstractFilter';
112
113
  result.filterType = this.filterType;
113
- result.attribute = this.attribute.serializable();
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
- serializable() {
178
- const result = super.serializable();
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.serializable());
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
- serializable() {
222
- const result = super.serializable();
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
- serializable() {
272
- const result = super.serializable();
273
- result.filters = this.filters.map((f) => f.serializable());
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
- serializable() {
317
- const result = super.serializable();
318
- result.filter = this.filter.serializable();
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.serializable();
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
- serializable() {
372
- const result = super.serializable();
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
- serializable() {
426
- const result = super.serializable();
427
- result.measure = this.measure.serializable();
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
- serializable() {
463
- const result = super.serializable();
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.serializable();
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(l, valueFrom, valueTo, config) {
500
- super(l, FilterTypes.dateRange, DateOperators.From, valueFrom, DateOperators.To, valueTo, config);
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(l, offset, count, operator, anchor, config) {
529
- super(l, FilterTypes.relativeDate, config);
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
- serializable() {
560
- const result = super.serializable();
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, table, column, datatype, title, datasource: dataSource } = jaql;
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, table, column, title, datatype: dataType, agg, datasource: dataSource } = jaql;
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, table, column, datatype: dataType, agg } = jaql;
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,