@sisense/sdk-data 1.11.0 → 1.12.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 (96) hide show
  1. package/dist/cjs/dimensional-model/analytics/factory.d.ts +47 -0
  2. package/dist/cjs/dimensional-model/analytics/factory.js +151 -0
  3. package/dist/cjs/dimensional-model/analytics/factory.test.d.ts +1 -0
  4. package/dist/cjs/dimensional-model/analytics/factory.test.js +99 -0
  5. package/dist/cjs/dimensional-model/attributes.d.ts +139 -0
  6. package/dist/cjs/dimensional-model/attributes.js +342 -0
  7. package/dist/cjs/dimensional-model/attributes.test.d.ts +1 -0
  8. package/dist/cjs/dimensional-model/attributes.test.js +154 -0
  9. package/dist/cjs/dimensional-model/base.d.ts +43 -0
  10. package/dist/cjs/dimensional-model/base.js +58 -0
  11. package/dist/cjs/dimensional-model/base.test.d.ts +1 -0
  12. package/dist/cjs/dimensional-model/base.test.js +17 -0
  13. package/dist/cjs/dimensional-model/data-model.d.ts +13 -0
  14. package/dist/cjs/dimensional-model/data-model.js +37 -0
  15. package/dist/cjs/dimensional-model/dimensions.d.ts +167 -0
  16. package/dist/cjs/dimensional-model/dimensions.js +307 -0
  17. package/dist/cjs/dimensional-model/dimensions.test.d.ts +1 -0
  18. package/dist/cjs/dimensional-model/dimensions.test.js +54 -0
  19. package/dist/cjs/dimensional-model/factory.d.ts +17 -0
  20. package/dist/cjs/dimensional-model/factory.js +54 -0
  21. package/dist/cjs/dimensional-model/filters/factory.d.ts +796 -0
  22. package/dist/cjs/dimensional-model/filters/factory.js +962 -0
  23. package/dist/cjs/dimensional-model/filters/factory.test.d.ts +1 -0
  24. package/dist/cjs/dimensional-model/filters/factory.test.js +366 -0
  25. package/dist/cjs/dimensional-model/filters/filters.d.ts +321 -0
  26. package/dist/cjs/dimensional-model/filters/filters.js +614 -0
  27. package/dist/cjs/dimensional-model/filters/filters.test.d.ts +1 -0
  28. package/dist/cjs/dimensional-model/filters/filters.test.js +225 -0
  29. package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.d.ts +47 -0
  30. package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +111 -0
  31. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.d.ts +21 -0
  32. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +194 -0
  33. package/dist/cjs/dimensional-model/filters/utils/date-time-filter-util.d.ts +2 -0
  34. package/dist/cjs/dimensional-model/filters/utils/date-time-filter-util.js +12 -0
  35. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +13 -0
  36. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +54 -0
  37. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.test.d.ts +1 -0
  38. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.test.js +32 -0
  39. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +73 -0
  40. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +190 -0
  41. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.test.d.ts +1 -0
  42. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.test.js +558 -0
  43. package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.d.ts +5 -0
  44. package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.js +174 -0
  45. package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.test.d.ts +1 -0
  46. package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.test.js +236 -0
  47. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.d.ts +17 -0
  48. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +79 -0
  49. package/dist/cjs/dimensional-model/filters/utils/types.d.ts +200 -0
  50. package/dist/cjs/dimensional-model/filters/utils/types.js +99 -0
  51. package/dist/cjs/dimensional-model/interfaces.d.ts +512 -0
  52. package/dist/cjs/dimensional-model/interfaces.js +31 -0
  53. package/dist/cjs/dimensional-model/measures/factory.d.ts +920 -0
  54. package/dist/cjs/dimensional-model/measures/factory.js +1188 -0
  55. package/dist/cjs/dimensional-model/measures/factory.test.d.ts +1 -0
  56. package/dist/cjs/dimensional-model/measures/factory.test.js +481 -0
  57. package/dist/cjs/dimensional-model/measures/measures.d.ts +217 -0
  58. package/dist/cjs/dimensional-model/measures/measures.js +416 -0
  59. package/dist/cjs/dimensional-model/measures/measures.test.d.ts +1 -0
  60. package/dist/cjs/dimensional-model/measures/measures.test.js +79 -0
  61. package/dist/cjs/dimensional-model/simple-column-types.d.ts +39 -0
  62. package/dist/cjs/dimensional-model/simple-column-types.js +134 -0
  63. package/dist/cjs/dimensional-model/simple-column-types.test.d.ts +1 -0
  64. package/dist/cjs/dimensional-model/simple-column-types.test.js +85 -0
  65. package/dist/cjs/dimensional-model/types.d.ts +256 -0
  66. package/dist/cjs/dimensional-model/types.js +298 -0
  67. package/dist/cjs/dimensional-model/types.test.d.ts +1 -0
  68. package/dist/cjs/dimensional-model/types.test.js +33 -0
  69. package/dist/cjs/index.d.ts +93 -0
  70. package/dist/cjs/index.js +123 -0
  71. package/dist/cjs/interfaces.d.ts +367 -0
  72. package/dist/cjs/interfaces.js +21 -0
  73. package/dist/cjs/translation/initialize-i18n.d.ts +2 -0
  74. package/dist/cjs/translation/initialize-i18n.js +14 -0
  75. package/dist/cjs/translation/resources/en.d.ts +28 -0
  76. package/dist/cjs/translation/resources/en.js +30 -0
  77. package/dist/cjs/translation/resources/index.d.ts +53 -0
  78. package/dist/cjs/translation/resources/index.js +10 -0
  79. package/dist/cjs/translation/resources/uk.d.ts +5 -0
  80. package/dist/cjs/translation/resources/uk.js +30 -0
  81. package/dist/cjs/translation/translatable-error.d.ts +5 -0
  82. package/dist/cjs/translation/translatable-error.js +15 -0
  83. package/dist/cjs/utils.d.ts +37 -0
  84. package/dist/cjs/utils.js +105 -0
  85. package/dist/cjs/utils.test.d.ts +1 -0
  86. package/dist/cjs/utils.test.js +158 -0
  87. package/dist/dimensional-model/filters/factory.d.ts +80 -42
  88. package/dist/dimensional-model/filters/factory.js +123 -85
  89. package/dist/dimensional-model/filters/filters.d.ts +34 -12
  90. package/dist/dimensional-model/filters/filters.js +69 -27
  91. package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +4 -2
  92. package/dist/dimensional-model/filters/utils/condition-filter-util.js +27 -25
  93. package/dist/dimensional-model/filters/utils/filter-code-util.js +1 -1
  94. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +16 -10
  95. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +34 -27
  96. package/package.json +18 -9
