@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.
- package/dist/cjs/dimensional-model/analytics/factory.d.ts +10 -10
- package/dist/cjs/dimensional-model/analytics/factory.js +15 -16
- package/dist/cjs/dimensional-model/attributes.d.ts +4 -4
- package/dist/cjs/dimensional-model/attributes.js +21 -7
- package/dist/cjs/dimensional-model/base.d.ts +3 -3
- package/dist/cjs/dimensional-model/base.js +7 -4
- package/dist/cjs/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/cjs/dimensional-model/compose-code-utils.js +127 -0
- package/dist/cjs/dimensional-model/consts.d.ts +1 -0
- package/dist/cjs/dimensional-model/consts.js +4 -0
- package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +5 -5
- package/dist/cjs/dimensional-model/dimensions/dimensions.js +25 -16
- package/dist/cjs/dimensional-model/filters/factory.d.ts +41 -41
- package/dist/cjs/dimensional-model/filters/factory.js +53 -168
- package/dist/cjs/dimensional-model/filters/filter-relations.js +2 -5
- package/dist/cjs/dimensional-model/filters/filters.d.ts +39 -23
- package/dist/cjs/dimensional-model/filters/filters.js +102 -52
- package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +28 -26
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
- package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/cjs/dimensional-model/interfaces.d.ts +9 -7
- package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/cjs/dimensional-model/jaql-element.js +53 -1
- package/dist/cjs/dimensional-model/measures/factory.d.ts +45 -52
- package/dist/cjs/dimensional-model/measures/factory.js +55 -184
- package/dist/cjs/dimensional-model/measures/measures.d.ts +9 -9
- package/dist/cjs/dimensional-model/measures/measures.js +31 -29
- package/dist/cjs/dimensional-model/types.d.ts +25 -2
- package/dist/cjs/utils.d.ts +26 -19
- package/dist/cjs/utils.js +85 -41
- package/dist/dimensional-model/analytics/factory.d.ts +10 -10
- package/dist/dimensional-model/analytics/factory.js +15 -14
- package/dist/dimensional-model/attributes.d.ts +4 -4
- package/dist/dimensional-model/attributes.js +21 -7
- package/dist/dimensional-model/base.d.ts +3 -3
- package/dist/dimensional-model/base.js +7 -4
- package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
- package/dist/dimensional-model/compose-code-utils.js +119 -0
- package/dist/dimensional-model/consts.d.ts +1 -0
- package/dist/dimensional-model/consts.js +1 -0
- package/dist/dimensional-model/dimensions/dimensions.d.ts +5 -5
- package/dist/dimensional-model/dimensions/dimensions.js +26 -17
- package/dist/dimensional-model/filters/factory.d.ts +41 -41
- package/dist/dimensional-model/filters/factory.js +51 -125
- package/dist/dimensional-model/filters/filter-relations.js +3 -6
- package/dist/dimensional-model/filters/filters.d.ts +39 -23
- package/dist/dimensional-model/filters/filters.js +102 -52
- package/dist/dimensional-model/filters/utils/attribute-measure-util.js +6 -14
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +28 -26
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +9 -15
- package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
- package/dist/dimensional-model/interfaces.d.ts +9 -7
- package/dist/dimensional-model/jaql-element.d.ts +13 -1
- package/dist/dimensional-model/jaql-element.js +52 -1
- package/dist/dimensional-model/measures/factory.d.ts +45 -52
- package/dist/dimensional-model/measures/factory.js +54 -141
- package/dist/dimensional-model/measures/measures.d.ts +9 -9
- package/dist/dimensional-model/measures/measures.js +31 -29
- package/dist/dimensional-model/types.d.ts +25 -2
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +26 -19
- package/dist/utils.js +63 -44
- package/package.json +3 -3
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
- package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
- package/dist/dimensional-model/filters/utils/filter-code-util.js +0 -77
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
/* eslint-disable max-params */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-shadow */
|
|
4
|
+
import { withComposeCodeForFilter, withComposeCodeForFilterRelations, } from '../compose-code-utils.js';
|
|
1
5
|
import { CascadingFilter, CustomFilter, DateOperators, DateRangeFilter, ExcludeFilter, LogicalAttributeFilter, LogicalOperators, MeasureFilter, MembersFilter, NumericFilter, NumericOperators, RankingFilter, RankingOperators, RelativeDateFilter, TextFilter, TextOperators, } from './filters.js';
|
|
2
6
|
// LOGICAL FILTERS
|
|
3
7
|
/**
|
|
@@ -19,9 +23,7 @@ import { CascadingFilter, CustomFilter, DateOperators, DateRangeFilter, ExcludeF
|
|
|
19
23
|
* @param config - Optional configuration for the filter
|
|
20
24
|
* @returns A filter instance
|
|
21
25
|
*/
|
|
22
|
-
export
|
|
23
|
-
return new LogicalAttributeFilter(filters, LogicalOperators.Union, config);
|
|
24
|
-
}
|
|
26
|
+
export const union = withComposeCodeForFilter((filters, config) => new LogicalAttributeFilter(filters, LogicalOperators.Union, config), 'union');
|
|
25
27
|
/**
|
|
26
28
|
* Creates a filter representing the intersection of multiple filters on the same attribute. The resulting
|
|
27
29
|
* intersection filter filters on items that match all of the given filters.
|
|
@@ -41,9 +43,7 @@ export function union(filters, config) {
|
|
|
41
43
|
* @param config - Optional configuration for the filter
|
|
42
44
|
* @returns A filter instance
|
|
43
45
|
*/
|
|
44
|
-
export
|
|
45
|
-
return new LogicalAttributeFilter(filters, LogicalOperators.Intersection, config);
|
|
46
|
-
}
|
|
46
|
+
export const intersection = withComposeCodeForFilter((filters, config) => new LogicalAttributeFilter(filters, LogicalOperators.Intersection, config), 'intersection');
|
|
47
47
|
/**
|
|
48
48
|
* Creates a filter that excludes items matching the given filter
|
|
49
49
|
* from all items or from items matching the optional input filter.
|
|
@@ -70,9 +70,7 @@ export function intersection(filters, config) {
|
|
|
70
70
|
* @returns A filter representing an exclusion of the given filter
|
|
71
71
|
* from all attribute members or from the optional input filter
|
|
72
72
|
*/
|
|
73
|
-
export
|
|
74
|
-
return new ExcludeFilter(filter, input, config);
|
|
75
|
-
}
|
|
73
|
+
export const exclude = withComposeCodeForFilter((filter, input, config) => new ExcludeFilter(filter, input, config), 'exclude');
|
|
76
74
|
// TEXT / NUMERIC FILTERS
|
|
77
75
|
/**
|
|
78
76
|
* Creates a filter to isolate attribute values that do not contain a specified string.
|
|
@@ -93,9 +91,7 @@ export function exclude(filter, input, config) {
|
|
|
93
91
|
* @param config - Optional configuration for the filter
|
|
94
92
|
* @returns A filter instance
|
|
95
93
|
*/
|
|
96
|
-
export
|
|
97
|
-
return new TextFilter(attribute, TextOperators.DoesntContain, value, config);
|
|
98
|
-
}
|
|
94
|
+
export const doesntContain = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.DoesntContain, value, config), 'doesntContain');
|
|
99
95
|
/**
|
|
100
96
|
* Creates a filter to isolate attribute values that do not end with a specified string.
|
|
101
97
|
*
|
|
@@ -115,9 +111,7 @@ export function doesntContain(attribute, value, config) {
|
|
|
115
111
|
* @param config - Optional configuration for the filter
|
|
116
112
|
* @returns A filter instance
|
|
117
113
|
*/
|
|
118
|
-
export
|
|
119
|
-
return new TextFilter(attribute, TextOperators.DoesntEndWith, value, config);
|
|
120
|
-
}
|
|
114
|
+
export const doesntEndWith = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.DoesntEndWith, value, config), 'doesntEndWith');
|
|
121
115
|
/**
|
|
122
116
|
* Creates a filter to isolate attribute values that do not start with a specified string.
|
|
123
117
|
*
|
|
@@ -137,9 +131,7 @@ export function doesntEndWith(attribute, value, config) {
|
|
|
137
131
|
* @param config - Optional configuration for the filter
|
|
138
132
|
* @returns A filter instance
|
|
139
133
|
*/
|
|
140
|
-
export
|
|
141
|
-
return new TextFilter(attribute, TextOperators.DoesntStartWith, value, config);
|
|
142
|
-
}
|
|
134
|
+
export const doesntStartWith = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.DoesntStartWith, value, config), 'doesntStartWith');
|
|
143
135
|
/**
|
|
144
136
|
* Creates a filter to isolate attribute values that contain a specified string.
|
|
145
137
|
*
|
|
@@ -159,9 +151,7 @@ export function doesntStartWith(attribute, value, config) {
|
|
|
159
151
|
* @param config - Optional configuration for the filter
|
|
160
152
|
* @returns A filter instance
|
|
161
153
|
*/
|
|
162
|
-
export
|
|
163
|
-
return new TextFilter(attribute, TextOperators.Contains, value, config);
|
|
164
|
-
}
|
|
154
|
+
export const contains = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.Contains, value, config), 'contains');
|
|
165
155
|
/**
|
|
166
156
|
* Creates a filter to isolate attribute values that end with a specified string.
|
|
167
157
|
*
|
|
@@ -181,9 +171,7 @@ export function contains(attribute, value, config) {
|
|
|
181
171
|
* @param config - Optional configuration for the filter
|
|
182
172
|
* @returns A filter instance
|
|
183
173
|
*/
|
|
184
|
-
export
|
|
185
|
-
return new TextFilter(attribute, TextOperators.EndsWith, value, config);
|
|
186
|
-
}
|
|
174
|
+
export const endsWith = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.EndsWith, value, config), 'endsWith');
|
|
187
175
|
/**
|
|
188
176
|
* Creates a filter to isolate attribute values that start with a specified string.
|
|
189
177
|
*
|
|
@@ -203,9 +191,7 @@ export function endsWith(attribute, value, config) {
|
|
|
203
191
|
* @param config - Optional configuration for the filter
|
|
204
192
|
* @returns A filter instance
|
|
205
193
|
*/
|
|
206
|
-
export
|
|
207
|
-
return new TextFilter(attribute, TextOperators.StartsWith, value, config);
|
|
208
|
-
}
|
|
194
|
+
export const startsWith = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.StartsWith, value, config), 'startsWith');
|
|
209
195
|
/**
|
|
210
196
|
* Creates a filter to isolate attribute values that match a specified string pattern.
|
|
211
197
|
*
|
|
@@ -230,9 +216,7 @@ export function startsWith(attribute, value, config) {
|
|
|
230
216
|
* @param config - Optional configuration for the filter
|
|
231
217
|
* @returns A filter instance
|
|
232
218
|
*/
|
|
233
|
-
export
|
|
234
|
-
return new TextFilter(attribute, TextOperators.Like, value, config);
|
|
235
|
-
}
|
|
219
|
+
export const like = withComposeCodeForFilter((attribute, value, config) => new TextFilter(attribute, TextOperators.Like, value, config), 'like');
|
|
236
220
|
/**
|
|
237
221
|
* Creates a filter to isolate attribute values that do not equal a specified string or number.
|
|
238
222
|
*
|
|
@@ -252,14 +236,14 @@ export function like(attribute, value, config) {
|
|
|
252
236
|
* @param config - Optional configuration for the filter
|
|
253
237
|
* @returns A filter instance
|
|
254
238
|
*/
|
|
255
|
-
export
|
|
239
|
+
export const doesntEqual = withComposeCodeForFilter((attribute, value, config) => {
|
|
256
240
|
if (typeof value === 'string') {
|
|
257
241
|
return new TextFilter(attribute, TextOperators.DoesntEqual, value, config);
|
|
258
242
|
}
|
|
259
243
|
else {
|
|
260
244
|
return numeric(attribute, NumericOperators.DoesntEqual, value, undefined, undefined, config);
|
|
261
245
|
}
|
|
262
|
-
}
|
|
246
|
+
}, 'doesntEqual');
|
|
263
247
|
/**
|
|
264
248
|
* Creates a filter to isolate attribute values that equal a specified string or number.
|
|
265
249
|
*
|
|
@@ -279,14 +263,14 @@ export function doesntEqual(attribute, value, config) {
|
|
|
279
263
|
* @param config - Optional configuration for the filter
|
|
280
264
|
* @returns A filter instance
|
|
281
265
|
*/
|
|
282
|
-
export
|
|
266
|
+
export const equals = withComposeCodeForFilter((attribute, value, config) => {
|
|
283
267
|
if (typeof value === 'string') {
|
|
284
268
|
return new TextFilter(attribute, TextOperators.Equals, value, config);
|
|
285
269
|
}
|
|
286
270
|
else {
|
|
287
271
|
return numeric(attribute, NumericOperators.Equals, value, undefined, undefined, config);
|
|
288
272
|
}
|
|
289
|
-
}
|
|
273
|
+
}, 'equals');
|
|
290
274
|
/**
|
|
291
275
|
* Creates a filter to isolate attribute values strictly greater than a specified number.
|
|
292
276
|
*
|
|
@@ -300,9 +284,7 @@ export function equals(attribute, value, config) {
|
|
|
300
284
|
* @param config - Optional configuration for the filter
|
|
301
285
|
* @returns A filter instance
|
|
302
286
|
*/
|
|
303
|
-
export
|
|
304
|
-
return numeric(attribute, NumericOperators.FromNotEqual, value, undefined, undefined, config);
|
|
305
|
-
}
|
|
287
|
+
export const greaterThan = withComposeCodeForFilter((attribute, value, config) => numeric(attribute, NumericOperators.FromNotEqual, value, undefined, undefined, config), 'greaterThan');
|
|
306
288
|
/**
|
|
307
289
|
* Creates a filter to isolate attribute values greater than or equal to a specified number.
|
|
308
290
|
*
|
|
@@ -316,9 +298,7 @@ export function greaterThan(attribute, value, config) {
|
|
|
316
298
|
* @param config - Optional configuration for the filter
|
|
317
299
|
* @returns A filter instance
|
|
318
300
|
*/
|
|
319
|
-
export
|
|
320
|
-
return numeric(attribute, NumericOperators.From, value, undefined, undefined, config);
|
|
321
|
-
}
|
|
301
|
+
export const greaterThanOrEqual = withComposeCodeForFilter((attribute, value, config) => numeric(attribute, NumericOperators.From, value, undefined, undefined, config), 'greaterThanOrEqual');
|
|
322
302
|
/**
|
|
323
303
|
* Creates a filter to isolate attribute values strictly less than a specified number.
|
|
324
304
|
*
|
|
@@ -332,9 +312,7 @@ export function greaterThanOrEqual(attribute, value, config) {
|
|
|
332
312
|
* @param config - Optional configuration for the filter
|
|
333
313
|
* @returns A filter instance
|
|
334
314
|
*/
|
|
335
|
-
export
|
|
336
|
-
return numeric(attribute, NumericOperators.ToNotEqual, value, undefined, undefined, config);
|
|
337
|
-
}
|
|
315
|
+
export const lessThan = withComposeCodeForFilter((attribute, value, config) => numeric(attribute, NumericOperators.ToNotEqual, value, undefined, undefined, config), 'lessThan');
|
|
338
316
|
/**
|
|
339
317
|
* Creates a filter to isolate attribute values less than or equal to a specified number.
|
|
340
318
|
*
|
|
@@ -348,9 +326,7 @@ export function lessThan(attribute, value, config) {
|
|
|
348
326
|
* @param config - Optional configuration for the filter
|
|
349
327
|
* @returns A filter instance
|
|
350
328
|
*/
|
|
351
|
-
export
|
|
352
|
-
return numeric(attribute, NumericOperators.To, value, undefined, undefined, config);
|
|
353
|
-
}
|
|
329
|
+
export const lessThanOrEqual = withComposeCodeForFilter((attribute, value, config) => numeric(attribute, NumericOperators.To, value, undefined, undefined, config), 'lessThanOrEqual');
|
|
354
330
|
/**
|
|
355
331
|
* Creates a filter to isolate attribute values within or exactly matching two specified numerical boundaries.
|
|
356
332
|
*
|
|
@@ -365,9 +341,7 @@ export function lessThanOrEqual(attribute, value, config) {
|
|
|
365
341
|
* @param config - Optional configuration for the filter
|
|
366
342
|
* @returns A filter instance
|
|
367
343
|
*/
|
|
368
|
-
export
|
|
369
|
-
return numeric(attribute, NumericOperators.From, valueA, NumericOperators.To, valueB, config);
|
|
370
|
-
}
|
|
344
|
+
export const between = withComposeCodeForFilter((attribute, valueA, valueB, config) => numeric(attribute, NumericOperators.From, valueA, NumericOperators.To, valueB, config), 'between');
|
|
371
345
|
/**
|
|
372
346
|
* Creates a filter that isolates attribute values strictly within two specified numerical boundaries.
|
|
373
347
|
*
|
|
@@ -382,9 +356,7 @@ export function between(attribute, valueA, valueB, config) {
|
|
|
382
356
|
* @param config - Optional configuration for the filter
|
|
383
357
|
* @returns A filter instance
|
|
384
358
|
*/
|
|
385
|
-
export
|
|
386
|
-
return numeric(attribute, NumericOperators.FromNotEqual, valueA, NumericOperators.ToNotEqual, valueB, config);
|
|
387
|
-
}
|
|
359
|
+
export const betweenNotEqual = withComposeCodeForFilter((attribute, valueA, valueB, config) => numeric(attribute, NumericOperators.FromNotEqual, valueA, NumericOperators.ToNotEqual, valueB, config), 'betweenNotEqual');
|
|
388
360
|
/**
|
|
389
361
|
* Creates a custom numeric filter that filters for given attribute values.
|
|
390
362
|
*
|
|
@@ -408,9 +380,7 @@ export function betweenNotEqual(attribute, valueA, valueB, config) {
|
|
|
408
380
|
* @param config - Optional configuration for the filter
|
|
409
381
|
* @returns A custom numeric filter of the given attribute
|
|
410
382
|
*/
|
|
411
|
-
export
|
|
412
|
-
return new NumericFilter(attribute, operatorA, valueA, operatorB, valueB, config);
|
|
413
|
-
}
|
|
383
|
+
export const numeric = withComposeCodeForFilter((attribute, operatorA, valueA, operatorB, valueB, config) => new NumericFilter(attribute, operatorA, valueA, operatorB, valueB, config), 'numeric');
|
|
414
384
|
/**
|
|
415
385
|
* Creates a filter to isolate attribute values that match any of the specified strings.
|
|
416
386
|
*
|
|
@@ -428,9 +398,7 @@ export function numeric(attribute, operatorA, valueA, operatorB, valueB, config)
|
|
|
428
398
|
* @returns A filter instance
|
|
429
399
|
* @shortDescription Creates filter on attribute to match certain string values
|
|
430
400
|
*/
|
|
431
|
-
export
|
|
432
|
-
return new MembersFilter(attribute, members, config);
|
|
433
|
-
}
|
|
401
|
+
export const members = withComposeCodeForFilter((attribute, members, config) => new MembersFilter(attribute, members, config), 'members');
|
|
434
402
|
// DATE FILTERS
|
|
435
403
|
/**
|
|
436
404
|
* Creates a filter to isolate date values starting from and including the given date and level.
|
|
@@ -445,9 +413,7 @@ export function members(attribute, members, config) {
|
|
|
445
413
|
* @param config - Optional configuration for the filter
|
|
446
414
|
* @returns A filter instance
|
|
447
415
|
*/
|
|
448
|
-
export
|
|
449
|
-
return dateRange(level, from, undefined, config);
|
|
450
|
-
}
|
|
416
|
+
export const dateFrom = withComposeCodeForFilter((level, from, config) => dateRange(level, from, undefined, config), 'dateFrom');
|
|
451
417
|
/**
|
|
452
418
|
* Creates a filter to isolate items up until and including the given date and level.
|
|
453
419
|
*
|
|
@@ -461,9 +427,7 @@ export function dateFrom(level, from, config) {
|
|
|
461
427
|
* @param config - Optional configuration for the filter
|
|
462
428
|
* @returns A filter instance
|
|
463
429
|
*/
|
|
464
|
-
export
|
|
465
|
-
return dateRange(level, undefined, to, config);
|
|
466
|
-
}
|
|
430
|
+
export const dateTo = withComposeCodeForFilter((level, to, config) => dateRange(level, undefined, to, config), 'dateTo');
|
|
467
431
|
/**
|
|
468
432
|
* Creates a filter to isolate items between and including the given dates and level.
|
|
469
433
|
*
|
|
@@ -478,9 +442,7 @@ export function dateTo(level, to, config) {
|
|
|
478
442
|
* @param config - Optional configuration for the filter
|
|
479
443
|
* @returns A filter instance
|
|
480
444
|
*/
|
|
481
|
-
export
|
|
482
|
-
return new DateRangeFilter(level, from, to, config);
|
|
483
|
-
}
|
|
445
|
+
export const dateRange = withComposeCodeForFilter((level, from, to, config) => new DateRangeFilter(level, from, to, config), 'dateRange');
|
|
484
446
|
/**
|
|
485
447
|
* Creates a filter to isolate items with a date dimension value within a specified range after a
|
|
486
448
|
* given date and level.
|
|
@@ -513,9 +475,7 @@ export function dateRange(level, from, to, config) {
|
|
|
513
475
|
* @param config - Optional configuration for the filter
|
|
514
476
|
* @returns A filter instance
|
|
515
477
|
*/
|
|
516
|
-
export
|
|
517
|
-
return new RelativeDateFilter(level, offset, count, undefined, anchor, config);
|
|
518
|
-
}
|
|
478
|
+
export const dateRelative = withComposeCodeForFilter((level, offset, count, anchor, config) => new RelativeDateFilter(level, offset, count, undefined, anchor, config), 'dateRelative');
|
|
519
479
|
/**
|
|
520
480
|
* Creates a filter to isolate items with a date dimension value within a specified range after a
|
|
521
481
|
* given date and level.
|
|
@@ -532,9 +492,7 @@ export function dateRelative(level, offset, count, anchor, config) {
|
|
|
532
492
|
* @param config - Optional configuration for the filter
|
|
533
493
|
* @returns A filter instance
|
|
534
494
|
*/
|
|
535
|
-
export
|
|
536
|
-
return new RelativeDateFilter(level, offset, count, DateOperators.Next, anchor, config);
|
|
537
|
-
}
|
|
495
|
+
export const dateRelativeFrom = withComposeCodeForFilter((level, offset, count, anchor, config) => new RelativeDateFilter(level, offset, count, DateOperators.Next, anchor, config), 'dateRelativeFrom');
|
|
538
496
|
/**
|
|
539
497
|
* Creates a filter to isolate items with a date dimension value within a specified range before a
|
|
540
498
|
* given date and level.
|
|
@@ -551,9 +509,7 @@ export function dateRelativeFrom(level, offset, count, anchor, config) {
|
|
|
551
509
|
* @param config - Optional configuration for the filter
|
|
552
510
|
* @returns A filter instance
|
|
553
511
|
*/
|
|
554
|
-
export
|
|
555
|
-
return new RelativeDateFilter(level, offset, count, DateOperators.Last, anchor, config);
|
|
556
|
-
}
|
|
512
|
+
export const dateRelativeTo = withComposeCodeForFilter((level, offset, count, anchor, config) => new RelativeDateFilter(level, offset, count, DateOperators.Last, anchor, config), 'dateRelativeTo');
|
|
557
513
|
/**
|
|
558
514
|
* Creates a filter to isolate items with a date dimension value in the current calendar year.
|
|
559
515
|
*
|
|
@@ -566,9 +522,7 @@ export function dateRelativeTo(level, offset, count, anchor, config) {
|
|
|
566
522
|
* @param config - Optional configuration for the filter
|
|
567
523
|
* @returns A filter instance
|
|
568
524
|
*/
|
|
569
|
-
export
|
|
570
|
-
return dateRelativeTo(dimension.Years, 0, 1, undefined, config);
|
|
571
|
-
}
|
|
525
|
+
export const thisYear = withComposeCodeForFilter((dimension, config) => dateRelativeTo(dimension.Years, 0, 1, undefined, config), 'thisYear');
|
|
572
526
|
/**
|
|
573
527
|
* Creates a filter to isolate items with a date dimension value in the current calendar month.
|
|
574
528
|
*
|
|
@@ -581,9 +535,7 @@ export function thisYear(dimension, config) {
|
|
|
581
535
|
* @param config - Optional configuration for the filter
|
|
582
536
|
* @returns A filter instance
|
|
583
537
|
*/
|
|
584
|
-
export
|
|
585
|
-
return dateRelativeTo(dimension.Months, 0, 1, undefined, config);
|
|
586
|
-
}
|
|
538
|
+
export const thisMonth = withComposeCodeForFilter((dimension, config) => dateRelativeTo(dimension.Months, 0, 1, undefined, config), 'thisMonth');
|
|
587
539
|
/**
|
|
588
540
|
* Creates a filter to isolate items with a date dimension value in the current quarter.
|
|
589
541
|
*
|
|
@@ -596,9 +548,7 @@ export function thisMonth(dimension, config) {
|
|
|
596
548
|
* @param config - Optional configuration for the filter
|
|
597
549
|
* @returns A filter instance
|
|
598
550
|
*/
|
|
599
|
-
export
|
|
600
|
-
return dateRelativeTo(dimension.Quarters, 0, 1, undefined, config);
|
|
601
|
-
}
|
|
551
|
+
export const thisQuarter = withComposeCodeForFilter((dimension, config) => dateRelativeTo(dimension.Quarters, 0, 1, undefined, config), 'thisQuarter');
|
|
602
552
|
/**
|
|
603
553
|
* Creates a filter to isolate items with a date dimension value of the current date.
|
|
604
554
|
*
|
|
@@ -611,9 +561,7 @@ export function thisQuarter(dimension, config) {
|
|
|
611
561
|
* @param config - Optional configuration for the filter
|
|
612
562
|
* @returns A filter instance
|
|
613
563
|
*/
|
|
614
|
-
export
|
|
615
|
-
return dateRelativeTo(dimension.Days, 0, 1, undefined, config);
|
|
616
|
-
}
|
|
564
|
+
export const today = withComposeCodeForFilter((dimension, config) => dateRelativeTo(dimension.Days, 0, 1, undefined, config), 'today');
|
|
617
565
|
// MEASURE-RELATED FILTERS
|
|
618
566
|
/**
|
|
619
567
|
* Creates a filter on all measure values matching the provided criteria.
|
|
@@ -647,9 +595,7 @@ export function measureBase(attribute, measure, operatorA, valueA, operatorB, va
|
|
|
647
595
|
* @param config - Optional configuration for the filter
|
|
648
596
|
* @returns A filter instance
|
|
649
597
|
*/
|
|
650
|
-
export
|
|
651
|
-
return measureBase(measure.attribute, measure, NumericOperators.Equals, value, undefined, undefined, config);
|
|
652
|
-
}
|
|
598
|
+
export const measureEquals = withComposeCodeForFilter((measure, value, config) => measureBase(measure.attribute, measure, NumericOperators.Equals, value, undefined, undefined, config), 'measureEquals');
|
|
653
599
|
/**
|
|
654
600
|
* Creates a filter to isolate a measure value greater than to a given number.
|
|
655
601
|
*
|
|
@@ -667,9 +613,7 @@ export function measureEquals(measure, value, config) {
|
|
|
667
613
|
* @param config - Optional configuration for the filter
|
|
668
614
|
* @returns A filter instance
|
|
669
615
|
*/
|
|
670
|
-
export
|
|
671
|
-
return measureBase(measure.attribute, measure, NumericOperators.FromNotEqual, value, undefined, undefined, config);
|
|
672
|
-
}
|
|
616
|
+
export const measureGreaterThan = withComposeCodeForFilter((measure, value, config) => measureBase(measure.attribute, measure, NumericOperators.FromNotEqual, value, undefined, undefined, config), 'measureGreaterThan');
|
|
673
617
|
/**
|
|
674
618
|
* Creates a filter to isolate a measure value greater than or equal to a given number.
|
|
675
619
|
*
|
|
@@ -687,9 +631,7 @@ export function measureGreaterThan(measure, value, config) {
|
|
|
687
631
|
* @param config - Optional configuration for the filter
|
|
688
632
|
* @returns A filter instance
|
|
689
633
|
*/
|
|
690
|
-
export
|
|
691
|
-
return measureBase(measure.attribute, measure, NumericOperators.From, value, undefined, undefined, config);
|
|
692
|
-
}
|
|
634
|
+
export const measureGreaterThanOrEqual = withComposeCodeForFilter((measure, value, config) => measureBase(measure.attribute, measure, NumericOperators.From, value, undefined, undefined, config), 'measureGreaterThanOrEqual');
|
|
693
635
|
/**
|
|
694
636
|
* Creates a filter to isolate a measure value less than or equal to a given number.
|
|
695
637
|
*
|
|
@@ -707,9 +649,7 @@ export function measureGreaterThanOrEqual(measure, value, config) {
|
|
|
707
649
|
* @param config - Optional configuration for the filter
|
|
708
650
|
* @returns A filter instance
|
|
709
651
|
*/
|
|
710
|
-
export
|
|
711
|
-
return measureBase(measure.attribute, measure, NumericOperators.To, value, undefined, undefined, config);
|
|
712
|
-
}
|
|
652
|
+
export const measureLessThanOrEqual = withComposeCodeForFilter((measure, value, config) => measureBase(measure.attribute, measure, NumericOperators.To, value, undefined, undefined, config), 'measureLessThanOrEqual');
|
|
713
653
|
/**
|
|
714
654
|
* Creates a filter to isolate a measure value less than a given number.
|
|
715
655
|
*
|
|
@@ -726,9 +666,7 @@ export function measureLessThanOrEqual(measure, value, config) {
|
|
|
726
666
|
* @param config - Optional configuration for the filter
|
|
727
667
|
* @returns A filter instance
|
|
728
668
|
*/
|
|
729
|
-
export
|
|
730
|
-
return measureBase(measure.attribute, measure, NumericOperators.ToNotEqual, value, undefined, undefined, config);
|
|
731
|
-
}
|
|
669
|
+
export const measureLessThan = withComposeCodeForFilter((measure, value, config) => measureBase(measure.attribute, measure, NumericOperators.ToNotEqual, value, undefined, undefined, config), 'measureLessThan');
|
|
732
670
|
/**
|
|
733
671
|
* Creates a filter to isolate a measure value between or equal to two given numbers.
|
|
734
672
|
*
|
|
@@ -748,9 +686,7 @@ export function measureLessThan(measure, value, config) {
|
|
|
748
686
|
* @param config - Optional configuration for the filter
|
|
749
687
|
* @returns A filter instance
|
|
750
688
|
*/
|
|
751
|
-
export
|
|
752
|
-
return measureBase(measure.attribute, measure, NumericOperators.From, valueA, NumericOperators.To, valueB, config);
|
|
753
|
-
}
|
|
689
|
+
export const measureBetween = withComposeCodeForFilter((measure, valueA, valueB, config) => measureBase(measure.attribute, measure, NumericOperators.From, valueA, NumericOperators.To, valueB, config), 'measureBetween');
|
|
754
690
|
/**
|
|
755
691
|
* Creates a filter to isolate a measure value between but not equal to two given numbers.
|
|
756
692
|
*
|
|
@@ -770,9 +706,7 @@ export function measureBetween(measure, valueA, valueB, config) {
|
|
|
770
706
|
* @param config - Optional configuration for the filter
|
|
771
707
|
* @returns A filter instance
|
|
772
708
|
*/
|
|
773
|
-
export
|
|
774
|
-
return measureBase(measure.attribute, measure, NumericOperators.FromNotEqual, valueA, NumericOperators.ToNotEqual, valueB, config);
|
|
775
|
-
}
|
|
709
|
+
export const measureBetweenNotEqual = withComposeCodeForFilter((measure, valueA, valueB, config) => measureBase(measure.attribute, measure, NumericOperators.FromNotEqual, valueA, NumericOperators.ToNotEqual, valueB, config), 'measureBetweenNotEqual');
|
|
776
710
|
// RANKING FILTERS
|
|
777
711
|
/**
|
|
778
712
|
* Creates a filter to isolate items that rank towards the top for a given measure.
|
|
@@ -792,9 +726,7 @@ export function measureBetweenNotEqual(measure, valueA, valueB, config) {
|
|
|
792
726
|
* @param config - Optional configuration for the filter
|
|
793
727
|
* @returns A filter instance
|
|
794
728
|
*/
|
|
795
|
-
export
|
|
796
|
-
return new RankingFilter(attribute, measure, RankingOperators.Top, count, config);
|
|
797
|
-
}
|
|
729
|
+
export const topRanking = withComposeCodeForFilter((attribute, measure, count, config) => new RankingFilter(attribute, measure, RankingOperators.Top, count, config), 'topRanking');
|
|
798
730
|
/**
|
|
799
731
|
* Creates a filter to isolate items that rank towards the bottom for a given measure.
|
|
800
732
|
*
|
|
@@ -813,9 +745,7 @@ export function topRanking(attribute, measure, count, config) {
|
|
|
813
745
|
* @param config - Optional configuration for the filter
|
|
814
746
|
* @returns A filter instance
|
|
815
747
|
*/
|
|
816
|
-
export
|
|
817
|
-
return new RankingFilter(attribute, measure, RankingOperators.Bottom, count, config);
|
|
818
|
-
}
|
|
748
|
+
export const bottomRanking = withComposeCodeForFilter((attribute, measure, count, config) => new RankingFilter(attribute, measure, RankingOperators.Bottom, count, config), 'bottomRanking');
|
|
819
749
|
const relate = (node) => {
|
|
820
750
|
if (Array.isArray(node)) {
|
|
821
751
|
const [first, ...rest] = node;
|
|
@@ -852,9 +782,7 @@ const relate = (node) => {
|
|
|
852
782
|
* @param config - Optional configuration for the filter
|
|
853
783
|
* @returns A filter instance
|
|
854
784
|
*/
|
|
855
|
-
export
|
|
856
|
-
return new CascadingFilter(filters, config);
|
|
857
|
-
}
|
|
785
|
+
export const cascading = withComposeCodeForFilter((filters, config) => new CascadingFilter(filters, config), 'cascading');
|
|
858
786
|
/**
|
|
859
787
|
* Set of logic operators for filter relations construction
|
|
860
788
|
*
|
|
@@ -904,11 +832,11 @@ export var logic;
|
|
|
904
832
|
* @returns Filter relations
|
|
905
833
|
* @beta
|
|
906
834
|
*/
|
|
907
|
-
logic.and = (left, right) => ({
|
|
835
|
+
logic.and = withComposeCodeForFilterRelations((left, right) => ({
|
|
908
836
|
operator: 'AND',
|
|
909
837
|
left: relate(left),
|
|
910
838
|
right: relate(right),
|
|
911
|
-
});
|
|
839
|
+
}), 'and');
|
|
912
840
|
/**
|
|
913
841
|
* Creates an 'OR' filter relations
|
|
914
842
|
*
|
|
@@ -926,11 +854,11 @@ export var logic;
|
|
|
926
854
|
* @returns Filter relations
|
|
927
855
|
* @beta
|
|
928
856
|
*/
|
|
929
|
-
logic.or = (left, right) => ({
|
|
857
|
+
logic.or = withComposeCodeForFilterRelations((left, right) => ({
|
|
930
858
|
operator: 'OR',
|
|
931
859
|
left: relate(left),
|
|
932
860
|
right: relate(right),
|
|
933
|
-
});
|
|
861
|
+
}), 'or');
|
|
934
862
|
})(logic = logic || (logic = {}));
|
|
935
863
|
// CUSTOM FILTER
|
|
936
864
|
/**
|
|
@@ -942,6 +870,4 @@ export var logic;
|
|
|
942
870
|
* @returns A filter instance
|
|
943
871
|
* @internal
|
|
944
872
|
*/
|
|
945
|
-
export
|
|
946
|
-
return new CustomFilter(attribute, jaql, config);
|
|
947
|
-
}
|
|
873
|
+
export const customFilter = withComposeCodeForFilter((attribute, jaql, config) => new CustomFilter(attribute, jaql, config), 'customFilter');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/default-param-last */
|
|
2
2
|
import cloneDeep from 'lodash-es/cloneDeep.js';
|
|
3
3
|
import isArray from 'lodash-es/isArray.js';
|
|
4
|
-
import { DimensionalLevelAttribute, isCascadingFilter, } from '../../index.js';
|
|
4
|
+
import { DimensionalLevelAttribute, filterFactory, isCascadingFilter, } from '../../index.js';
|
|
5
5
|
import { TranslatableError } from '../../translation/translatable-error.js';
|
|
6
6
|
/**
|
|
7
7
|
* Type guard for checking if the provided filters are FilterRelations.
|
|
@@ -94,11 +94,8 @@ export function combineFiltersAndRelations(filters, relations) {
|
|
|
94
94
|
return filters.find((filter) => filter.config.guid === node.instanceid);
|
|
95
95
|
}
|
|
96
96
|
if (isRelationsRule(node)) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
right: traverse(node.right),
|
|
100
|
-
operator: node.operator,
|
|
101
|
-
};
|
|
97
|
+
const func = node.operator === 'AND' ? filterFactory.logic.and : filterFactory.logic.or;
|
|
98
|
+
return func(traverse(node.left), traverse(node.right));
|
|
102
99
|
}
|
|
103
100
|
throw new UnknownRelationsNodeError();
|
|
104
101
|
}
|