@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,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.customFilter = exports.logic = exports.cascading = exports.bottomRanking = exports.topRanking = exports.measureBetweenNotEqual = exports.measureBetween = exports.measureLessThan = exports.measureLessThanOrEqual = exports.measureGreaterThanOrEqual = exports.measureGreaterThan = exports.measureEquals = exports.measureBase = exports.today = exports.thisQuarter = exports.thisMonth = exports.thisYear = exports.dateRelativeTo = exports.dateRelativeFrom = exports.dateRelative = exports.dateRange = exports.dateTo = exports.dateFrom = exports.members = exports.numeric = exports.betweenNotEqual = exports.between = exports.lessThanOrEqual = exports.lessThan = exports.greaterThanOrEqual = exports.greaterThan = exports.equals = exports.doesntEqual = exports.like = exports.startsWith = exports.endsWith = exports.contains = exports.doesntStartWith = exports.doesntEndWith = exports.doesntContain = exports.exclude = exports.intersection = exports.union = void 0;
4
+ /* eslint-disable max-lines */
5
+ /* eslint-disable max-params */
6
+ /* eslint-disable @typescript-eslint/no-shadow */
7
+ const compose_code_utils_js_1 = require("../compose-code-utils.js");
4
8
  const filters_js_1 = require("./filters.js");
5
9
  // LOGICAL FILTERS
6
10
  /**
@@ -22,10 +26,7 @@ const filters_js_1 = require("./filters.js");
22
26
  * @param config - Optional configuration for the filter
23
27
  * @returns A filter instance
24
28
  */
25
- function union(filters, config) {
26
- return new filters_js_1.LogicalAttributeFilter(filters, filters_js_1.LogicalOperators.Union, config);
27
- }
28
- exports.union = union;
29
+ exports.union = (0, compose_code_utils_js_1.withComposeCodeForFilter)((filters, config) => new filters_js_1.LogicalAttributeFilter(filters, filters_js_1.LogicalOperators.Union, config), 'union');
29
30
  /**
30
31
  * Creates a filter representing the intersection of multiple filters on the same attribute. The resulting
31
32
  * intersection filter filters on items that match all of the given filters.
@@ -45,10 +46,7 @@ exports.union = union;
45
46
  * @param config - Optional configuration for the filter
46
47
  * @returns A filter instance
47
48
  */
48
- function intersection(filters, config) {
49
- return new filters_js_1.LogicalAttributeFilter(filters, filters_js_1.LogicalOperators.Intersection, config);
50
- }
51
- exports.intersection = intersection;
49
+ exports.intersection = (0, compose_code_utils_js_1.withComposeCodeForFilter)((filters, config) => new filters_js_1.LogicalAttributeFilter(filters, filters_js_1.LogicalOperators.Intersection, config), 'intersection');
52
50
  /**
53
51
  * Creates a filter that excludes items matching the given filter
54
52
  * from all items or from items matching the optional input filter.
@@ -75,10 +73,7 @@ exports.intersection = intersection;
75
73
  * @returns A filter representing an exclusion of the given filter
76
74
  * from all attribute members or from the optional input filter
77
75
  */
78
- function exclude(filter, input, config) {
79
- return new filters_js_1.ExcludeFilter(filter, input, config);
80
- }
81
- exports.exclude = exclude;
76
+ exports.exclude = (0, compose_code_utils_js_1.withComposeCodeForFilter)((filter, input, config) => new filters_js_1.ExcludeFilter(filter, input, config), 'exclude');
82
77
  // TEXT / NUMERIC FILTERS
83
78
  /**
84
79
  * Creates a filter to isolate attribute values that do not contain a specified string.
@@ -99,10 +94,7 @@ exports.exclude = exclude;
99
94
  * @param config - Optional configuration for the filter
100
95
  * @returns A filter instance
101
96
  */