@@ -73,6 +73,7 @@ export declare const FilterTypes: {
73
73
  numeric: string;
74
74
  date: string;
75
75
  relativeDate: string;
76
+ cascading: string;
76
77
  };
77
78
  /**
78
79
  * base implementation for filter classes
@@ -98,7 +99,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
98
99
  * @internal
99
100
  */
100
101
  disabled: boolean;
101
- constructor(att: Attribute, filterType: string);
102
+ constructor(att: Attribute, filterType: string, guid?: string);
102
103
  get name(): string;
103
104
  /**
104
105
  * Gets JAQL representing this Filter instance
@@ -123,6 +124,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
123
124
  */
124
125
  jaql(nested?: boolean): any;
125
126
  static checkAttributeSupport(attribute: Attribute): void;
127
+ static disabledJaql(nested?: boolean): any;
126
128
  }
127
129
  /**
128
130
  * @internal
@@ -130,7 +132,7 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
130
132
  export declare class LogicalAttributeFilter extends AbstractFilter {
131
133
  readonly filters: Filter[];
132
134
  readonly operator: string;
133
- constructor(filters: Filter[], operator: string);
135
+ constructor(filters: Filter[], operator: string, guid?: string);
134
136
  /**
135
137
  * gets the element's ID
136
138
  */
@@ -149,7 +151,7 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
149
151
  */
