@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.
@@ -96,8 +96,8 @@ exports.FilterTypes = {
96
96
  * @internal
97
97
  */
98
98
  class AbstractFilter extends base_js_1.DimensionalElement {
99
- constructor(att, filterType, config) {
100
- super('filter', types_js_1.MetadataTypes.Filter);
99
+ constructor(att, filterType, config, composeCode) {
100
+ super('filter', types_js_1.MetadataTypes.Filter, undefined, undefined, composeCode);
101
101
  this.filterType = filterType;
102
102
  // need to set isScope
103
103
  // to make filter complete for comparison
@@ -113,10 +113,15 @@ class AbstractFilter extends base_js_1.DimensionalElement {
113
113
  /**
114
114
  * Gets a serializable representation of the element
115
115
  */
116
- serializable() {
117
- const result = super.serializable();
116
+ serialize() {
117
+ const result = super.serialize();
118
+ result.__serializable = 'AbstractFilter';
118
119
  result.filterType = this.filterType;
119
- result.attribute = this.attribute.serializable();
120
+ result.attribute = this.attribute.serialize();
121
+ if (this.config) {
122
+ result.config = this.config;
123
+ }
124
+ result.composeCode = this.composeCode;
120
125
  return result;
121
126
  }
122
127
  /**
@@ -166,8 +171,8 @@ class AbstractFilter extends base_js_1.DimensionalElement {
166
171
  * @internal
167
172
  */
168
173
  class LogicalAttributeFilter extends AbstractFilter {
169
- constructor(filters, operator, config) {
170
- super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config);
174
+ constructor(filters, operator, config, composeCode) {
175
+ super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config, composeCode);
171
176
  this.operator = operator;
172
177
  this.filters = filters;
173
178
  }
@@ -180,10 +185,11 @@ class LogicalAttributeFilter extends AbstractFilter {
180
185
  /**
181
186
  * Gets a serializable representation of the element
182
187
  */
183
- serializable() {
184
- const result = super.serializable();
188
+ serialize() {
189
+ const result = super.serialize();
190
+ result.__serializable = 'LogicalAttributeFilter';
185
191
  result.operator = this.operator;
186
- result.filters = this.filters.map((f) => f.serializable());
192
+ result.filters = this.filters.map((f) => f.serialize());
187
193
  return result;
188
194
  }
189
195
  /**
@@ -200,8 +206,8 @@ exports.LogicalAttributeFilter = LogicalAttributeFilter;
200
206
  * @internal
201
207
  */
202
208
  class MembersFilter extends AbstractFilter {
203
- constructor(attribute, members, config) {
204
- super(attribute, exports.FilterTypes.members);
209
+ constructor(attribute, members, config, composeCode) {
210
+ super(attribute, exports.FilterTypes.members, undefined, composeCode);
205
211
  this.members = members !== null && members !== void 0 ? members : [];
206
212
  if (this.members.filter((m) => m === null || m === undefined).length > 0) {
207
213
  throw new translatable_error_js_1.TranslatableError('errors.filter.membersFilterNullMember', {
@@ -225,8 +231,13 @@ class MembersFilter extends AbstractFilter {
225
231
  /**
226
232
  * Gets a serializable representation of the element
227
233
  */
228
- serializable() {
229
- const result = super.serializable();
234
+ serialize() {
235
+ const result = super.serialize();
236
+ result.__serializable = 'MembersFilter';
237
+ if (this.config) {
238
+ result.config = (this.config.backgroundFilter
239
+ ? Object.assign(Object.assign({}, this.config), { backgroundFilter: this.config.backgroundFilter.serialize() }) : this.config);
240
+ }
230
241
  result.members = this.members;
231
242
  return result;
232
243
  }
@@ -253,8 +264,8 @@ exports.MembersFilter = MembersFilter;
253
264
  * @internal
254
265
  */
255
266
  class CascadingFilter extends AbstractFilter {
256
- constructor(filters, config) {
257
- super(filters[0].attribute, exports.FilterTypes.cascading, config);
267
+ constructor(filters, config, composeCode) {
268
+ super(filters[0].attribute, exports.FilterTypes.cascading, config, composeCode);
258
269
  this._filters = filters;
259
270
  }
260
271
  /**
@@ -276,9 +287,10 @@ class CascadingFilter extends AbstractFilter {
276
287
  /**
277
288
  * Gets a serializable representation of the element
278
289
  */
279
- serializable() {
280
- const result = super.serializable();
281
- result.filters = this.filters.map((f) => f.serializable());
290
+ serialize() {
291
+ const result = super.serialize();
292
+ result.__serializable = 'CascadingFilter';
293
+ result._filters = this.filters.map((f) => f.serialize());
282
294
  return result;
283
295
  }
284
296
  /**
@@ -304,8 +316,8 @@ exports.CascadingFilter = CascadingFilter;
304
316
  * @internal
305
317
  */
306
318
  class ExcludeFilter extends AbstractFilter {
307
- constructor(filter, input, config) {
308
- super(filter.attribute, exports.FilterTypes.exclude, config);
319
+ constructor(filter, input, config, composeCode) {
320
+ super(filter.attribute, exports.FilterTypes.exclude, config, composeCode);
309
321
  this.input = input;
310
322
  this.filter = filter;
311
323
  }
@@ -322,11 +334,12 @@ class ExcludeFilter extends AbstractFilter {
322
334
  /**
323
335
  * Gets a serializable representation of the element
324
336
  */
325
- serializable() {
326
- const result = super.serializable();
327
- result.filter = this.filter.serializable();
337
+ serialize() {
338
+ const result = super.serialize();
339
+ result.__serializable = 'ExcludeFilter';
340
+ result.filter = this.filter.serialize();
328
341
  if (this.input) {
329
- result.input = this.input.serializable();
342
+ result.input = this.input.serialize();
330
343
  }
331
344
  return result;
332
345
  }
@@ -351,8 +364,8 @@ exports.ExcludeFilter = ExcludeFilter;
351
364
  * @internal
352
365
  */
353
366
  class DoubleOperatorFilter extends AbstractFilter {
354
- constructor(att, filterType, operatorA, valueA, operatorB, valueB, config) {
355
- super(att, filterType, config);
367
+ constructor(att, filterType, operatorA, valueA, operatorB, valueB, config, composeCode) {
368
+ super(att, filterType, config, composeCode);
356
369
  if (operatorA && valueA !== undefined) {
357
370
  this.valueA = valueA;
358
371
  this.operatorA = operatorA;
@@ -378,8 +391,9 @@ class DoubleOperatorFilter extends AbstractFilter {
378
391
  /**
379
392
  * Gets a serializable representation of the element
380
393
  */
381
- serializable() {
382
- const result = super.serializable();
394
+ serialize() {
395
+ const result = super.serialize();
396
+ result.__serializable = 'DoubleOperatorFilter';
383
397
  if (this.operatorA) {
384
398
  result.operatorA = this.operatorA;
385
399
  }
@@ -413,8 +427,8 @@ exports.DoubleOperatorFilter = DoubleOperatorFilter;
413
427
  * @internal
414
428
  */
415
429
  class MeasureFilter extends DoubleOperatorFilter {
416
- constructor(att, measure, operatorA, valueA, operatorB, valueB, config) {
417
- super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config);
430
+ constructor(att, measure, operatorA, valueA, operatorB, valueB, config, composeCode) {
431
+ super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config, composeCode);
418
432
  this.measure = measure;
419
433
  }
420
434
  /**
@@ -433,9 +447,10 @@ class MeasureFilter extends DoubleOperatorFilter {
433
447
  /**
434
448
  * Gets a serializable representation of the element
435
449
  */
436
- serializable() {
437
- const result = super.serializable();
438
- result.measure = this.measure.serializable();
450
+ serialize() {
451
+ const result = super.serialize();
452
+ result.__serializable = 'MeasureFilter';
453
+ result.measure = this.measure.serialize();
439
454
  return result;
440
455
  }
441
456
  jaql(nested) {
@@ -456,8 +471,8 @@ exports.MeasureFilter = MeasureFilter;
456
471
  * @internal
457
472
  */
458
473
  class RankingFilter extends AbstractFilter {
459
- constructor(att, measure, operator, count, config) {
460
- super(att, exports.FilterTypes.ranking, config);
474
+ constructor(att, measure, operator, count, config, composeCode) {
475
+ super(att, exports.FilterTypes.ranking, config, composeCode);
461
476
  this.count = count;
462
477
  this.operator = operator;
463
478
  this.measure = measure;
@@ -471,11 +486,12 @@ class RankingFilter extends AbstractFilter {
471
486
  /**
472
487
  * Gets a serializable representation of the element
473
488
  */
474
- serializable() {
475
- const result = super.serializable();
489
+ serialize() {
490
+ const result = super.serialize();
491
+ result.__serializable = 'RankingFilter';
476
492
  result.count = this.count;
477
493
  result.operator = this.operator;
478
- result.measure = this.measure.serializable();
494
+ result.measure = this.measure.serialize();
479
495
  return result;
480
496
  }
481
497
  /**
@@ -493,8 +509,16 @@ exports.RankingFilter = RankingFilter;
493
509
  * @internal
494
510
  */
495
511
  class NumericFilter extends DoubleOperatorFilter {
496
- constructor(att, operatorA, valueA, operatorB, valueB, config) {
497
- super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config);
512
+ constructor(att, operatorA, valueA, operatorB, valueB, config, composeCode) {
513
+ super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config, composeCode);
514
+ }
515
+ /**
516
+ * Gets a serializable representation of the element
517
+ */
518
+ serialize() {
519
+ const result = super.serialize();
520
+ result.__serializable = 'NumericFilter';
521
+ return result;
498
522
  }
499
523
  }
500
524
  exports.NumericFilter = NumericFilter;
@@ -502,8 +526,16 @@ exports.NumericFilter = NumericFilter;
502
526
  * @internal
503
527
  */
504
528
  class TextFilter extends DoubleOperatorFilter {
505
- constructor(att, operator, value, config) {
506
- super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config);
529
+ constructor(att, operator, value, config, composeCode) {
530
+ super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config, composeCode);
531
+ }
532
+ /**
533
+ * Gets a serializable representation of the element
534
+ */
535
+ serialize() {
536
+ const result = super.serialize();
537
+ result.__serializable = 'TextFilter';
538
+ return result;
507
539
  }
508
540
  }
509
541
  exports.TextFilter = TextFilter;
@@ -511,8 +543,8 @@ exports.TextFilter = TextFilter;
511
543
  * @internal
512
544
  */
513
545
  class DateRangeFilter extends DoubleOperatorFilter {
514
- constructor(l, valueFrom, valueTo, config) {
515
- super(l, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, config);
546
+ constructor(levelAttribute, valueFrom, valueTo, config, composeCode) {
547
+ super(levelAttribute, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, config, composeCode);
516
548
  if (typeof valueFrom === 'object') {
517
549
  this.valueA = valueFrom.toISOString();
518
550
  }
@@ -535,14 +567,22 @@ class DateRangeFilter extends DoubleOperatorFilter {
535
567
  filterJaql() {
536
568
  return super.filterJaql();
537
569
  }
570
+ /**
571
+ * Gets a serializable representation of the element
572
+ */
573
+ serialize() {
574
+ const result = super.serialize();
575
+ result.__serializable = 'DateRangeFilter';
576
+ return result;
577
+ }
538
578
  }
539
579
  exports.DateRangeFilter = DateRangeFilter;
540
580
  /**
541
581
  * @internal
542
582
  */
543
583
  class RelativeDateFilter extends AbstractFilter {
544
- constructor(l, offset, count, operator, anchor, config) {
545
- super(l, exports.FilterTypes.relativeDate, config);
584
+ constructor(levelAttribute, offset, count, operator, anchor, config, composeCode) {
585
+ super(levelAttribute, exports.FilterTypes.relativeDate, config, composeCode);
546
586
  if (!operator) {
547
587
  operator = exports.DateOperators.Next;
548
588
  }
@@ -572,13 +612,14 @@ class RelativeDateFilter extends AbstractFilter {
572
612
  /**
573
613
  * Gets a serializable representation of the element
574
614
  */
575
- serializable() {
576
- const result = super.serializable();
615
+ serialize() {
616
+ const result = super.serialize();
617
+ result.__serializable = 'RelativeDateFilter';
577
618
  result.offset = this.offset;
578
619
  result.count = this.count;
579
620
  result.operator = this.operator;
580
621
  if (this.anchor) {
581
- result.anchor = this.anchor;
622
+ result.anchor = typeof this.anchor === 'string' ? this.anchor : this.anchor.toISOString();
582
623
  }
583
624
  return result;
584
625
  }
@@ -608,8 +649,8 @@ exports.RelativeDateFilter = RelativeDateFilter;
608
649
  * @internal
609
650
  */
610
651
  class CustomFilter extends AbstractFilter {
611
- constructor(att, jaql, config) {
612
- super(att, exports.FilterTypes.advanced, config);
652
+ constructor(att, jaql, config, composeCode) {
653
+ super(att, exports.FilterTypes.advanced, config, composeCode);
613
654
  // remove filterType from jaql as it is not needed
614
655
  delete jaql.filterType;
615
656
  this.jaqlExpression = jaql;
@@ -627,6 +668,15 @@ class CustomFilter extends AbstractFilter {
627
668
  filterJaql() {
628
669
  return this.jaqlExpression;
629
670
  }
671
+ /**
672
+ * Gets a serializable representation of the element
673
+ */
674
+ serialize() {
675
+ const result = super.serialize();
676
+ result.__serializable = 'CustomFilter';
677
+ result.jaqlExpression = this.jaqlExpression;
678
+ return result;
679
+ }
630
680
  }
631
681
  exports.CustomFilter = CustomFilter;
632
682
  /**
@@ -9,15 +9,11 @@ const utils_js_1 = require("../../../utils.js");
9
9
  * @returns attribute or level attribute
10
10
  */
11
11
  const createAttributeFromFilterJaql = (jaql) => {
12
- const { dim, table, column, datatype, title, datasource: dataSource } = jaql;
12
+ const { dim, datatype, title, datasource: dataSource } = jaql;
13
13
  return (0, utils_js_1.createAttributeHelper)({
14
- dim,
15
- table,
16
- column,
14
+ expression: dim,
17
15
  dataType: datatype,
18
16
  granularity: (0, utils_js_1.getGranularityFromJaql)(jaql),
19
- format: undefined,
20
- sort: undefined,
21
17
  title,
22
18
  dataSource,
23
19
  });
@@ -30,13 +26,11 @@ exports.createAttributeFromFilterJaql = createAttributeFromFilterJaql;
30
26
  * @returns Measure
31
27
  */
32
28
  const createMeasureFromFilterJaql = (jaql) => {
33
- const { dim, table, column, title, datatype: dataType, agg, datasource: dataSource } = jaql;
29
+ const { dim, title, datatype: dataType, agg, datasource: dataSource } = jaql;
34
30
  if (!agg)
35
31
  return undefined;
36
32
  return (0, utils_js_1.createMeasureHelper)({
37
- dim,
38
- table,
39
- column,
33
+ expression: dim,
40
34
  dataType,
41
35
  agg,
42
36
  granularity: (0, utils_js_1.getGranularityFromJaql)(jaql),
@@ -56,11 +50,9 @@ exports.createMeasureFromFilterJaql = createMeasureFromFilterJaql;
56
50
  const createMeasureFromRankingFilterJaql = (jaql, rankingMessage) => {
57
51
  if ('formula' in jaql)
58
52
  return (0, utils_js_1.createCalculatedMeasureHelper)(jaql);
59
- const { dim, table, column, datatype: dataType, agg } = jaql;
53
+ const { dim, datatype: dataType, agg } = jaql;
60
54
  return (0, utils_js_1.createMeasureHelper)({
61
- dim,
62
- table,
63
- column,
55
+ expression: dim,
64
56
  granularity: (0, utils_js_1.getGranularityFromJaql)(jaql),
65
57
  dataType,
66
58
  agg,