102
- function doesntContain(attribute, value, config) {
103
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntContain, value, config);
104
- }
105
- exports.doesntContain = doesntContain;
97
+ exports.doesntContain = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntContain, value, config), 'doesntContain');
106
98
  /**
107
99
  * Creates a filter to isolate attribute values that do not end with a specified string.
108
100
  *
@@ -122,10 +114,7 @@ exports.doesntContain = doesntContain;
122
114
  * @param config - Optional configuration for the filter
123
115
  * @returns A filter instance
124
116
  */
125
- function doesntEndWith(attribute, value, config) {
126
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntEndWith, value, config);
127
- }
128
- exports.doesntEndWith = doesntEndWith;
117
+ exports.doesntEndWith = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntEndWith, value, config), 'doesntEndWith');
129
118
  /**
130
119
  * Creates a filter to isolate attribute values that do not start with a specified string.
131
120
  *
@@ -145,10 +134,7 @@ exports.doesntEndWith = doesntEndWith;
145
134
  * @param config - Optional configuration for the filter
146
135
  * @returns A filter instance
147
136
  */
148
- function doesntStartWith(attribute, value, config) {
149
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntStartWith, value, config);
150
- }
151
- exports.doesntStartWith = doesntStartWith;
137
+ exports.doesntStartWith = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntStartWith, value, config), 'doesntStartWith');
152
138
  /**
153
139
  * Creates a filter to isolate attribute values that contain a specified string.
154
140
  *
@@ -168,10 +154,7 @@ exports.doesntStartWith = doesntStartWith;
168
154
  * @param config - Optional configuration for the filter
169
155
  * @returns A filter instance
170
156
  */
171
- function contains(attribute, value, config) {
172
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.Contains, value, config);
173
- }
174
- exports.contains = contains;
157
+ exports.contains = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.Contains, value, config), 'contains');
175
158
  /**
176
159
  * Creates a filter to isolate attribute values that end with a specified string.
177
160
  *
@@ -191,10 +174,7 @@ exports.contains = contains;
191
174
  * @param config - Optional configuration for the filter
192
175
  * @returns A filter instance
193
176
  */
194
- function endsWith(attribute, value, config) {
195
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.EndsWith, value, config);
196
- }
197
- exports.endsWith = endsWith;
177
+ exports.endsWith = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.EndsWith, value, config), 'endsWith');
198
178
  /**
199
179
  * Creates a filter to isolate attribute values that start with a specified string.
200
180
  *
@@ -214,10 +194,7 @@ exports.endsWith = endsWith;
214
194
  * @param config - Optional configuration for the filter
215
195
  * @returns A filter instance
216
196
  */
217
- function startsWith(attribute, value, config) {
218
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.StartsWith, value, config);
219
- }
220
- exports.startsWith = startsWith;
197
+ exports.startsWith = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.StartsWith, value, config), 'startsWith');
221
198
  /**
222
199
  * Creates a filter to isolate attribute values that match a specified string pattern.
223
200
  *
@@ -242,10 +219,7 @@ exports.startsWith = startsWith;
242
219
  * @param config - Optional configuration for the filter
243
220
  * @returns A filter instance
244
221
  */
245
- function like(attribute, value, config) {
246
- return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.Like, value, config);
247
- }
248
- exports.like = like;
222
+ exports.like = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.Like, value, config), 'like');
249
223
  /**
250
224
  * Creates a filter to isolate attribute values that do not equal a specified string or number.
251
225
  *
@@ -265,15 +239,14 @@ exports.like = like;
265
239
  * @param config - Optional configuration for the filter
266
240
  * @returns A filter instance
267
241
  */