150
152
  export declare class MembersFilter extends AbstractFilter {
151
153
  readonly members: any[];
152
- constructor(attribute: Attribute, members?: any[]);
154
+ constructor(attribute: Attribute, members?: any[], guid?: string);
153
155
  /**
154
156
  * gets the element's ID
155
157
  */
@@ -163,13 +165,33 @@ export declare class MembersFilter extends AbstractFilter {
163
165
  */
164
166
  filterJaql(): any;
165
167
  }
168
+ /**
169
+ * @internal
170
+ */
171
+ export declare class CascadingFilter extends AbstractFilter {
172
+ readonly filters: Filter[];
173
+ constructor(filters: Filter[], guid?: string);
174
+ /**
175
+ * gets the element's ID
176
+ */
177
+ get id(): string;
178
+ /**
179
+ * Gets a serializable representation of the element
180
+ */
181
+ serializable(): any;
182
+ /**
183
+ * Gets JAQL representing this Filter instance
184
+ */
185
+ filterJaql(): any;
186
+ jaql(nested?: boolean): any;
187
+ }
166
188
  /**
167
189
  * @internal
168
190
  */
169
191
  export declare class ExcludeFilter extends AbstractFilter {
170
192
  readonly filter: Filter;
171
193
  readonly input?: Filter;
172
- constructor(filter: Filter, input?: Filter);
194
+ constructor(filter: Filter, input?: Filter, guid?: string);
173
195
  /**
174
196
  * gets the element's ID
175
197
  */
@@ -191,7 +213,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
191
213
  operatorB?: string;
192
214
  valueA?: Type;
193
215
  valueB?: Type;
194
- constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type);
216
+ constructor(att: Attribute, filterType: string, operatorA?: string, valueA?: Type, operatorB?: string, valueB?: Type, guid?: string);
195
217
  /**
196
218
  * gets the element's ID
197
219
  */
@@ -210,7 +232,7 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
210
232
  */
211
233
  export declare class MeasureFilter extends DoubleOperatorFilter<number> {
212
234
  measure: Measure;
213
- constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number);
235
+ constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, guid?: string);
214
236
  /**
215
237
  * gets the element's ID
216
238
  */
@@ -228,7 +250,7 @@ export declare class RankingFilter extends AbstractFilter {
228
250
  count: number;
229
251
  operator: string;
230
252
  measure: Measure;
231
- constructor(att: Attribute, measure: Measure, operator: string, count: number);
253
+ constructor(att: Attribute, measure: Measure, operator: string, count: number, guid?: string);
232
254
  /**
233
255
  * gets the element's ID
234
256
  */
@@ -246,19 +268,19 @@ export declare class RankingFilter extends AbstractFilter {
246
268
  * @internal
247
269
  */
248
270
  export declare class NumericFilter extends DoubleOperatorFilter<number> {
249
- constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number);
271
+ constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, guid?: string);
250
272
  }
251
273
  /**
252
274
  * @internal
253
275
  */
254
276
  export declare class TextFilter extends DoubleOperatorFilter<string> {
255
- constructor(att: Attribute, operator: string, value: string);
277
+ constructor(att: Attribute, operator: string, value: string, guid?: string);
256
278
  }
257
279
  /**
258
280
  * @internal
259
281
  */
260
282
  export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
261
- constructor(l: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string);
283
+ constructor(l: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, guid?: string);
262
284
  get level(): LevelAttribute;
263
285
  get from(): string;
264
286
  get to(): string;
@@ -275,7 +297,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
275
297
  readonly count: number;
276
298
  readonly operator: string;
277
299
  readonly anchor?: Date | string;
278
- constructor(l: LevelAttribute, offset: number, count: number, operator?: string, anchor?: Date | string);
300
+ constructor(l: LevelAttribute, offset: number, count: number, operator?: string, anchor?: Date | string, guid?: string);
279
301
  get level(): LevelAttribute;
280
302
  /**
281
303
  * gets the element's ID
@@ -292,7 +314,7 @@ export declare class RelativeDateFilter extends AbstractFilter {
292
314
  filterJaql(): any;
293
315
  }
294
316
  /**
295
- * @param json
317
+ * @param json - Filter JSON representation
296
318
  * @internal
297
319
  */
298
320
  export declare function createFilter(json: any): Filter;
@@ -85,6 +85,7 @@ export const FilterTypes = {
85
85
  numeric: 'numeric',
86
86
  date: 'date',
87
87
  relativeDate: 'relativeDate',
88
+ cascading: 'cascading',
88
89
  };
89
90
  // CLASSES
90
91
  /**
@@ -93,12 +94,12 @@ export const FilterTypes = {
93
94
  * @internal
94
95
  */
