@sisense/sdk-data 1.18.1 → 1.20.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/attributes.d.ts +3 -3
- package/dist/cjs/dimensional-model/attributes.js +4 -4
- package/dist/cjs/dimensional-model/base.d.ts +10 -1
- package/dist/cjs/dimensional-model/base.js +11 -1
- package/dist/cjs/dimensional-model/dimensions.js +9 -8
- package/dist/cjs/dimensional-model/filters/factory.d.ts +9 -9
- package/dist/cjs/dimensional-model/filters/factory.js +9 -9
- package/dist/cjs/dimensional-model/filters/filters.d.ts +79 -1
- package/dist/cjs/dimensional-model/filters/filters.js +119 -4
- package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.d.ts +16 -5
- package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +31 -9
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +3 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +1 -1
- package/dist/cjs/dimensional-model/filters/utils/types.d.ts +15 -6
- package/dist/cjs/dimensional-model/interfaces.d.ts +11 -1
- package/dist/cjs/dimensional-model/measures/factory.d.ts +12 -2
- package/dist/cjs/dimensional-model/measures/factory.js +4 -3
- package/dist/cjs/dimensional-model/types.d.ts +13 -3
- package/dist/cjs/utils.d.ts +27 -2
- package/dist/cjs/utils.js +61 -2
- package/dist/dimensional-model/attributes.d.ts +3 -3
- package/dist/dimensional-model/attributes.js +4 -4
- package/dist/dimensional-model/base.d.ts +10 -1
- package/dist/dimensional-model/base.js +11 -1
- package/dist/dimensional-model/dimensions.js +9 -8
- package/dist/dimensional-model/filters/factory.d.ts +9 -9
- package/dist/dimensional-model/filters/factory.js +9 -9
- package/dist/dimensional-model/filters/filters.d.ts +79 -1
- package/dist/dimensional-model/filters/filters.js +107 -3
- package/dist/dimensional-model/filters/utils/attribute-measure-util.d.ts +16 -5
- package/dist/dimensional-model/filters/utils/attribute-measure-util.js +29 -8
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +3 -1
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +1 -1
- package/dist/dimensional-model/filters/utils/types.d.ts +15 -6
- package/dist/dimensional-model/interfaces.d.ts +11 -1
- package/dist/dimensional-model/measures/factory.d.ts +12 -2
- package/dist/dimensional-model/measures/factory.js +3 -3
- package/dist/dimensional-model/types.d.ts +13 -3
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +27 -2
- package/dist/utils.js +56 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Attribute, LevelAttribute } from './interfaces.js';
|
|
2
|
-
import { Sort } from './types.js';
|
|
2
|
+
import { Sort, JaqlDataSource } from './types.js';
|
|
3
3
|
import { DimensionalElement } from './base.js';
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
@@ -11,7 +11,7 @@ export declare const jaqlSimpleColumnType: (datatype: string) => string;
|
|
|
11
11
|
export declare class DimensionalAttribute extends DimensionalElement implements Attribute {
|
|
12
12
|
readonly expression: string;
|
|
13
13
|
protected _sort: Sort;
|
|
14
|
-
constructor(name: string, expression: string, type?: string, desc?: string, sort?: Sort);
|
|
14
|
+
constructor(name: string, expression: string, type?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource);
|
|
15
15
|
/**
|
|
16
16
|
* gets the element's ID
|
|
17
17
|
*/
|
|
@@ -46,7 +46,7 @@ export declare class DimensionalAttribute extends DimensionalElement implements
|
|
|
46
46
|
export declare class DimensionalLevelAttribute extends DimensionalAttribute implements LevelAttribute {
|
|
47
47
|
private _format;
|
|
48
48
|
readonly granularity: string;
|
|
49
|
-
constructor(l: string, expression: string, granularity: string, format?: string, desc?: string, sort?: Sort);
|
|
49
|
+
constructor(l: string, expression: string, granularity: string, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource);
|
|
50
50
|
/**
|
|
51
51
|
* gets the element's ID
|
|
52
52
|
*/
|
|
@@ -13,8 +13,8 @@ exports.jaqlSimpleColumnType = jaqlSimpleColumnType;
|
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
15
|
class DimensionalAttribute extends base_js_1.DimensionalElement {
|
|
16
|
-
constructor(name, expression, type, desc, sort) {
|
|
17
|
-
super(
|
|
16
|
+
constructor(name, expression, type, desc, sort, dataSource) {
|
|
17
|
+
super(name, type || types_js_1.MetadataTypes.Attribute, desc, dataSource);
|
|
18
18
|
this._sort = types_js_1.Sort.None;
|
|
19
19
|
this.expression = expression;
|
|
20
20
|
this._sort = sort || types_js_1.Sort.None;
|
|
@@ -77,8 +77,8 @@ exports.DimensionalAttribute = DimensionalAttribute;
|
|
|
77
77
|
* @internal
|
|
78
78
|
*/
|
|
79
79
|
class DimensionalLevelAttribute extends DimensionalAttribute {
|
|
80
|
-
constructor(l, expression, granularity, format, desc, sort) {
|
|
81
|
-
super(l, expression, types_js_1.MetadataTypes.DateLevel, desc, sort);
|
|
80
|
+
constructor(l, expression, granularity, format, desc, sort, dataSource) {
|
|
81
|
+
super(l, expression, types_js_1.MetadataTypes.DateLevel, desc, sort, dataSource);
|
|
82
82
|
this._format = format;
|
|
83
83
|
this.granularity = granularity;
|
|
84
84
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Element } from './interfaces.js';
|
|
2
|
+
import { JaqlDataSource } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* @internal
|
|
4
5
|
*/
|
|
@@ -7,12 +8,20 @@ export declare abstract class DimensionalElement implements Element {
|
|
|
7
8
|
* @internal
|
|
8
9
|
*/
|
|
9
10
|
private _name;
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
private readonly _dataSource;
|
|
10
15
|
/**
|
|
11
16
|
* Defines the element's name
|
|
12
17
|
*/
|
|
13
18
|
get name(): string;
|
|
14
19
|
set name(value: string);
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Defines the element's data source
|
|
22
|
+
*/
|
|
23
|
+
get dataSource(): JaqlDataSource;
|
|
24
|
+
constructor(name: string, type: string, desc?: string, dataSource?: JaqlDataSource);
|
|
16
25
|
/**
|
|
17
26
|
* gets the element's description
|
|
18
27
|
*/
|
|
@@ -5,10 +5,13 @@ exports.normalizeName = exports.DimensionalElement = void 0;
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
class DimensionalElement {
|
|
8
|
-
constructor(name, type, desc) {
|
|
8
|
+
constructor(name, type, desc, dataSource) {
|
|
9
9
|
this._name = name;
|
|
10
10
|
this.type = type;
|
|
11
11
|
this.description = desc || '';
|
|
12
|
+
if (dataSource) {
|
|
13
|
+
this._dataSource = dataSource;
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
16
|
/**
|
|
14
17
|
* Defines the element's name
|
|
@@ -19,6 +22,12 @@ class DimensionalElement {
|
|
|
19
22
|
set name(value) {
|
|
20
23
|
this._name = value;
|
|
21
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Defines the element's data source
|
|
27
|
+
*/
|
|
28
|
+
get dataSource() {
|
|
29
|
+
return this._dataSource;
|
|
30
|
+
}
|
|
22
31
|
/**
|
|
23
32
|
* Gets a serializable representation of the element
|
|
24
33
|
*/
|
|
@@ -27,6 +36,7 @@ class DimensionalElement {
|
|
|
27
36
|
name: this.name,
|
|
28
37
|
type: this.type,
|
|
29
38
|
desc: this.description,
|
|
39
|
+
dataSource: this.dataSource,
|
|
30
40
|
__serializable: 'DimensionalElement',
|
|
31
41
|
};
|
|
32
42
|
}
|
|
@@ -35,13 +35,14 @@ class DimensionalDimension extends base_js_1.DimensionalElement {
|
|
|
35
35
|
return types_js_1.MetadataTypes.TextDimension;
|
|
36
36
|
}
|
|
37
37
|
getAttachedName(name, expression) {
|
|
38
|
-
let result =
|
|
38
|
+
let result = name;
|
|
39
39
|
// if exists fallback to expression
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
this
|
|
44
|
-
|
|
40
|
+
const normalizedName = (0, base_js_1.normalizeName)(name);
|
|
41
|
+
if (normalizedName === 'id' ||
|
|
42
|
+
normalizedName === 'name' ||
|
|
43
|
+
Object.getOwnPropertyDescriptor(this, normalizedName) !== undefined ||
|
|
44
|
+
this[normalizedName] !== undefined) {
|
|
45
|
+
result = expression;
|
|
45
46
|
}
|
|
46
47
|
return result;
|
|
47
48
|
}
|
|
@@ -49,7 +50,7 @@ class DimensionalDimension extends base_js_1.DimensionalElement {
|
|
|
49
50
|
this._dimensions = dimensions;
|
|
50
51
|
for (let i = 0; i < dimensions.length; i++) {
|
|
51
52
|
const n = this.getAttachedName(dimensions[i].name, dimensions[i].attributes[0].expression);
|
|
52
|
-
this[n] = dimensions[i];
|
|
53
|
+
this[(0, base_js_1.normalizeName)(n)] = dimensions[i];
|
|
53
54
|
if (n != dimensions[i].name) {
|
|
54
55
|
dimensions[i].name = n;
|
|
55
56
|
}
|
|
@@ -59,7 +60,7 @@ class DimensionalDimension extends base_js_1.DimensionalElement {
|
|
|
59
60
|
this._attributes = attributes || [];
|
|
60
61
|
for (let i = 0; i < attributes.length; i++) {
|
|
61
62
|
const n = this.getAttachedName(attributes[i].name, attributes[i].expression);
|
|
62
|
-
this[n] = attributes[i];
|
|
63
|
+
this[(0, base_js_1.normalizeName)(n)] = attributes[i];
|
|
63
64
|
if (attributes[i].name != n) {
|
|
64
65
|
attributes[i].name = n;
|
|
65
66
|
}
|
|
@@ -562,7 +562,7 @@ export declare function measureBase(attribute: Attribute, measure: Measure, oper
|
|
|
562
562
|
* Filter for categories that have an average revenue equal 50 in the Sample ECommerce data model.
|
|
563
563
|
* ```ts
|
|
564
564
|
* filterFactory.measureEquals(
|
|
565
|
-
*
|
|
565
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
566
566
|
* 50
|
|
567
567
|
* )
|
|
568
568
|
* ```
|
|
@@ -580,7 +580,7 @@ export declare function measureEquals(measure: BaseMeasure, value: number, guid?
|
|
|
580
580
|
* to 50 in the Sample ECommerce data model.
|
|
581
581
|
* ```ts
|
|
582
582
|
* filterFactory.measureGreaterThan(
|
|
583
|
-
*
|
|
583
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
584
584
|
* 50
|
|
585
585
|
* )
|
|
586
586
|
* ```
|
|
@@ -598,7 +598,7 @@ export declare function measureGreaterThan(measure: BaseMeasure, value: number,
|
|
|
598
598
|
* or equal to 50 in the Sample ECommerce data model.
|
|
599
599
|
* ```ts
|
|
600
600
|
* filterFactory.measureGreaterThanOrEqual(
|
|
601
|
-
*
|
|
601
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
602
602
|
* 50
|
|
603
603
|
* )
|
|
604
604
|
* ```
|
|
@@ -616,7 +616,7 @@ export declare function measureGreaterThanOrEqual(measure: BaseMeasure, value: n
|
|
|
616
616
|
* or equal to 100 in the Sample ECommerce data model.
|
|
617
617
|
* ```ts
|
|
618
618
|
* filterFactory.measureLessThanOrEqual(
|
|
619
|
-
*
|
|
619
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
620
620
|
* 100
|
|
621
621
|
* )
|
|
622
622
|
* ```
|
|
@@ -633,7 +633,7 @@ export declare function measureLessThanOrEqual(measure: BaseMeasure, value: numb
|
|
|
633
633
|
* Filter for categories that have an average revenue less than 100 in the Sample ECommerce data model.
|
|
634
634
|
* ```ts
|
|
635
635
|
* filterFactory.measureLessThan(
|
|
636
|
-
*
|
|
636
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
637
637
|
* 100
|
|
638
638
|
* )
|
|
639
639
|
* ```
|
|
@@ -651,7 +651,7 @@ export declare function measureLessThan(measure: BaseMeasure, value: number, gui
|
|
|
651
651
|
* or equal to 100 in the Sample ECommerce data model.
|
|
652
652
|
* ```ts
|
|
653
653
|
* filterFactory.measureBetween(
|
|
654
|
-
*
|
|
654
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
655
655
|
* 50,
|
|
656
656
|
* 100
|
|
657
657
|
* )
|
|
@@ -671,7 +671,7 @@ export declare function measureBetween(measure: BaseMeasure, valueA: number, val
|
|
|
671
671
|
* 100 in the Sample ECommerce data model.
|
|
672
672
|
* ```ts
|
|
673
673
|
* filterFactory.measureBetweenNotEqual(
|
|
674
|
-
*
|
|
674
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
675
675
|
* 50,
|
|
676
676
|
* 100
|
|
677
677
|
* )
|
|
@@ -691,7 +691,7 @@ export declare function measureBetweenNotEqual(measure: BaseMeasure, valueA: num
|
|
|
691
691
|
* ```ts
|
|
692
692
|
* filterFactory.topRanking(
|
|
693
693
|
* DM.Commerce.AgeRange,
|
|
694
|
-
*
|
|
694
|
+
* measureFactory.sum(DM.Commerce.Revenue),
|
|
695
695
|
* 3
|
|
696
696
|
* )
|
|
697
697
|
* ```
|
|
@@ -710,7 +710,7 @@ export declare function topRanking(attribute: Attribute, measure: Measure, count
|
|
|
710
710
|
* ```ts
|
|
711
711
|
* filterFactory.bottomRanking(
|
|
712
712
|
* DM.Commerce.AgeRange,
|
|
713
|
-
*
|
|
713
|
+
* measureFactory.sum(DM.Commerce.Revenue),
|
|
714
714
|
* 3
|
|
715
715
|
* )
|
|
716
716
|
* ```
|
|
@@ -672,7 +672,7 @@ exports.measureBase = measureBase;
|
|
|
672
672
|
* Filter for categories that have an average revenue equal 50 in the Sample ECommerce data model.
|
|
673
673
|
* ```ts
|
|
674
674
|
* filterFactory.measureEquals(
|
|
675
|
-
*
|
|
675
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
676
676
|
* 50
|
|
677
677
|
* )
|
|
678
678
|
* ```
|
|
@@ -693,7 +693,7 @@ exports.measureEquals = measureEquals;
|
|
|
693
693
|
* to 50 in the Sample ECommerce data model.
|
|
694
694
|
* ```ts
|
|
695
695
|
* filterFactory.measureGreaterThan(
|
|
696
|
-
*
|
|
696
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
697
697
|
* 50
|
|
698
698
|
* )
|
|
699
699
|
* ```
|
|
@@ -714,7 +714,7 @@ exports.measureGreaterThan = measureGreaterThan;
|
|
|
714
714
|
* or equal to 50 in the Sample ECommerce data model.
|
|
715
715
|
* ```ts
|
|
716
716
|
* filterFactory.measureGreaterThanOrEqual(
|
|
717
|
-
*
|
|
717
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
718
718
|
* 50
|
|
719
719
|
* )
|
|
720
720
|
* ```
|
|
@@ -735,7 +735,7 @@ exports.measureGreaterThanOrEqual = measureGreaterThanOrEqual;
|
|
|
735
735
|
* or equal to 100 in the Sample ECommerce data model.
|
|
736
736
|
* ```ts
|
|
737
737
|
* filterFactory.measureLessThanOrEqual(
|
|
738
|
-
*
|
|
738
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
739
739
|
* 100
|
|
740
740
|
* )
|
|
741
741
|
* ```
|
|
@@ -755,7 +755,7 @@ exports.measureLessThanOrEqual = measureLessThanOrEqual;
|
|
|
755
755
|
* Filter for categories that have an average revenue less than 100 in the Sample ECommerce data model.
|
|
756
756
|
* ```ts
|
|
757
757
|
* filterFactory.measureLessThan(
|
|
758
|
-
*
|
|
758
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
759
759
|
* 100
|
|
760
760
|
* )
|
|
761
761
|
* ```
|
|
@@ -776,7 +776,7 @@ exports.measureLessThan = measureLessThan;
|
|
|
776
776
|
* or equal to 100 in the Sample ECommerce data model.
|
|
777
777
|
* ```ts
|
|
778
778
|
* filterFactory.measureBetween(
|
|
779
|
-
*
|
|
779
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
780
780
|
* 50,
|
|
781
781
|
* 100
|
|
782
782
|
* )
|
|
@@ -799,7 +799,7 @@ exports.measureBetween = measureBetween;
|
|
|
799
799
|
* 100 in the Sample ECommerce data model.
|
|
800
800
|
* ```ts
|
|
801
801
|
* filterFactory.measureBetweenNotEqual(
|
|
802
|
-
*
|
|
802
|
+
* measureFactory.average(DM.Commerce.Revenue),
|
|
803
803
|
* 50,
|
|
804
804
|
* 100
|
|
805
805
|
* )
|
|
@@ -823,7 +823,7 @@ exports.measureBetweenNotEqual = measureBetweenNotEqual;
|
|
|
823
823
|
* ```ts
|
|
824
824
|
* filterFactory.topRanking(
|
|
825
825
|
* DM.Commerce.AgeRange,
|
|
826
|
-
*
|
|
826
|
+
* measureFactory.sum(DM.Commerce.Revenue),
|
|
827
827
|
* 3
|
|
828
828
|
* )
|
|
829
829
|
* ```
|
|
@@ -845,7 +845,7 @@ exports.topRanking = topRanking;
|
|
|
845
845
|
* ```ts
|
|
846
846
|
* filterFactory.bottomRanking(
|
|
847
847
|
* DM.Commerce.AgeRange,
|
|
848
|
-
*
|
|
848
|
+
* measureFactory.sum(DM.Commerce.Revenue),
|
|
849
849
|
* 3
|
|
850
850
|
* )
|
|
851
851
|
* ```
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LevelAttribute, Attribute, Measure, Filter } from '../interfaces.js';
|
|
2
2
|
import { DimensionalElement } from '../base.js';
|
|
3
|
+
import { AnyObject } from '../types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Different text operators that can be used with text filters
|
|
5
6
|
*
|
|
@@ -71,7 +72,7 @@ export declare const FilterTypes: {
|
|
|
71
72
|
ranking: string;
|
|
72
73
|
text: string;
|
|
73
74
|
numeric: string;
|
|
74
|
-
|
|
75
|
+
dateRange: string;
|
|
75
76
|
relativeDate: string;
|
|
76
77
|
cascading: string;
|
|
77
78
|
advanced: string;
|
|
@@ -350,6 +351,83 @@ export declare class CustomFilter extends AbstractFilter {
|
|
|
350
351
|
*/
|
|
351
352
|
filterJaql(): any;
|
|
352
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Checks if a filter is a CustomFilter.
|
|
356
|
+
*
|
|
357
|
+
* @param filter - The filter to check.
|
|
358
|
+
* @internal
|
|
359
|
+
*/
|
|
360
|
+
export declare function isCustomFilter(filter: Filter & AnyObject): filter is CustomFilter;
|
|
361
|
+
/**
|
|
362
|
+
* Checks if a filter is a MembersFilter.
|
|
363
|
+
*
|
|
364
|
+
* @param filter - The filter to check.
|
|
365
|
+
* @internal
|
|
366
|
+
*/
|
|
367
|
+
export declare function isMembersFilter(filter: Filter & AnyObject): filter is MembersFilter;
|
|
368
|
+
/**
|
|
369
|
+
* Checks if a filter is a NumericFilter.
|
|
370
|
+
*
|
|
371
|
+
* @param filter - The filter to check.
|
|
372
|
+
* @internal
|
|
373
|
+
*/
|
|
374
|
+
export declare function isNumericFilter(filter: Filter & AnyObject): filter is NumericFilter;
|
|
375
|
+
/**
|
|
376
|
+
* Checks if a filter is a TextFilter.
|
|
377
|
+
*
|
|
378
|
+
* @param filter - The filter to check.
|
|
379
|
+
* @internal
|
|
380
|
+
*/
|
|
381
|
+
export declare function isRankingFilter(filter: Filter & AnyObject): filter is RankingFilter;
|
|
382
|
+
/**
|
|
383
|
+
* Checks if a filter is a MeasureFilter.
|
|
384
|
+
*
|
|
385
|
+
* @param filter - The filter to check.
|
|
386
|
+
* @internal
|
|
387
|
+
*/
|
|
388
|
+
export declare function isMeasureFilter(filter: Filter & AnyObject): filter is MeasureFilter;
|
|
389
|
+
/**
|
|
390
|
+
* Checks if a filter is a ExcludeFilter.
|
|
391
|
+
*
|
|
392
|
+
* @param filter - The filter to check.
|
|
393
|
+
* @internal
|
|
394
|
+
*/
|
|
395
|
+
export declare function isExcludeFilter(filter: Filter & AnyObject): filter is ExcludeFilter;
|
|
396
|
+
/**
|
|
397
|
+
* Checks if a filter is a LogicalAttributeFilter.
|
|
398
|
+
*
|
|
399
|
+
* @param filter - The filter to check.
|
|
400
|
+
* @internal
|
|
401
|
+
*/
|
|
402
|
+
export declare function isLogicalAttributeFilter(filter: Filter & AnyObject): filter is LogicalAttributeFilter;
|
|
403
|
+
/**
|
|
404
|
+
* Checks if a filter is a CascadingFilter.
|
|
405
|
+
*
|
|
406
|
+
* @param filter - The filter to check.
|
|
407
|
+
* @internal
|
|
408
|
+
*/
|
|
409
|
+
export declare function isCascadingFilter(filter: Filter & AnyObject): filter is CascadingFilter;
|
|
410
|
+
/**
|
|
411
|
+
* Checks if a filter is a RelativeDateFilter.
|
|
412
|
+
*
|
|
413
|
+
* @param filter - The filter to check.
|
|
414
|
+
* @internal
|
|
415
|
+
*/
|
|
416
|
+
export declare function isRelativeDateFilter(filter: Filter & AnyObject): filter is RelativeDateFilter;
|
|
417
|
+
/**
|
|
418
|
+
* Checks if a filter is a TextFilter.
|
|
419
|
+
*
|
|
420
|
+
* @param filter - The filter to check.
|
|
421
|
+
* @internal
|
|
422
|
+
*/
|
|
423
|
+
export declare function isTextFilter(filter: Filter & AnyObject): filter is TextFilter;
|
|
424
|
+
/**
|
|
425
|
+
* Checks if a filter is a DateRangeFilter.
|
|
426
|
+
*
|
|
427
|
+
* @param filter - The filter to check.
|
|
428
|
+
* @internal
|
|
429
|
+
*/
|
|
430
|
+
export declare function isDateRangeFilter(filter: Filter & AnyObject): filter is DateRangeFilter;
|
|
353
431
|
/**
|
|
354
432
|
* @param json - Filter JSON representation
|
|
355
433
|
* @internal
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createFilter = exports.CustomFilter = exports.RelativeDateFilter = exports.DateRangeFilter = exports.TextFilter = exports.NumericFilter = exports.RankingFilter = exports.MeasureFilter = exports.DoubleOperatorFilter = exports.ExcludeFilter = exports.CascadingFilter = exports.MembersFilter = exports.LogicalAttributeFilter = exports.FilterTypes = exports.RankingOperators = exports.LogicalOperators = exports.DateOperators = exports.NumericOperators = exports.TextOperators = void 0;
|
|
6
|
+
exports.createFilter = exports.isDateRangeFilter = exports.isTextFilter = exports.isRelativeDateFilter = exports.isCascadingFilter = exports.isLogicalAttributeFilter = exports.isExcludeFilter = exports.isMeasureFilter = exports.isRankingFilter = exports.isNumericFilter = exports.isMembersFilter = exports.isCustomFilter = exports.CustomFilter = exports.RelativeDateFilter = exports.DateRangeFilter = exports.TextFilter = exports.NumericFilter = exports.RankingFilter = exports.MeasureFilter = exports.DoubleOperatorFilter = exports.ExcludeFilter = exports.CascadingFilter = exports.MembersFilter = exports.LogicalAttributeFilter = exports.FilterTypes = exports.RankingOperators = exports.LogicalOperators = exports.DateOperators = exports.NumericOperators = exports.TextOperators = void 0;
|
|
7
|
+
/* eslint-disable max-lines */
|
|
7
8
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
8
9
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
9
10
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
@@ -89,7 +90,7 @@ exports.FilterTypes = {
|
|
|
89
90
|
ranking: 'ranking',
|
|
90
91
|
text: 'text',
|
|
91
92
|
numeric: 'numeric',
|
|
92
|
-
|
|
93
|
+
dateRange: 'dateRange',
|
|
93
94
|
relativeDate: 'relativeDate',
|
|
94
95
|
cascading: 'cascading',
|
|
95
96
|
advanced: 'advanced',
|
|
@@ -165,6 +166,10 @@ class AbstractFilter extends base_js_1.DimensionalElement {
|
|
|
165
166
|
};
|
|
166
167
|
}
|
|
167
168
|
result.jaql.filter = this.filterJaql();
|
|
169
|
+
// prioritize attribute dataSource for the use case of multi-source dashboard
|
|
170
|
+
if (this.attribute.dataSource) {
|
|
171
|
+
result.jaql.datasource = this.attribute.dataSource;
|
|
172
|
+
}
|
|
168
173
|
if (this.isScope) {
|
|
169
174
|
result.panel = 'scope';
|
|
170
175
|
}
|
|
@@ -546,7 +551,7 @@ exports.TextFilter = TextFilter;
|
|
|
546
551
|
*/
|
|
547
552
|
class DateRangeFilter extends DoubleOperatorFilter {
|
|
548
553
|
constructor(l, valueFrom, valueTo, guid) {
|
|
549
|
-
super(l, exports.FilterTypes.
|
|
554
|
+
super(l, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, guid);
|
|
550
555
|
if (typeof valueFrom === 'object') {
|
|
551
556
|
this.valueA = valueFrom.toISOString();
|
|
552
557
|
}
|
|
@@ -663,6 +668,116 @@ class CustomFilter extends AbstractFilter {
|
|
|
663
668
|
}
|
|
664
669
|
}
|
|
665
670
|
exports.CustomFilter = CustomFilter;
|
|
671
|
+
/**
|
|
672
|
+
* Checks if a filter is a CustomFilter.
|
|
673
|
+
*
|
|
674
|
+
* @param filter - The filter to check.
|
|
675
|
+
* @internal
|
|
676
|
+
*/
|
|
677
|
+
function isCustomFilter(filter) {
|
|
678
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.advanced;
|
|
679
|
+
}
|
|
680
|
+
exports.isCustomFilter = isCustomFilter;
|
|
681
|
+
/**
|
|
682
|
+
* Checks if a filter is a MembersFilter.
|
|
683
|
+
*
|
|
684
|
+
* @param filter - The filter to check.
|
|
685
|
+
* @internal
|
|
686
|
+
*/
|
|
687
|
+
function isMembersFilter(filter) {
|
|
688
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.members;
|
|
689
|
+
}
|
|
690
|
+
exports.isMembersFilter = isMembersFilter;
|
|
691
|
+
/**
|
|
692
|
+
* Checks if a filter is a NumericFilter.
|
|
693
|
+
*
|
|
694
|
+
* @param filter - The filter to check.
|
|
695
|
+
* @internal
|
|
696
|
+
*/
|
|
697
|
+
function isNumericFilter(filter) {
|
|
698
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.numeric;
|
|
699
|
+
}
|
|
700
|
+
exports.isNumericFilter = isNumericFilter;
|
|
701
|
+
/**
|
|
702
|
+
* Checks if a filter is a TextFilter.
|
|
703
|
+
*
|
|
704
|
+
* @param filter - The filter to check.
|
|
705
|
+
* @internal
|
|
706
|
+
*/
|
|
707
|
+
function isRankingFilter(filter) {
|
|
708
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.ranking;
|
|
709
|
+
}
|
|
710
|
+
exports.isRankingFilter = isRankingFilter;
|
|
711
|
+
/**
|
|
712
|
+
* Checks if a filter is a MeasureFilter.
|
|
713
|
+
*
|
|
714
|
+
* @param filter - The filter to check.
|
|
715
|
+
* @internal
|
|
716
|
+
*/
|
|
717
|
+
function isMeasureFilter(filter) {
|
|
718
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.measure;
|
|
719
|
+
}
|
|
720
|
+
exports.isMeasureFilter = isMeasureFilter;
|
|
721
|
+
/**
|
|
722
|
+
* Checks if a filter is a ExcludeFilter.
|
|
723
|
+
*
|
|
724
|
+
* @param filter - The filter to check.
|
|
725
|
+
* @internal
|
|
726
|
+
*/
|
|
727
|
+
function isExcludeFilter(filter) {
|
|
728
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.exclude;
|
|
729
|
+
}
|
|
730
|
+
exports.isExcludeFilter = isExcludeFilter;
|
|
731
|
+
/**
|
|
732
|
+
* Checks if a filter is a LogicalAttributeFilter.
|
|
733
|
+
*
|
|
734
|
+
* @param filter - The filter to check.
|
|
735
|
+
* @internal
|
|
736
|
+
*/
|
|
737
|
+
function isLogicalAttributeFilter(filter) {
|
|
738
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.logicalAttribute;
|
|
739
|
+
}
|
|
740
|
+
exports.isLogicalAttributeFilter = isLogicalAttributeFilter;
|
|
741
|
+
/**
|
|
742
|
+
* Checks if a filter is a CascadingFilter.
|
|
743
|
+
*
|
|
744
|
+
* @param filter - The filter to check.
|
|
745
|
+
* @internal
|
|
746
|
+
*/
|
|
747
|
+
function isCascadingFilter(filter) {
|
|
748
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.cascading;
|
|
749
|
+
}
|
|
750
|
+
exports.isCascadingFilter = isCascadingFilter;
|
|
751
|
+
/**
|
|
752
|
+
* Checks if a filter is a RelativeDateFilter.
|
|
753
|
+
*
|
|
754
|
+
* @param filter - The filter to check.
|
|
755
|
+
* @internal
|
|
756
|
+
*/
|
|
757
|
+
function isRelativeDateFilter(filter) {
|
|
758
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.relativeDate;
|
|
759
|
+
}
|
|
760
|
+
exports.isRelativeDateFilter = isRelativeDateFilter;
|
|
761
|
+
/**
|
|
762
|
+
* Checks if a filter is a TextFilter.
|
|
763
|
+
*
|
|
764
|
+
* @param filter - The filter to check.
|
|
765
|
+
* @internal
|
|
766
|
+
*/
|
|
767
|
+
function isTextFilter(filter) {
|
|
768
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.text;
|
|
769
|
+
}
|
|
770
|
+
exports.isTextFilter = isTextFilter;
|
|
771
|
+
/**
|
|
772
|
+
* Checks if a filter is a DateRangeFilter.
|
|
773
|
+
*
|
|
774
|
+
* @param filter - The filter to check.
|
|
775
|
+
* @internal
|
|
776
|
+
*/
|
|
777
|
+
function isDateRangeFilter(filter) {
|
|
778
|
+
return 'filterType' in filter && filter.filterType === exports.FilterTypes.dateRange;
|
|
779
|
+
}
|
|
780
|
+
exports.isDateRangeFilter = isDateRangeFilter;
|
|
666
781
|
/**
|
|
667
782
|
* @param json - Filter JSON representation
|
|
668
783
|
* @internal
|
|
@@ -693,7 +808,7 @@ function createFilter(json) {
|
|
|
693
808
|
case exports.FilterTypes.relativeDate:
|
|
694
809
|
return new RelativeDateFilter((0, factory_js_1.create)(json.attribute), json.offset, json.count, json.operator, json.anchor);
|
|
695
810
|
break;
|
|
696
|
-
case exports.FilterTypes.
|
|
811
|
+
case exports.FilterTypes.dateRange:
|
|
697
812
|
return new DateRangeFilter((0, factory_js_1.create)(json.attribute), json.valueA, json.valueB);
|
|
698
813
|
break;
|
|
699
814
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Attribute, BaseMeasure, LevelAttribute } from '../../interfaces.js';
|
|
1
|
+
import { Attribute, BaseMeasure, CalculatedMeasure, LevelAttribute } from '../../interfaces.js';
|
|
2
2
|
import { FilterJaql } from '../../types.js';
|
|
3
|
-
import { FilterJaqlInternal, RankingFilterJaql } from './types.js';
|
|
3
|
+
import { CustomFormulaJaql, FilterJaqlInternal, JaqlDataSource, RankingFilterJaql } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Creates an attribute or level attribute from the provided parameters
|
|
6
6
|
*
|
|
@@ -9,9 +9,11 @@ import { FilterJaqlInternal, RankingFilterJaql } from './types.js';
|
|
|
9
9
|
* @param column - Column name
|
|
10
10
|
* @param level - Date level
|
|
11
11
|
* @param dataType - Data type
|
|
12
|
+
* @param title - Attribute title
|
|
13
|
+
* @param dataSource - Jaql data source
|
|
12
14
|
* @returns attribute or level attribute
|
|
13
15
|
*/
|
|
14
|
-
export declare const createAttributeHelper: (dim: string, table: string | undefined, column: string, level: string | undefined, dataType: string) => Attribute | LevelAttribute;
|
|
16
|
+
export declare const createAttributeHelper: (dim: string, table: string | undefined, column: string, level: string | undefined, dataType: string, title?: string, dataSource?: JaqlDataSource) => Attribute | LevelAttribute;
|
|
15
17
|
/**
|
|
16
18
|
* Creates an attribute or level attribute from the provided filter JAQL object
|
|
17
19
|
*
|
|
@@ -28,9 +30,18 @@ export declare const createAttributeFromFilterJaql: (jaql: FilterJaql | FilterJa
|
|
|
28
30
|
* @param level - Date level
|
|
29
31
|
* @param dataType - Data type
|
|
30
32
|
* @param agg - Aggregation function
|
|
33
|
+
* @param title - Measure title
|
|
34
|
+
* @param dataSource - data source provided in JAQL
|
|
31
35
|
* @returns measure
|
|
32
36
|
*/
|
|
33
|
-
export declare const createMeasureHelper: (dim: string, table: string | undefined, column: string, level: string | undefined, dataType: string, agg: string) => BaseMeasure;
|
|
37
|
+
export declare const createMeasureHelper: (dim: string, table: string | undefined, column: string, level: string | undefined, dataType: string, agg: string, title?: string, dataSource?: JaqlDataSource) => BaseMeasure;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a calculated measure from the provided filter JAQL object
|
|
40
|
+
*
|
|
41
|
+
* @param jaql - custom formula jaql
|
|
42
|
+
* @returns calculated measure
|
|
43
|
+
*/
|
|
44
|
+
export declare const createCalculatedMeasureFromJaql: (jaql: CustomFormulaJaql) => CalculatedMeasure;
|
|
34
45
|
/**
|
|
35
46
|
* Creates a measure from the provided filter JAQL object
|
|
36
47
|
*
|
|
@@ -44,4 +55,4 @@ export declare const createMeasureFromFilterJaql: (jaql: FilterJaqlInternal) =>
|
|
|
44
55
|
* @param jaql - Ranking filter Jaql object
|
|
45
56
|
* @returns Measure
|
|
46
57
|
*/
|
|
47
|
-
export declare const createMeasureFromRankingFilterJaql: (jaql: RankingFilterJaql) => BaseMeasure;
|
|
58
|
+
export declare const createMeasureFromRankingFilterJaql: (jaql: RankingFilterJaql | CustomFormulaJaql) => BaseMeasure | CalculatedMeasure;
|