268
- function doesntEqual(attribute, value, config) {
242
+ exports.doesntEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => {
269
243
  if (typeof value === 'string') {
270
244
  return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.DoesntEqual, value, config);
271
245
  }
272
246
  else {
273
- return numeric(attribute, filters_js_1.NumericOperators.DoesntEqual, value, undefined, undefined, config);
247
+ return (0, exports.numeric)(attribute, filters_js_1.NumericOperators.DoesntEqual, value, undefined, undefined, config);
274
248
  }
275
- }
276
- exports.doesntEqual = doesntEqual;
249
+ }, 'doesntEqual');
277
250
  /**
278
251
  * Creates a filter to isolate attribute values that equal a specified string or number.
279
252
  *
@@ -293,15 +266,14 @@ exports.doesntEqual = doesntEqual;
293
266
  * @param config - Optional configuration for the filter
294
267
  * @returns A filter instance
295
268
  */
296
- function equals(attribute, value, config) {
269
+ exports.equals = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => {
297
270
  if (typeof value === 'string') {
298
271
  return new filters_js_1.TextFilter(attribute, filters_js_1.TextOperators.Equals, value, config);
299
272
  }
300
273
  else {
301
- return numeric(attribute, filters_js_1.NumericOperators.Equals, value, undefined, undefined, config);
274
+ return (0, exports.numeric)(attribute, filters_js_1.NumericOperators.Equals, value, undefined, undefined, config);
302
275
  }
303
- }
304
- exports.equals = equals;
276
+ }, 'equals');
305
277
  /**
306
278
  * Creates a filter to isolate attribute values strictly greater than a specified number.
307
279
  *
@@ -315,10 +287,7 @@ exports.equals = equals;
315
287
  * @param config - Optional configuration for the filter
316
288
  * @returns A filter instance
317
289
  */
318
- function greaterThan(attribute, value, config) {
319
- return numeric(attribute, filters_js_1.NumericOperators.FromNotEqual, value, undefined, undefined, config);
320
- }
321
- exports.greaterThan = greaterThan;
290
+ exports.greaterThan = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.FromNotEqual, value, undefined, undefined, config), 'greaterThan');
322
291
  /**
323
292
  * Creates a filter to isolate attribute values greater than or equal to a specified number.
324
293
  *
@@ -332,10 +301,7 @@ exports.greaterThan = greaterThan;
332
301
  * @param config - Optional configuration for the filter
333
302
  * @returns A filter instance
334
303
  */
335
- function greaterThanOrEqual(attribute, value, config) {
336
- return numeric(attribute, filters_js_1.NumericOperators.From, value, undefined, undefined, config);
337
- }
338
- exports.greaterThanOrEqual = greaterThanOrEqual;
304
+ exports.greaterThanOrEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.From, value, undefined, undefined, config), 'greaterThanOrEqual');
339
305
  /**
340
306
  * Creates a filter to isolate attribute values strictly less than a specified number.
341
307
  *
@@ -349,10 +315,7 @@ exports.greaterThanOrEqual = greaterThanOrEqual;
349
315
  * @param config - Optional configuration for the filter
350
316
  * @returns A filter instance
351
317
  */
352
- function lessThan(attribute, value, config) {
353
- return numeric(attribute, filters_js_1.NumericOperators.ToNotEqual, value, undefined, undefined, config);
354
- }
355
- exports.lessThan = lessThan;
318
+ exports.lessThan = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.ToNotEqual, value, undefined, undefined, config), 'lessThan');
356
319
  /**
357
320
  * Creates a filter to isolate attribute values less than or equal to a specified number.
358
321
  *
@@ -366,10 +329,7 @@ exports.lessThan = lessThan;
366
329
  * @param config - Optional configuration for the filter
367
330
  * @returns A filter instance
368
331
  */
369
- function lessThanOrEqual(attribute, value, config) {
370
- return numeric(attribute, filters_js_1.NumericOperators.To, value, undefined, undefined, config);
371
- }
372
- exports.lessThanOrEqual = lessThanOrEqual;
332
+ exports.lessThanOrEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, value, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.To, value, undefined, undefined, config), 'lessThanOrEqual');
373
333
  /**
374
334
  * Creates a filter to isolate attribute values within or exactly matching two specified numerical boundaries.
375
335
  *
@@ -384,10 +344,7 @@ exports.lessThanOrEqual = lessThanOrEqual;
384
344
  * @param config - Optional configuration for the filter
385
345
  * @returns A filter instance
386
346
  */