95
96
  class AbstractFilter extends DimensionalElement {
96
- constructor(att, filterType) {
97
+ constructor(att, filterType, guid) {
97
98
  super('filter', MetadataTypes.Filter);
98
99
  this.filterType = filterType;
99
100
  AbstractFilter.checkAttributeSupport(att);
100
101
  this.attribute = att;
101
- this.guid = guidFast(13);
102
+ this.guid = guid || guidFast(13);
102
103
  this.disabled = false;
103
104
  }
104
105
  get name() {
@@ -119,9 +120,8 @@ class AbstractFilter extends DimensionalElement {
119
120
  * @param nested - defines whether the JAQL is nested within parent JAQL statement or a root JAQL element
120
121
  */
121
122
  jaql(nested) {
122
- // if the filter is disabled, return empty filter JAQL
123
123
  if (this.disabled) {
124
- return nested ? { filter: {} } : { jaql: { filter: {} } };
124
+ return AbstractFilter.disabledJaql(nested);
125
125
  }
126
126
  const result = this.attribute.jaql(false);
127
127
  const level = this.attribute;
@@ -147,13 +147,16 @@ class AbstractFilter extends DimensionalElement {
147
147
  throw new TranslatableError('errors.filter.unsupportedDatetimeLevel');
148
148
  }
149
149
  }
150
+ static disabledJaql(nested) {
151
+ return nested ? { filter: {} } : { jaql: { filter: {} } };
152
+ }
150
153
  }
151
154
  /**
152
155
  * @internal
153
156
  */
154
157
  export class LogicalAttributeFilter extends AbstractFilter {
155
- constructor(filters, operator) {
156
- super(filters[0].attribute, FilterTypes.logicalAttribute);
158
+ constructor(filters, operator, guid) {
159
+ super(filters[0].attribute, FilterTypes.logicalAttribute, guid);
157
160
  this.operator = operator;
158
161
  this.filters = filters;
159
162
  }
@@ -185,8 +188,8 @@ export class LogicalAttributeFilter extends AbstractFilter {
185
188
  * @internal
186
189
  */
187
190
  export class MembersFilter extends AbstractFilter {
188
- constructor(attribute, members) {
189
- super(attribute, FilterTypes.members);
191
+ constructor(attribute, members, guid) {
192
+ super(attribute, FilterTypes.members, guid);
190
193
  this.members = members !== null && members !== void 0 ? members : [];
191
194
  if (this.members.filter((m) => m === null || m === undefined).length > 0) {
192
195
  throw new TranslatableError('errors.filter.membersFilterNullMember', {
@@ -217,12 +220,52 @@ export class MembersFilter extends AbstractFilter {
217
220
  };
218
221
  }
219
222
  }
223
+ /**
224
+ * @internal
225
+ */
226
+ export class CascadingFilter extends AbstractFilter {
227
+ constructor(filters, guid) {
228
+ super(filters[0].attribute, FilterTypes.cascading, guid);
229
+ this.filters = filters;
230
+ }
231
+ /**
232
+ * gets the element's ID
233
+ */
234
+ get id() {
235
+ return `${this.filterType}_${this.filters.map((f) => f.id).join()}`;
236
+ }
237
+ /**
238
+ * Gets a serializable representation of the element
239
+ */
240
+ serializable() {
241
+ const result = super.serializable();
242
+ result.filters = this.filters.map((f) => f.serializable());
243
+ return result;
244
+ }
245
+ /**
246
+ * Gets JAQL representing this Filter instance
247
+ */
248
+ filterJaql() {
249
+ // return empty object as jaql is handled by jaql() method
250
+ return {};
251
+ }
252
+ jaql(nested) {
253
+ if (this.disabled) {
254
+ return AbstractFilter.disabledJaql(nested);
255
+ }
256
+ // return jaql of all level filters treated as scope filters
257
+ return this.filters.map((f) => {
258
+ f.isScope = true;
259
+ return f.jaql(nested);
260
+ });
261
+ }
262
+ }
220
263
  /**
221
264
  * @internal
222
265
  */
223
266
  export class ExcludeFilter extends AbstractFilter {
224
- constructor(filter, input) {
225
- super(filter.attribute, FilterTypes.exclude);
267
+ constructor(filter, input, guid) {
268
+ super(filter.attribute, FilterTypes.exclude, guid);
226
269
  this.input = input;
227
270
  this.filter = filter;
228
271
  }
@@ -267,8 +310,8 @@ export class ExcludeFilter extends AbstractFilter {
267
310
  * @internal
268
311
  */
269
312
  export class DoubleOperatorFilter extends AbstractFilter {
270
- constructor(att, filterType, operatorA, valueA, operatorB, valueB) {
271
- super(att, filterType);
313
+ constructor(att, filterType, operatorA, valueA, operatorB, valueB, guid) {
314
+ super(att, filterType, guid);
272
315
  if (operatorA && valueA !== undefined) {
273
316
  this.valueA = valueA;
274
317
  this.operatorA = operatorA;
@@ -328,8 +371,8 @@ export class DoubleOperatorFilter extends AbstractFilter {
328
371
  * @internal
329
372
  */
330
373
  export class MeasureFilter extends DoubleOperatorFilter {
331
- constructor(att, measure, operatorA, valueA, operatorB, valueB) {
332
- super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB);
374
+ constructor(att, measure, operatorA, valueA, operatorB, valueB, guid) {
375
+ super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB, guid);
333
376
  this.measure = measure;
334
377
  }
335
378
  /**
@@ -354,9 +397,8 @@ export class MeasureFilter extends DoubleOperatorFilter {
354
397
  return result;
355
398
  }
356
399
  jaql(nested) {
357
- // if the filter is disabled, return empty filter JAQL
358
400
  if (this.disabled) {
359
- return nested ? { filter: {} } : { jaql: { filter: {} } };
401
+ return AbstractFilter.disabledJaql(nested);
360
402
  }
361
403
  const result = super.jaql(nested);
362
404
  if (this.measure instanceof DimensionalBaseMeasure) {
@@ -371,8 +413,8 @@ export class MeasureFilter extends DoubleOperatorFilter {
371
413
  * @internal
372
414
  */
373
415
  export class RankingFilter extends AbstractFilter {
374
- constructor(att, measure, operator, count) {
375
- super(att, FilterTypes.ranking);
416
+ constructor(att, measure, operator, count, guid) {
417
+ super(att, FilterTypes.ranking, guid);
376
418
  this.count = count;
377
419
  this.operator = operator;
378
420
  this.measure = measure;
@@ -407,24 +449,24 @@ export class RankingFilter extends AbstractFilter {
407
449
  * @internal
408
450
  */
409
451
  export class NumericFilter extends DoubleOperatorFilter {
410
- constructor(att, operatorA, valueA, operatorB, valueB) {
411
- super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB);
452
+ constructor(att, operatorA, valueA, operatorB, valueB, guid) {
453
+ super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB, guid);
412
454
  }
413
455
  }
414
456
  /**
415
457
  * @internal
416
458
  */
417
459
  export class TextFilter extends DoubleOperatorFilter {
418
- constructor(att, operator, value) {
419
- super(att, FilterTypes.text, operator, value);
460
+ constructor(att, operator, value, guid) {
461
+ super(att, FilterTypes.text, operator, value, undefined, undefined, guid);
420
462
  }
421
463
  }
422
464
  /**
423
465
  * @internal
424
466
  */
425
467
  export class DateRangeFilter extends DoubleOperatorFilter {
426
- constructor(l, valueFrom, valueTo) {
427
- super(l, FilterTypes.date, DateOperators.From, valueFrom, DateOperators.To, valueTo);
468
+ constructor(l, valueFrom, valueTo, guid) {
469
+ super(l, FilterTypes.date, DateOperators.From, valueFrom, DateOperators.To, valueTo, guid);
428
470
  if (typeof valueFrom === 'object') {
429
471
  this.valueA = valueFrom.toISOString();
430
472
  }
@@ -452,8 +494,8 @@ export class DateRangeFilter extends DoubleOperatorFilter {
452
494
  * @internal
453
495
  */
454
496
  export class RelativeDateFilter extends AbstractFilter {
455
- constructor(l, offset, count, operator, anchor) {
456
- super(l, FilterTypes.relativeDate);
497
+ constructor(l, offset, count, operator, anchor, guid) {
498
+ super(l, FilterTypes.relativeDate, guid);
457
499
  if (!operator) {
458
500
  operator = DateOperators.Next;
459
501
  }
@@ -515,7 +557,7 @@ export class RelativeDateFilter extends AbstractFilter {
515
557
  }
516
558
  }
517
559
  /**
518
- * @param json
560
+ * @param json - Filter JSON representation
519
561
  * @internal
520
562
  */
521
563
  export function createFilter(json) {
@@ -6,14 +6,16 @@ export declare const getSelectedConditionOption: (filter: ConditionFilterJaql) =
6
6
  *
7
7
  * @param attribute - Provided attribute
8
8
  * @param conditionFilterJaql - Condition filter JAQL object
9
+ * @param guid - Optional GUID for the filter
9
10
  * @returns attribute filter
10
11
  */
11
- export declare const createAttributeFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql) => Filter;
12
+ export declare const createAttributeFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, guid?: string) => Filter;
12
13
  /**
13
14
  * Creates a measure filter from the provided measure and condition filter JAQL object
14
15
  *
15
16
  * @param measure - Provided measure
16
17
  * @param conditionFilterJaql - Condition filter JAQL object
18
+ * @param guid - Optional GUID for the filter
17
19
  * @returns measure filter
18
20
  */
19
- export declare const createMeasureFilterFromConditionFilterJaql: (measure: BaseMeasure, conditionFilterJaql: ConditionFilterJaql) => Filter;
21
+ export declare const createMeasureFilterFromConditionFilterJaql: (measure: BaseMeasure, conditionFilterJaql: ConditionFilterJaql, guid?: string) => Filter;
@@ -77,54 +77,55 @@ export const getSelectedConditionOption = (filter) => {
77
77
  *
78
78
  * @param attribute - Provided attribute
79
79
  * @param conditionFilterJaql - Condition filter JAQL object
80
+ * @param guid - Optional GUID for the filter
80
81
  * @returns attribute filter
81
82
  */
82
- export const createAttributeFilterFromConditionFilterJaql = (attribute, conditionFilterJaql) => {
83
+ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditionFilterJaql, guid) => {
83
84
  var _a, _b;
84
85
  const conditionType = getSelectedConditionOption(conditionFilterJaql);
85
86
  switch (conditionType) {
86
87
  case ConditionFilterType.BOTTOM:
87
88
  if (conditionFilterJaql.by && 'agg' in conditionFilterJaql.by) {
88
- return withComposeCode(filterFactory.bottomRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by), conditionFilterJaql[ConditionFilterType.BOTTOM]);
89
+ return withComposeCode(filterFactory.bottomRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by), conditionFilterJaql[ConditionFilterType.BOTTOM], guid);
89
90
  }
90
91
  break;
91
92
  case ConditionFilterType.EQUALS:
92
- return withComposeCode(filterFactory.equals)(attribute, conditionFilterJaql[ConditionFilterType.EQUALS]);
93
+ return withComposeCode(filterFactory.equals)(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], guid);
93
94
  case ConditionFilterType.GREATER_THAN:
94
- return withComposeCode(filterFactory.greaterThan)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN]);
95
+ return withComposeCode(filterFactory.greaterThan)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], guid);
95
96
  case ConditionFilterType.GREATER_THAN_OR_EQUAL:
96
- return withComposeCode(filterFactory.greaterThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL]);
97
+ return withComposeCode(filterFactory.greaterThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], guid);
97
98
  case ConditionFilterType.TOP:
98
99
  if (conditionFilterJaql.by) {
99
- return withComposeCode(filterFactory.topRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by), conditionFilterJaql[ConditionFilterType.TOP]);
100
+ return withComposeCode(filterFactory.topRanking)(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by), conditionFilterJaql[ConditionFilterType.TOP], guid);
100
101
  }
101
102
  break;
102
103
  case ConditionFilterType.STARTS_WITH:
103
- return withComposeCode(filterFactory.startsWith)(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH]);
104
+ return withComposeCode(filterFactory.startsWith)(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], guid);
104
105
  case ConditionFilterType.DOESNT_START_WITH:
105
- return withComposeCode(filterFactory.doesntStartWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH]);
106
+ return withComposeCode(filterFactory.doesntStartWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], guid);
106
107
  case ConditionFilterType.ENDS_WITH:
107
- return withComposeCode(filterFactory.endsWith)(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH]);
108
+ return withComposeCode(filterFactory.endsWith)(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], guid);
108
109
  case ConditionFilterType.DOESNT_END_WITH:
109
- return withComposeCode(filterFactory.doesntEndWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH]);
110
+ return withComposeCode(filterFactory.doesntEndWith)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], guid);
110
111
  case ConditionFilterType.CONTAINS:
111
- return withComposeCode(filterFactory.contains)(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS]);
112
+ return withComposeCode(filterFactory.contains)(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], guid);
112
113
  case ConditionFilterType.DOESNT_CONTAIN:
113
- return withComposeCode(filterFactory.doesntContain)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN]);
114
+ return withComposeCode(filterFactory.doesntContain)(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], guid);
114
115
  case ConditionFilterType.LESS_THAN:
115
- return withComposeCode(filterFactory.lessThan)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN]);
116
+ return withComposeCode(filterFactory.lessThan)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], guid);
116
117
  case ConditionFilterType.LESS_THAN_OR_EQUAL:
117
- return withComposeCode(filterFactory.lessThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL]);
118
+ return withComposeCode(filterFactory.lessThanOrEqual)(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], guid);
118
119
  case ConditionFilterType.BETWEEN:
119
- return withComposeCode(filterFactory.between)(attribute, conditionFilterJaql.from, conditionFilterJaql.to);
120
+ return withComposeCode(filterFactory.between)(attribute, conditionFilterJaql.from, conditionFilterJaql.to, guid);
120
121
  case ConditionFilterType.IS_NOT_BETWEEN:
121
- return withComposeCode(filterFactory.exclude)(withComposeCode(filterFactory.between)(attribute, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to));
122
+ return withComposeCode(filterFactory.exclude)(withComposeCode(filterFactory.between)(attribute, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, guid));
122
123
  case ConditionFilterType.MULTIPLE_CONDITION:
123
124
  if (conditionFilterJaql.and) {
124
- return withComposeCode(filterFactory.intersection)(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c)));
125
+ return withComposeCode(filterFactory.intersection)(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
125
126
  }
126
127
  if (conditionFilterJaql.or) {
127
- return withComposeCode(filterFactory.union)(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c)));
128
+ return withComposeCode(filterFactory.union)(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
128
129
  }
129
130
  break;
130
131
  case ConditionFilterType.AFTER:
@@ -141,23 +142,24 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
141
142
  *
142
143
  * @param measure - Provided measure
143
144
  * @param conditionFilterJaql - Condition filter JAQL object
145
+ * @param guid - Optional GUID for the filter
144
146
  * @returns measure filter
