@sisense/sdk-data 1.34.0 → 2.0.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 +82 -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 +60 -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
|
@@ -2,7 +2,6 @@ import { TranslatableError } from '../../../translation/translatable-error.js';
|
|
|
2
2
|
import * as filterFactory from '../factory.js';
|
|
3
3
|
import { simplifyFilterConfig } from '../filter-config-utils.js';
|
|
4
4
|
import { createMeasureFromRankingFilterJaql } from './attribute-measure-util.js';
|
|
5
|
-
import { withComposeCode } from './filter-code-util.js';
|
|
6
5
|
import { ConditionFilterType } from './types.js';
|
|
7
6
|
const isTopCondition = (filter) => filter.top !== undefined;
|
|
8
7
|
const isBottomCondition = (filter) => filter.bottom !== undefined;
|
|
@@ -88,48 +87,48 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
88
87
|
switch (conditionType) {
|
|
89
88
|
case ConditionFilterType.BOTTOM:
|
|
90
89
|
if (conditionFilterJaql.by) {
|
|
91
|
-
return
|
|
90
|
+
return filterFactory.bottomRanking(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.BOTTOM], { guid });
|
|
92
91
|
}
|
|
93
92
|
break;
|
|
94
93
|
case ConditionFilterType.EQUALS:
|
|
95
|
-
return
|
|
94
|
+
return filterFactory.equals(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
|
|
96
95
|
case ConditionFilterType.DOESNT_EQUAL:
|
|
97
|
-
return
|
|
96
|
+
return filterFactory.doesntEqual(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_EQUAL], { guid });
|
|
98
97
|
case ConditionFilterType.GREATER_THAN:
|
|
99
|
-
return
|
|
98
|
+
return filterFactory.greaterThan(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
|
|
100
99
|
case ConditionFilterType.GREATER_THAN_OR_EQUAL:
|
|
101
|
-
return
|
|
100
|
+
return filterFactory.greaterThanOrEqual(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
|
|
102
101
|
case ConditionFilterType.TOP:
|
|
103
102
|
if (conditionFilterJaql.by) {
|
|
104
|
-
return
|
|
103
|
+
return filterFactory.topRanking(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.TOP], { guid });
|
|
105
104
|
}
|
|
106
105
|
break;
|
|
107
106
|
case ConditionFilterType.STARTS_WITH:
|
|
108
|
-
return
|
|
107
|
+
return filterFactory.startsWith(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], { guid });
|
|
109
108
|
case ConditionFilterType.DOESNT_START_WITH:
|
|
110
|
-
return
|
|
109
|
+
return filterFactory.doesntStartWith(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], { guid });
|
|
111
110
|
case ConditionFilterType.ENDS_WITH:
|
|
112
|
-
return
|
|
111
|
+
return filterFactory.endsWith(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], { guid });
|
|
113
112
|
case ConditionFilterType.DOESNT_END_WITH:
|
|
114
|
-
return
|
|
113
|
+
return filterFactory.doesntEndWith(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], { guid });
|
|
115
114
|
case ConditionFilterType.CONTAINS:
|
|
116
|
-
return
|
|
115
|
+
return filterFactory.contains(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], { guid });
|
|
117
116
|
case ConditionFilterType.DOESNT_CONTAIN:
|
|
118
|
-
return
|
|
117
|
+
return filterFactory.doesntContain(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], { guid });
|
|
119
118
|
case ConditionFilterType.LESS_THAN:
|
|
120
|
-
return
|
|
119
|
+
return filterFactory.lessThan(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
|
|
121
120
|
case ConditionFilterType.LESS_THAN_OR_EQUAL:
|
|
122
|
-
return
|
|
121
|
+
return filterFactory.lessThanOrEqual(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
|
|
123
122
|
case ConditionFilterType.BETWEEN:
|
|
124
|
-
return
|
|
123
|
+
return filterFactory.between(attribute, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
|
|
125
124
|
case ConditionFilterType.IS_NOT_BETWEEN:
|
|
126
|
-
return
|
|
125
|
+
return filterFactory.exclude(filterFactory.between(attribute, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, { guid }), undefined, { guid });
|
|
127
126
|
case ConditionFilterType.MULTIPLE_CONDITION:
|
|
128
127
|
if (conditionFilterJaql.and) {
|
|
129
|
-
return
|
|
128
|
+
return filterFactory.intersection(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
|
|
130
129
|
}
|
|
131
130
|
if (conditionFilterJaql.or) {
|
|
132
|
-
return
|
|
131
|
+
return filterFactory.union(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
|
|
133
132
|
}
|
|
134
133
|
break;
|
|
135
134
|
case ConditionFilterType.IS_NOT: {
|
|
@@ -143,7 +142,7 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
143
142
|
enableMultiSelection: (_g = conditionFilterJaql.multiSelection) !== null && _g !== void 0 ? _g : true,
|
|
144
143
|
deactivatedMembers,
|
|
145
144
|
});
|
|
146
|
-
return
|
|
145
|
+
return filterFactory.members(attribute, selectedMembers, config);
|
|
147
146
|
}
|
|
148
147
|
case ConditionFilterType.AFTER:
|
|
149
148
|
case ConditionFilterType.BEFORE:
|
|
@@ -165,20 +164,23 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
165
164
|
* @returns measure filter
|
|
166
165
|
*/
|
|
167
166
|
export const createMeasureFilterFromConditionFilterJaql = (measure, conditionFilterJaql, guid) => {
|
|
167
|
+
var _a, _b;
|
|
168
168
|
const conditionType = getSelectedConditionOption(conditionFilterJaql);
|
|
169
169
|
switch (conditionType) {
|
|
170
170
|
case ConditionFilterType.EQUALS:
|
|
171
|
-
return
|
|
171
|
+
return filterFactory.measureEquals(measure, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
|
|
172
172
|
case ConditionFilterType.GREATER_THAN:
|
|
173
|
-
return
|
|
173
|
+
return filterFactory.measureGreaterThan(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
|
|
174
174
|
case ConditionFilterType.GREATER_THAN_OR_EQUAL:
|
|
175
|
-
return
|
|
175
|
+
return filterFactory.measureGreaterThanOrEqual(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
|
|
176
176
|
case ConditionFilterType.LESS_THAN:
|
|
177
|
-
return
|
|
177
|
+
return filterFactory.measureLessThan(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
|
|
178
178
|
case ConditionFilterType.LESS_THAN_OR_EQUAL:
|
|
179
|
-
return
|
|
179
|
+
return filterFactory.measureLessThanOrEqual(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
|
|
180
180
|
case ConditionFilterType.BETWEEN:
|
|
181
|
-
return
|
|
181
|
+
return filterFactory.measureBetween(measure, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
|
|
182
|
+
case ConditionFilterType.IS_NOT_BETWEEN:
|
|
183
|
+
return filterFactory.exclude(filterFactory.measureBetween(measure, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, { guid }), undefined, { guid });
|
|
182
184
|
}
|
|
183
185
|
throw new TranslatableError('errors.filter.unsupportedConditionFilter', {
|
|
184
186
|
filter: JSON.stringify(conditionFilterJaql),
|
|
@@ -3,7 +3,6 @@ import * as filterFactory from '../factory.js';
|
|
|
3
3
|
import { getDefaultBaseFilterConfig, simplifyFilterConfig } from '../filter-config-utils.js';
|
|
4
4
|
import { createAttributeFromFilterJaql, createMeasureFromFilterJaql, } from './attribute-measure-util.js';
|
|
5
5
|
import { createAttributeFilterFromConditionFilterJaql, createMeasureFilterFromConditionFilterJaql, } from './condition-filter-util.js';
|
|
6
|
-
import { withComposeCode } from './filter-code-util.js';
|
|
7
6
|
import { extractFilterTypeFromFilterJaql } from './filter-types-util.js';
|
|
8
7
|
import { FILTER_TYPES, } from './types.js';
|
|
9
8
|
/**
|
|
@@ -14,7 +13,7 @@ import { FILTER_TYPES, } from './types.js';
|
|
|
14
13
|
* @returns A generic Filter object.
|
|
15
14
|
*/
|
|
16
15
|
export const createGenericFilter = (jaql, guid) => {
|
|
17
|
-
|
|
16
|
+
const baseFilter = {
|
|
18
17
|
config: Object.assign(Object.assign({}, getDefaultBaseFilterConfig()), { guid, originalFilterJaql: jaql }),
|
|
19
18
|
jaql: (nested) => {
|
|
20
19
|
if (nested) {
|
|
@@ -29,13 +28,8 @@ export const createGenericFilter = (jaql, guid) => {
|
|
|
29
28
|
id: jaql.dim,
|
|
30
29
|
},
|
|
31
30
|
type: 'filter',
|
|
32
|
-
serializable() {
|
|
33
|
-
return Object.assign(Object.assign({}, this), { jaql: this.jaql() });
|
|
34
|
-
},
|
|
35
|
-
toJSON() {
|
|
36
|
-
return this.serializable();
|
|
37
|
-
},
|
|
38
31
|
};
|
|
32
|
+
return Object.assign({}, baseFilter);
|
|
39
33
|
};
|
|
40
34
|
/**
|
|
41
35
|
* Creates a filter that includes all members of the attribute.
|
|
@@ -51,7 +45,7 @@ export const createFilterIncludeAll = (attribute, guid) => {
|
|
|
51
45
|
guid,
|
|
52
46
|
excludeMembers: true,
|
|
53
47
|
};
|
|
54
|
-
return
|
|
48
|
+
return filterFactory.members(attribute, [], config);
|
|
55
49
|
};
|
|
56
50
|
/**
|
|
57
51
|
* Creates a filter from a specific items filter JAQL object.
|
|
@@ -70,7 +64,7 @@ export const createFilterFromSpecificItemsFilterJaql = (attribute, specificItems
|
|
|
70
64
|
enableMultiSelection: multiSelection !== null && multiSelection !== void 0 ? multiSelection : true,
|
|
71
65
|
deactivatedMembers,
|
|
72
66
|
});
|
|
73
|
-
return
|
|
67
|
+
return filterFactory.members(attribute, activeMembers, config);
|
|
74
68
|
};
|
|
75
69
|
function getDeactivatedMembersFromFilterJaql(filterJaql) {
|
|
76
70
|
var _a, _b, _c, _d;
|
|
@@ -91,7 +85,7 @@ function getActiveMembersFromFilterJaql(filterJaql, deactivatedMembers) {
|
|
|
91
85
|
* @returns Filter object
|
|
92
86
|
*/
|
|
93
87
|
export const createFilterFromDateRangeFilterJaql = (attribute, rangeFilterJaql, guid) => {
|
|
94
|
-
return
|
|
88
|
+
return filterFactory.dateRange(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
|
|
95
89
|
};
|
|
96
90
|
/**
|
|
97
91
|
* Creates a filter from a numeric range filter JAQL object.
|
|
@@ -102,7 +96,7 @@ export const createFilterFromDateRangeFilterJaql = (attribute, rangeFilterJaql,
|
|
|
102
96
|
* @returns Filter object
|
|
103
97
|
*/
|
|
104
98
|
export const createFilterFromNumericRangeJaql = (attribute, rangeFilterJaql, guid) => {
|
|
105
|
-
return
|
|
99
|
+
return filterFactory.between(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
|
|
106
100
|
};
|
|
107
101
|
/**
|
|
108
102
|
* Creates a filter from a period filter JAQL object.
|
|
@@ -114,10 +108,10 @@ export const createFilterFromNumericRangeJaql = (attribute, rangeFilterJaql, gui
|
|
|
114
108
|
*/
|
|
115
109
|
export const createFilterFromPeriodFilterJaql = (attribute, periodFilterJaql, guid) => {
|
|
116
110
|
if (periodFilterJaql.last) {
|
|
117
|
-
return
|
|
111
|
+
return filterFactory.dateRelativeTo(attribute, periodFilterJaql.last.offset, periodFilterJaql.last.count, periodFilterJaql.last.anchor, { guid });
|
|
118
112
|
}
|
|
119
113
|
else {
|
|
120
|
-
return
|
|
114
|
+
return filterFactory.dateRelativeFrom(attribute, periodFilterJaql.next.offset, periodFilterJaql.next.count, periodFilterJaql.next.anchor, { guid });
|
|
121
115
|
}
|
|
122
116
|
};
|
|
123
117
|
/**
|
|
@@ -129,7 +123,7 @@ export const createFilterFromPeriodFilterJaql = (attribute, periodFilterJaql, gu
|
|
|
129
123
|
* @returns Filter object
|
|
130
124
|
*/
|
|
131
125
|
export const createFilterFromCustomFilterJaql = (attribute, customFilterJaql, guid) => {
|
|
132
|
-
return
|
|
126
|
+
return filterFactory.customFilter(attribute, customFilterJaql, {
|
|
133
127
|
guid,
|
|
134
128
|
});
|
|
135
129
|
};
|
|
@@ -19,6 +19,16 @@ export declare type JaqlDataSource = {
|
|
|
19
19
|
lastBuildTime?: string;
|
|
20
20
|
revisionId?: string;
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Data source as specified in the jaql
|
|
24
|
+
* but with required filelds
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare type JaqlDataSourceForDto = JaqlDataSource & {
|
|
29
|
+
id: string;
|
|
30
|
+
address?: string;
|
|
31
|
+
};
|
|
22
32
|
export declare enum GeneralFilterType {
|
|
23
33
|
INCLUDE_ALL = "INCLUDE_ALL",
|
|
24
34
|
ADVANCED = "ADVANCED",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataSource } from '../interfaces.js';
|
|
2
|
-
import { DateLevel, FilterJaql, JaqlDataSource, Sort } from './types.js';
|
|
2
|
+
import { DateLevel, FilterJaql, JaqlDataSource, JSONObject, Sort } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
@@ -46,13 +46,13 @@ export interface Element {
|
|
|
46
46
|
*
|
|
47
47
|
* @internal
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
serialize(): JSONObject;
|
|
50
50
|
/**
|
|
51
51
|
* Overrides JSON.stringify() behavior.
|
|
52
52
|
*
|
|
53
53
|
* @internal
|
|
54
54
|
*/
|
|
55
|
-
toJSON():
|
|
55
|
+
toJSON(): JSONObject;
|
|
56
56
|
/**
|
|
57
57
|
* Gets the JAQL representation of this instance.
|
|
58
58
|
*
|
|
@@ -522,10 +522,6 @@ export declare function isPivotMeasure(arg: Measure | PivotMeasure): arg is Pivo
|
|
|
522
522
|
* Data options for grand totals of a pivot table
|
|
523
523
|
*/
|
|
524
524
|
export declare type PivotGrandTotals = {
|
|
525
|
-
/**
|
|
526
|
-
* @deprecated
|
|
527
|
-
*/
|
|
528
|
-
title?: string;
|
|
529
525
|
rows?: boolean;
|
|
530
526
|
columns?: boolean;
|
|
531
527
|
};
|
|
@@ -558,6 +554,12 @@ export interface FilterRelations {
|
|
|
558
554
|
left: FilterRelationsNode;
|
|
559
555
|
right: FilterRelationsNode;
|
|
560
556
|
operator: 'AND' | 'OR';
|
|
557
|
+
/**
|
|
558
|
+
* Compose code for the filter relations
|
|
559
|
+
*
|
|
560
|
+
* @internal
|
|
561
|
+
*/
|
|
562
|
+
composeCode?: string;
|
|
561
563
|
}
|
|
562
564
|
/**
|
|
563
565
|
* Model of filter logical relations (AND/OR) from Fusion dashboard
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DimensionalElement } from './base.js';
|
|
2
2
|
import { SortDirection } from './interfaces.js';
|
|
3
|
-
import { MetadataItem, MetadataItemJaql } from './types.js';
|
|
3
|
+
import { JSONObject, MetadataItem, MetadataItemJaql } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* This implementation wraps metadata for a JAQL query. The metadata could be
|
|
6
6
|
* for a dimension, measure, or filter. We do little to no interpretation of
|
|
@@ -26,6 +26,10 @@ export declare class JaqlElement extends DimensionalElement {
|
|
|
26
26
|
get id(): string;
|
|
27
27
|
jaql(nested?: true): MetadataItemJaql;
|
|
28
28
|
jaql(nested?: false | undefined): MetadataItem;
|
|
29
|
+
/**
|
|
30
|
+
* Gets a serializable representation of the element
|
|
31
|
+
*/
|
|
32
|
+
serialize(): JSONObject;
|
|
29
33
|
}
|
|
30
34
|
/**
|
|
31
35
|
* Create a JaqlElement from a MetadataItem
|
|
@@ -35,3 +39,11 @@ export declare class JaqlElement extends DimensionalElement {
|
|
|
35
39
|
* @internal
|
|
36
40
|
*/
|
|
37
41
|
export declare function createJaqlElement(item: MetadataItem): JaqlElement;
|
|
42
|
+
/**
|
|
43
|
+
* Create a DimensionalElement from a MetadataItem
|
|
44
|
+
*
|
|
45
|
+
* @param item - the metadata item in a JAQL query
|
|
46
|
+
* @returns a DimensionalElement
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare function createDimensionalElementFromMetadataItem(item: MetadataItem): import("./interfaces.js").Attribute | import("./interfaces.js").BaseMeasure | import("./interfaces.js").CalculatedMeasure | JaqlElement;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getSortType } from '../utils.js';
|
|
1
|
+
import { createAttributeHelper, createCalculatedMeasureHelper, createMeasureHelper, getSortType, } from '../utils.js';
|
|
2
2
|
import { DimensionalElement } from './base.js';
|
|
3
3
|
import { MetadataTypes, } from './types.js';
|
|
4
4
|
/**
|
|
@@ -47,6 +47,16 @@ export class JaqlElement extends DimensionalElement {
|
|
|
47
47
|
jaql(nested) {
|
|
48
48
|
return nested === true ? this.metadataItem.jaql : this.metadataItem;
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Gets a serializable representation of the element
|
|
52
|
+
*/
|
|
53
|
+
serialize() {
|
|
54
|
+
const result = super.serialize();
|
|
55
|
+
result.__serializable = 'JaqlElement';
|
|
56
|
+
result.metadataItem = this.metadataItem;
|
|
57
|
+
result.type = this.type;
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
50
60
|
}
|
|
51
61
|
const toMetadataType = {
|
|
52
62
|
text: MetadataTypes.TextAttribute,
|
|
@@ -66,3 +76,44 @@ export function createJaqlElement(item) {
|
|
|
66
76
|
// will always be of type number. check if there is a more correct way to do this
|
|
67
77
|
return new JaqlElement(item, (_a = toMetadataType[item.jaql.datatype]) !== null && _a !== void 0 ? _a : 'numeric');
|
|
68
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a DimensionalElement from a MetadataItem
|
|
81
|
+
*
|
|
82
|
+
* @param item - the metadata item in a JAQL query
|
|
83
|
+
* @returns a DimensionalElement
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
export function createDimensionalElementFromMetadataItem(item) {
|
|
87
|
+
const { jaql } = item;
|
|
88
|
+
// calculated measure
|
|
89
|
+
if (jaql.formula) {
|
|
90
|
+
return createCalculatedMeasureHelper(jaql);
|
|
91
|
+
}
|
|
92
|
+
// measure
|
|
93
|
+
if ('agg' in jaql && jaql.dim && jaql.datatype) {
|
|
94
|
+
return createMeasureHelper({
|
|
95
|
+
expression: jaql.dim,
|
|
96
|
+
dataType: jaql.datatype,
|
|
97
|
+
agg: jaql.agg || '',
|
|
98
|
+
granularity: jaql.level,
|
|
99
|
+
format: undefined,
|
|
100
|
+
sort: jaql.sort,
|
|
101
|
+
title: jaql.title,
|
|
102
|
+
dataSource: jaql.datasource,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// attribute
|
|
106
|
+
if (jaql.dim && jaql.datatype) {
|
|
107
|
+
return createAttributeHelper({
|
|
108
|
+
expression: jaql.dim,
|
|
109
|
+
dataType: jaql.datatype,
|
|
110
|
+
granularity: jaql.level,
|
|
111
|
+
sort: jaql.sort,
|
|
112
|
+
title: jaql.title,
|
|
113
|
+
panel: item.panel,
|
|
114
|
+
dataSource: jaql.datasource,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// fall back to createJaqlElement
|
|
118
|
+
return createJaqlElement(item);
|
|
119
|
+
}
|