387
- function between(attribute, valueA, valueB, config) {
388
- return numeric(attribute, filters_js_1.NumericOperators.From, valueA, filters_js_1.NumericOperators.To, valueB, config);
389
- }
390
- exports.between = between;
347
+ exports.between = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, valueA, valueB, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.From, valueA, filters_js_1.NumericOperators.To, valueB, config), 'between');
391
348
  /**
392
349
  * Creates a filter that isolates attribute values strictly within two specified numerical boundaries.
393
350
  *
@@ -402,10 +359,7 @@ exports.between = between;
402
359
  * @param config - Optional configuration for the filter
403
360
  * @returns A filter instance
404
361
  */
405
- function betweenNotEqual(attribute, valueA, valueB, config) {
406
- return numeric(attribute, filters_js_1.NumericOperators.FromNotEqual, valueA, filters_js_1.NumericOperators.ToNotEqual, valueB, config);
407
- }
408
- exports.betweenNotEqual = betweenNotEqual;
362
+ exports.betweenNotEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, valueA, valueB, config) => (0, exports.numeric)(attribute, filters_js_1.NumericOperators.FromNotEqual, valueA, filters_js_1.NumericOperators.ToNotEqual, valueB, config), 'betweenNotEqual');
409
363
  /**
410
364
  * Creates a custom numeric filter that filters for given attribute values.
411
365
  *
@@ -429,10 +383,7 @@ exports.betweenNotEqual = betweenNotEqual;
429
383
  * @param config - Optional configuration for the filter
430
384
  * @returns A custom numeric filter of the given attribute
431
385
  */
432
- function numeric(attribute, operatorA, valueA, operatorB, valueB, config) {
433
- return new filters_js_1.NumericFilter(attribute, operatorA, valueA, operatorB, valueB, config);
434
- }
435
- exports.numeric = numeric;
386
+ exports.numeric = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, operatorA, valueA, operatorB, valueB, config) => new filters_js_1.NumericFilter(attribute, operatorA, valueA, operatorB, valueB, config), 'numeric');
436
387
  /**
437
388
  * Creates a filter to isolate attribute values that match any of the specified strings.
438
389
  *
@@ -450,10 +401,7 @@ exports.numeric = numeric;
450
401
  * @returns A filter instance
451
402
  * @shortDescription Creates filter on attribute to match certain string values
452
403
  */
453
- function members(attribute, members, config) {
454
- return new filters_js_1.MembersFilter(attribute, members, config);
455
- }
456
- exports.members = members;
404
+ exports.members = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, members, config) => new filters_js_1.MembersFilter(attribute, members, config), 'members');
457
405
  // DATE FILTERS
458
406
  /**
459
407
  * Creates a filter to isolate date values starting from and including the given date and level.
@@ -468,10 +416,7 @@ exports.members = members;
468
416
  * @param config - Optional configuration for the filter
469
417
  * @returns A filter instance
470
418
  */
471
- function dateFrom(level, from, config) {
472
- return dateRange(level, from, undefined, config);
473
- }
474
- exports.dateFrom = dateFrom;
419
+ exports.dateFrom = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, from, config) => (0, exports.dateRange)(level, from, undefined, config), 'dateFrom');
475
420
  /**
476
421
  * Creates a filter to isolate items up until and including the given date and level.
477
422
  *
@@ -485,10 +430,7 @@ exports.dateFrom = dateFrom;
485
430
  * @param config - Optional configuration for the filter
486
431
  * @returns A filter instance
487
432
  */