145
147
  */
146
- export const createMeasureFilterFromConditionFilterJaql = (measure, conditionFilterJaql) => {
148
+ export const createMeasureFilterFromConditionFilterJaql = (measure, conditionFilterJaql, guid) => {
147
149
  const conditionType = getSelectedConditionOption(conditionFilterJaql);
148
150
  switch (conditionType) {
149
151
  case ConditionFilterType.EQUALS:
150
- return withComposeCode(filterFactory.measureEquals)(measure, conditionFilterJaql[ConditionFilterType.EQUALS]);
152
+ return withComposeCode(filterFactory.measureEquals)(measure, conditionFilterJaql[ConditionFilterType.EQUALS], guid);
151
153
  case ConditionFilterType.GREATER_THAN:
152
- return withComposeCode(filterFactory.measureGreaterThan)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN]);
154
+ return withComposeCode(filterFactory.measureGreaterThan)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], guid);
153
155
  case ConditionFilterType.GREATER_THAN_OR_EQUAL:
154
- return withComposeCode(filterFactory.measureGreaterThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL]);
156
+ return withComposeCode(filterFactory.measureGreaterThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], guid);
155
157
  case ConditionFilterType.LESS_THAN:
156
- return withComposeCode(filterFactory.measureLessThan)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN]);
158
+ return withComposeCode(filterFactory.measureLessThan)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], guid);
157
159
  case ConditionFilterType.LESS_THAN_OR_EQUAL:
158
- return withComposeCode(filterFactory.measureLessThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL]);
160
+ return withComposeCode(filterFactory.measureLessThanOrEqual)(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], guid);
159
161
  case ConditionFilterType.BETWEEN:
160
- return withComposeCode(filterFactory.measureBetween)(measure, conditionFilterJaql.from, conditionFilterJaql.to);
162
+ return withComposeCode(filterFactory.measureBetween)(measure, conditionFilterJaql.from, conditionFilterJaql.to, guid);
161
163
  }
162
164
  throw 'Jaql contains unsupported condition filter: ' + JSON.stringify(conditionFilterJaql);
163
165
  };
@@ -40,7 +40,7 @@ export function stringifyHelper(arg) {
40
40
  */
41
41
  export function withComposeCode(func) {
42
42
  return function (...args) {
43
- const argValues = args.map(stringifyHelper).join(', ');
43
+ const argValues = args.map(stringifyHelper).join(', ').replace(/, $/, '');
44
44
  const signature = `filterFactory.${func.name}(${argValues})`;
45
45
  const filter = func(...args);
46
46
  filter.composeCode = signature;
@@ -5,63 +5,69 @@ import { FilterJaql } from '../../types.js';
5
5
  * Creates a generic filter (aka pass-through JAQL filter) if the JAQL cannot be translated to a specific filter type.
6
6
  *
7
7
  * @param jaql - The JAQL object.
8
- * @param instanceid - The instance ID.
8
+ * @param guid - Optional GUID for the filter
9
9
  * @returns A generic Filter object.
10
10
  */
11
- export declare const createGenericFilter: (jaql: FilterJaql | FilterJaqlInternal, instanceid?: string) => Filter;
11
+ export declare const createGenericFilter: (jaql: FilterJaql | FilterJaqlInternal, guid?: string) => Filter;
12
12
  /**
13
13
  * Creates a filter that includes all members of the attribute.
14
14
  *
15
15
  * @param attribute - The attribute.
16
+ * @param guid - Optional GUID for the filter
16
17
  * @returns The created Filter object.
17
18
  */
18
- export declare const createFilterIncludeAll: (attribute: Attribute) => Filter;
19
+ export declare const createFilterIncludeAll: (attribute: Attribute, guid?: string) => Filter;
19
20
  /**
20
21
  * Creates a filter from a specific items filter JAQL object.
21
22
  *
22
23
  * @param attribute - attribute
23
24
  * @param specificItemsFilterJaql - Specific Items Filter Jaql
25
+ * @param guid - Optional GUID for the filter
24
26
  * @returns Filter object
25
27
  */
26
- export declare const createFilterFromSpecificItemsFilterJaql: (attribute: Attribute, specificItemsFilterJaql: SpecificItemsFilterJaql) => Filter;
28
+ export declare const createFilterFromSpecificItemsFilterJaql: (attribute: Attribute, specificItemsFilterJaql: SpecificItemsFilterJaql, guid?: string) => Filter;
27
29
  /**
28
30
  * Creates a filter from a date range filter JAQL object.
29
31
  *
30
32
  * @param attribute - attribute
31
33
  * @param rangeFilterJaql - Range Filter Jaql
34
+ * @param guid - Optional GUID for the filter
32
35
  * @returns Filter object
33
36
  */
34
- export declare const createFilterFromDateRangeFilterJaql: (attribute: LevelAttribute, rangeFilterJaql: RangeFilterJaql) => Filter;
37
+ export declare const createFilterFromDateRangeFilterJaql: (attribute: LevelAttribute, rangeFilterJaql: RangeFilterJaql, guid?: string) => Filter;
35
38
  /**
36
39
  * Creates a filter from a numeric range filter JAQL object.
37
40
  *
38
41
  * @param attribute - attribute
39
42
  * @param rangeFilterJaql - Range Filter Jaql
43
+ * @param guid - Optional GUID for the filter
40
44
  * @returns Filter object
41
45
  */
42
- export declare const createFilterFromNumericRangeJaql: (attribute: Attribute, rangeFilterJaql: RangeFilterJaql) => Filter;
46
+ export declare const createFilterFromNumericRangeJaql: (attribute: Attribute, rangeFilterJaql: RangeFilterJaql, guid?: string) => Filter;
43
47
  /**
44
48
  * Creates a filter from a period filter JAQL object.
45
49
  *
46
50
  * @param attribute - attribute
47
51
  * @param periodFilterJaql - Period Filter Jaql
52
+ * @param guid - Optional GUID for the filter
48
53
  * @returns Filter object
49
54
  */
50
- export declare const createFilterFromPeriodFilterJaql: (attribute: LevelAttribute, periodFilterJaql: PeriodFilterJaql) => Filter;
55
+ export declare const createFilterFromPeriodFilterJaql: (attribute: LevelAttribute, periodFilterJaql: PeriodFilterJaql, guid?: string) => Filter;
51
56
  /**
52
57
  * Creates a filter from a condition filter JAQL object.
53
58
  *
54
59
  * @param attribute - attribute
55
60
  * @param conditionFilterJaql - Condition Filter Jaql
56
61
  * @param measure - measure
62
+ * @param guid - Optional GUID for the filter
57
63
  * @returns Filter object
58
64
  */
59
- export declare const createFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, measure?: BaseMeasure) => Filter;
65
+ export declare const createFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, measure?: BaseMeasure, guid?: string) => Filter;
60
66
  /**
61
67
  * Creates a filter from a filter JAQL object.
62
68
  *
63
69
  * @param jaql - The filter JAQL object.
64
- * @param instanceid - The instance ID.
70
+ * @param guid - Optional GUID for the filter
65
71
  * @returns Filter object.
66
72
  */
67
- export declare const createFilterFromJaqlInternal: (jaql: FilterJaqlInternal, instanceid?: string) => Filter;
73
+ export declare const createFilterFromJaqlInternal: (jaql: FilterJaqlInternal, guid?: string) => Filter;