488
- function dateTo(level, to, config) {
489
- return dateRange(level, undefined, to, config);
490
- }
491
- exports.dateTo = dateTo;
433
+ exports.dateTo = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, to, config) => (0, exports.dateRange)(level, undefined, to, config), 'dateTo');
492
434
  /**
493
435
  * Creates a filter to isolate items between and including the given dates and level.
494
436
  *
@@ -503,10 +445,7 @@ exports.dateTo = dateTo;
503
445
  * @param config - Optional configuration for the filter
504
446
  * @returns A filter instance
505
447
  */
506
- function dateRange(level, from, to, config) {
507
- return new filters_js_1.DateRangeFilter(level, from, to, config);
508
- }
509
- exports.dateRange = dateRange;
448
+ exports.dateRange = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, from, to, config) => new filters_js_1.DateRangeFilter(level, from, to, config), 'dateRange');
510
449
  /**
511
450
  * Creates a filter to isolate items with a date dimension value within a specified range after a
512
451
  * given date and level.
@@ -539,10 +478,7 @@ exports.dateRange = dateRange;
539
478
  * @param config - Optional configuration for the filter
540
479
  * @returns A filter instance
541
480
  */
542
- function dateRelative(level, offset, count, anchor, config) {
543
- return new filters_js_1.RelativeDateFilter(level, offset, count, undefined, anchor, config);
544
- }
545
- exports.dateRelative = dateRelative;
481
+ exports.dateRelative = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, offset, count, anchor, config) => new filters_js_1.RelativeDateFilter(level, offset, count, undefined, anchor, config), 'dateRelative');
546
482
  /**
547
483
  * Creates a filter to isolate items with a date dimension value within a specified range after a
548
484
  * given date and level.
@@ -559,10 +495,7 @@ exports.dateRelative = dateRelative;
559
495
  * @param config - Optional configuration for the filter
560
496
  * @returns A filter instance
561
497
  */
562
- function dateRelativeFrom(level, offset, count, anchor, config) {
563
- return new filters_js_1.RelativeDateFilter(level, offset, count, filters_js_1.DateOperators.Next, anchor, config);
564
- }
565
- exports.dateRelativeFrom = dateRelativeFrom;
498
+ exports.dateRelativeFrom = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, offset, count, anchor, config) => new filters_js_1.RelativeDateFilter(level, offset, count, filters_js_1.DateOperators.Next, anchor, config), 'dateRelativeFrom');
566
499
  /**
567
500
  * Creates a filter to isolate items with a date dimension value within a specified range before a
568
501
  * given date and level.
@@ -579,10 +512,7 @@ exports.dateRelativeFrom = dateRelativeFrom;
579
512
  * @param config - Optional configuration for the filter
580
513
  * @returns A filter instance
581
514
  */
582
- function dateRelativeTo(level, offset, count, anchor, config) {
583
- return new filters_js_1.RelativeDateFilter(level, offset, count, filters_js_1.DateOperators.Last, anchor, config);
584
- }
585
- exports.dateRelativeTo = dateRelativeTo;
515
+ exports.dateRelativeTo = (0, compose_code_utils_js_1.withComposeCodeForFilter)((level, offset, count, anchor, config) => new filters_js_1.RelativeDateFilter(level, offset, count, filters_js_1.DateOperators.Last, anchor, config), 'dateRelativeTo');
586
516
  /**
587
517
  * Creates a filter to isolate items with a date dimension value in the current calendar year.
588
518
  *
@@ -595,10 +525,7 @@ exports.dateRelativeTo = dateRelativeTo;
595
525
  * @param config - Optional configuration for the filter
596
526
  * @returns A filter instance
597
527
  */
598
- function thisYear(dimension, config) {
599
- return dateRelativeTo(dimension.Years, 0, 1, undefined, config);
600
- }
601
- exports.thisYear = thisYear;
528
+ exports.thisYear = (0, compose_code_utils_js_1.withComposeCodeForFilter)((dimension, config) => (0, exports.dateRelativeTo)(dimension.Years, 0, 1, undefined, config), 'thisYear');
602
529
  /**
603
530
  * Creates a filter to isolate items with a date dimension value in the current calendar month.
604
531
  *
@@ -611,10 +538,7 @@ exports.thisYear = thisYear;
611
538
  * @param config - Optional configuration for the filter
612
539
  * @returns A filter instance
613
540
  */
614
- function thisMonth(dimension, config) {
615
- return dateRelativeTo(dimension.Months, 0, 1, undefined, config);
616
- }
617
- exports.thisMonth = thisMonth;
541
+ exports.thisMonth = (0, compose_code_utils_js_1.withComposeCodeForFilter)((dimension, config) => (0, exports.dateRelativeTo)(dimension.Months, 0, 1, undefined, config), 'thisMonth');
618
542
  /**
619
543
  * Creates a filter to isolate items with a date dimension value in the current quarter.
620
544
  *
@@ -627,10 +551,7 @@ exports.thisMonth = thisMonth;
627
551
  * @param config - Optional configuration for the filter
628
552
  * @returns A filter instance
629
553
  */
630
- function thisQuarter(dimension, config) {
631
- return dateRelativeTo(dimension.Quarters, 0, 1, undefined, config);
632
- }
633
- exports.thisQuarter = thisQuarter;
554
+ exports.thisQuarter = (0, compose_code_utils_js_1.withComposeCodeForFilter)((dimension, config) => (0, exports.dateRelativeTo)(dimension.Quarters, 0, 1, undefined, config), 'thisQuarter');
634
555
  /**
635
556
  * Creates a filter to isolate items with a date dimension value of the current date.
636
557
  *
@@ -643,10 +564,7 @@ exports.thisQuarter = thisQuarter;
643
564
  * @param config - Optional configuration for the filter
644
565
  * @returns A filter instance
645
566
  */
646
- function today(dimension, config) {
647
- return dateRelativeTo(dimension.Days, 0, 1, undefined, config);
648
- }
649
- exports.today = today;
567
+ exports.today = (0, compose_code_utils_js_1.withComposeCodeForFilter)((dimension, config) => (0, exports.dateRelativeTo)(dimension.Days, 0, 1, undefined, config), 'today');
650
568
  // MEASURE-RELATED FILTERS
651
569
  /**
652
570
  * Creates a filter on all measure values matching the provided criteria.
@@ -681,10 +599,7 @@ exports.measureBase = measureBase;
681
599
  * @param config - Optional configuration for the filter
682
600
  * @returns A filter instance
683
601
  */
684
- function measureEquals(measure, value, config) {
685
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.Equals, value, undefined, undefined, config);
686
- }
687
- exports.measureEquals = measureEquals;
602
+ exports.measureEquals = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, value, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.Equals, value, undefined, undefined, config), 'measureEquals');
688
603
  /**
689
604
  * Creates a filter to isolate a measure value greater than to a given number.
690
605
  *
@@ -702,10 +617,7 @@ exports.measureEquals = measureEquals;
702
617
  * @param config - Optional configuration for the filter
703
618
  * @returns A filter instance
704
619
  */
705
- function measureGreaterThan(measure, value, config) {
706
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.FromNotEqual, value, undefined, undefined, config);
707
- }
708
- exports.measureGreaterThan = measureGreaterThan;
620
+ exports.measureGreaterThan = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, value, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.FromNotEqual, value, undefined, undefined, config), 'measureGreaterThan');
709
621
  /**
710
622
  * Creates a filter to isolate a measure value greater than or equal to a given number.
711
623
  *
@@ -723,10 +635,7 @@ exports.measureGreaterThan = measureGreaterThan;
723
635
  * @param config - Optional configuration for the filter
724
636
  * @returns A filter instance
725
637
  */
726
- function measureGreaterThanOrEqual(measure, value, config) {
727
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.From, value, undefined, undefined, config);
728
- }
729
- exports.measureGreaterThanOrEqual = measureGreaterThanOrEqual;
638
+ exports.measureGreaterThanOrEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, value, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.From, value, undefined, undefined, config), 'measureGreaterThanOrEqual');
730
639
  /**
731
640
  * Creates a filter to isolate a measure value less than or equal to a given number.
732
641
  *
@@ -744,10 +653,7 @@ exports.measureGreaterThanOrEqual = measureGreaterThanOrEqual;
744
653
  * @param config - Optional configuration for the filter
745
654
  * @returns A filter instance
746
655
  */
747
- function measureLessThanOrEqual(measure, value, config) {
748
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.To, value, undefined, undefined, config);
749
- }
750
- exports.measureLessThanOrEqual = measureLessThanOrEqual;
656
+ exports.measureLessThanOrEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, value, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.To, value, undefined, undefined, config), 'measureLessThanOrEqual');
751
657
  /**
752
658
  * Creates a filter to isolate a measure value less than a given number.
753
659
  *
@@ -764,10 +670,7 @@ exports.measureLessThanOrEqual = measureLessThanOrEqual;
764
670
  * @param config - Optional configuration for the filter
765
671
  * @returns A filter instance
766
672
  */
767
- function measureLessThan(measure, value, config) {
768
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.ToNotEqual, value, undefined, undefined, config);
769
- }
770
- exports.measureLessThan = measureLessThan;
673
+ exports.measureLessThan = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, value, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.ToNotEqual, value, undefined, undefined, config), 'measureLessThan');
771
674
  /**
772
675
  * Creates a filter to isolate a measure value between or equal to two given numbers.
773
676
  *
@@ -787,10 +690,7 @@ exports.measureLessThan = measureLessThan;
787
690
  * @param config - Optional configuration for the filter
788
691
  * @returns A filter instance
789
692
  */
790
- function measureBetween(measure, valueA, valueB, config) {
791
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.From, valueA, filters_js_1.NumericOperators.To, valueB, config);
792
- }
793
- exports.measureBetween = measureBetween;
693
+ exports.measureBetween = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, valueA, valueB, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.From, valueA, filters_js_1.NumericOperators.To, valueB, config), 'measureBetween');
794
694
  /**
795
695
  * Creates a filter to isolate a measure value between but not equal to two given numbers.
796
696
  *
@@ -810,10 +710,7 @@ exports.measureBetween = measureBetween;
810
710
  * @param config - Optional configuration for the filter
811
711
  * @returns A filter instance
812
712
  */
813
- function measureBetweenNotEqual(measure, valueA, valueB, config) {
814
- return measureBase(measure.attribute, measure, filters_js_1.NumericOperators.FromNotEqual, valueA, filters_js_1.NumericOperators.ToNotEqual, valueB, config);
815
- }
816
- exports.measureBetweenNotEqual = measureBetweenNotEqual;
713
+ exports.measureBetweenNotEqual = (0, compose_code_utils_js_1.withComposeCodeForFilter)((measure, valueA, valueB, config) => measureBase(measure.attribute, measure, filters_js_1.NumericOperators.FromNotEqual, valueA, filters_js_1.NumericOperators.ToNotEqual, valueB, config), 'measureBetweenNotEqual');
817
714
  // RANKING FILTERS
818
715
  /**
819
716
  * Creates a filter to isolate items that rank towards the top for a given measure.
@@ -833,10 +730,7 @@ exports.measureBetweenNotEqual = measureBetweenNotEqual;
833
730
  * @param config - Optional configuration for the filter
834
731
  * @returns A filter instance
835
732
  */
836
- function topRanking(attribute, measure, count, config) {
837
- return new filters_js_1.RankingFilter(attribute, measure, filters_js_1.RankingOperators.Top, count, config);
838
- }
839
- exports.topRanking = topRanking;
733
+ exports.topRanking = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, measure, count, config) => new filters_js_1.RankingFilter(attribute, measure, filters_js_1.RankingOperators.Top, count, config), 'topRanking');
840
734
  /**
841
735
  * Creates a filter to isolate items that rank towards the bottom for a given measure.
842
736
  *
@@ -855,10 +749,7 @@ exports.topRanking = topRanking;
855
749
  * @param config - Optional configuration for the filter
856
750
  * @returns A filter instance
857
751
  */
858
- function bottomRanking(attribute, measure, count, config) {
859
- return new filters_js_1.RankingFilter(attribute, measure, filters_js_1.RankingOperators.Bottom, count, config);
860
- }
861
- exports.bottomRanking = bottomRanking;
752
+ exports.bottomRanking = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, measure, count, config) => new filters_js_1.RankingFilter(attribute, measure, filters_js_1.RankingOperators.Bottom, count, config), 'bottomRanking');
862
753
  const relate = (node) => {
863
754
  if (Array.isArray(node)) {
864
755
  const [first, ...rest] = node;
@@ -895,10 +786,7 @@ const relate = (node) => {
895
786
  * @param config - Optional configuration for the filter
896
787
  * @returns A filter instance
897
788
  */
898
- function cascading(filters, config) {
899
- return new filters_js_1.CascadingFilter(filters, config);
900
- }
901
- exports.cascading = cascading;
789
+ exports.cascading = (0, compose_code_utils_js_1.withComposeCodeForFilter)((filters, config) => new filters_js_1.CascadingFilter(filters, config), 'cascading');
902
790
  /**
903
791
  * Set of logic operators for filter relations construction
904
792
  *
@@ -948,11 +836,11 @@ var logic;
948
836
  * @returns Filter relations
949
837
  * @beta
950
838
  */
951
- logic.and = (left, right) => ({
839
+ logic.and = (0, compose_code_utils_js_1.withComposeCodeForFilterRelations)((left, right) => ({
952
840
  operator: 'AND',
953
841
  left: relate(left),
954
842
  right: relate(right),
955
- });
843
+ }), 'and');
956
844
  /**
957
845
  * Creates an 'OR' filter relations
958
846
  *
@@ -970,11 +858,11 @@ var logic;
970
858
  * @returns Filter relations
971
859
  * @beta
972
860
  */
973
- logic.or = (left, right) => ({
861
+ logic.or = (0, compose_code_utils_js_1.withComposeCodeForFilterRelations)((left, right) => ({
974
862
  operator: 'OR',
975
863
  left: relate(left),
976
864
  right: relate(right),
977
- });
865
+ }), 'or');
978
866
  })(logic = exports.logic || (exports.logic = {}));
979
867
  // CUSTOM FILTER
980
868
  /**
@@ -986,7 +874,4 @@ var logic;
986
874
  * @returns A filter instance
987
875
  * @internal
988
876
  */
989
- function customFilter(attribute, jaql, config) {
990
- return new filters_js_1.CustomFilter(attribute, jaql, config);
991
- }
992
- exports.customFilter = customFilter;
877
+ exports.customFilter = (0, compose_code_utils_js_1.withComposeCodeForFilter)((attribute, jaql, config) => new filters_js_1.CustomFilter(attribute, jaql, config), 'customFilter');
@@ -104,11 +104,8 @@ function combineFiltersAndRelations(filters, relations) {
104
104
  return filters.find((filter) => filter.config.guid === node.instanceid);
105
105
  }
106
106
  if (isRelationsRule(node)) {
107
- return {
108
- left: traverse(node.left),
109
- right: traverse(node.right),
110
- operator: node.operator,
111
- };
107
+ const func = node.operator === 'AND' ? index_js_1.filterFactory.logic.and : index_js_1.filterFactory.logic.or;
108
+ return func(traverse(node.left), traverse(node.right));
112
109
  }
113
110
  throw new UnknownRelationsNodeError();
114
111
  }