@sisense/sdk-data 1.33.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.
Files changed (97) 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 +13 -6
  4. package/dist/cjs/dimensional-model/attributes.js +39 -12
  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/data-model.d.ts +1 -1
  12. package/dist/cjs/dimensional-model/data-model.js +1 -1
  13. package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +6 -6
  14. package/dist/cjs/dimensional-model/dimensions/dimensions.js +34 -17
  15. package/dist/cjs/dimensional-model/dimensions/utils.d.ts +1 -0
  16. package/dist/cjs/dimensional-model/dimensions/utils.js +2 -1
  17. package/dist/cjs/dimensional-model/factory.js +5 -5
  18. package/dist/cjs/dimensional-model/filters/factory.d.ts +42 -42
  19. package/dist/cjs/dimensional-model/filters/factory.js +53 -168
  20. package/dist/cjs/dimensional-model/filters/filter-relations.d.ts +11 -2
  21. package/dist/cjs/dimensional-model/filters/filter-relations.js +14 -7
  22. package/dist/cjs/dimensional-model/filters/filters.d.ts +40 -24
  23. package/dist/cjs/dimensional-model/filters/filters.js +106 -56
  24. package/dist/cjs/dimensional-model/filters/helpers.d.ts +1 -1
  25. package/dist/cjs/dimensional-model/filters/helpers.js +2 -2
  26. package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +9 -17
  27. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
  28. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +31 -29
  29. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
  30. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
  31. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
  32. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +1 -1
  33. package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
  34. package/dist/cjs/dimensional-model/interfaces.d.ts +17 -7
  35. package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
  36. package/dist/cjs/dimensional-model/jaql-element.js +54 -2
  37. package/dist/cjs/dimensional-model/measures/factory.d.ts +46 -53
  38. package/dist/cjs/dimensional-model/measures/factory.js +57 -186
  39. package/dist/cjs/dimensional-model/measures/measures.d.ts +10 -10
  40. package/dist/cjs/dimensional-model/measures/measures.js +35 -33
  41. package/dist/cjs/dimensional-model/types.d.ts +41 -16
  42. package/dist/cjs/index.d.ts +7 -7
  43. package/dist/cjs/index.js +7 -7
  44. package/dist/cjs/utils.d.ts +45 -22
  45. package/dist/cjs/utils.js +119 -47
  46. package/dist/dimensional-model/analytics/factory.d.ts +10 -10
  47. package/dist/dimensional-model/analytics/factory.js +15 -14
  48. package/dist/dimensional-model/attributes.d.ts +13 -6
  49. package/dist/dimensional-model/attributes.js +39 -12
  50. package/dist/dimensional-model/base.d.ts +3 -3
  51. package/dist/dimensional-model/base.js +7 -4
  52. package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
  53. package/dist/dimensional-model/compose-code-utils.js +119 -0
  54. package/dist/dimensional-model/consts.d.ts +1 -0
  55. package/dist/dimensional-model/consts.js +1 -0
  56. package/dist/dimensional-model/data-model.d.ts +1 -1
  57. package/dist/dimensional-model/data-model.js +1 -1
  58. package/dist/dimensional-model/dimensions/dimensions.d.ts +6 -6
  59. package/dist/dimensional-model/dimensions/dimensions.js +35 -18
  60. package/dist/dimensional-model/dimensions/utils.d.ts +1 -0
  61. package/dist/dimensional-model/dimensions/utils.js +3 -2
  62. package/dist/dimensional-model/factory.js +5 -5
  63. package/dist/dimensional-model/filters/factory.d.ts +42 -42
  64. package/dist/dimensional-model/filters/factory.js +52 -126
  65. package/dist/dimensional-model/filters/filter-relations.d.ts +11 -2
  66. package/dist/dimensional-model/filters/filter-relations.js +14 -7
  67. package/dist/dimensional-model/filters/filters.d.ts +40 -24
  68. package/dist/dimensional-model/filters/filters.js +106 -56
  69. package/dist/dimensional-model/filters/helpers.d.ts +1 -1
  70. package/dist/dimensional-model/filters/helpers.js +2 -2
  71. package/dist/dimensional-model/filters/utils/attribute-measure-util.js +10 -18
  72. package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
  73. package/dist/dimensional-model/filters/utils/condition-filter-util.js +31 -29
  74. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
  75. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
  76. package/dist/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
  77. package/dist/dimensional-model/filters/utils/filter-types-util.js +1 -1
  78. package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
  79. package/dist/dimensional-model/interfaces.d.ts +17 -7
  80. package/dist/dimensional-model/jaql-element.d.ts +13 -1
  81. package/dist/dimensional-model/jaql-element.js +52 -1
  82. package/dist/dimensional-model/measures/factory.d.ts +46 -53
  83. package/dist/dimensional-model/measures/factory.js +56 -143
  84. package/dist/dimensional-model/measures/measures.d.ts +10 -10
  85. package/dist/dimensional-model/measures/measures.js +35 -33
  86. package/dist/dimensional-model/types.d.ts +41 -16
  87. package/dist/index.d.ts +7 -7
  88. package/dist/index.js +7 -7
  89. package/dist/translation/initialize-i18n.js +1 -1
  90. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  91. package/dist/utils.d.ts +45 -22
  92. package/dist/utils.js +94 -49
  93. package/package.json +5 -4
  94. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  95. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
  96. package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  97. package/dist/dimensional-model/filters/utils/filter-code-util.js +0 -77
@@ -1,9 +1,8 @@
1
- import { ConditionFilterType } from './types.js';
2
- import { withComposeCode } from './filter-code-util.js';
3
- import * as filterFactory from '../factory.js';
4
- import { createMeasureFromRankingFilterJaql } from './attribute-measure-util.js';
5
1
  import { TranslatableError } from '../../../translation/translatable-error.js';
2
+ import * as filterFactory from '../factory.js';
6
3
  import { simplifyFilterConfig } from '../filter-config-utils.js';
4
+ import { createMeasureFromRankingFilterJaql } from './attribute-measure-util.js';
5
+ import { ConditionFilterType } from './types.js';
7
6
  const isTopCondition = (filter) => filter.top !== undefined;
8
7
  const isBottomCondition = (filter) => filter.bottom !== undefined;
9
8
  const isExcludeCondition = (filter) => { var _a; return !!((_a = filter.exclude) === null || _a === void 0 ? void 0 : _a.members); };
@@ -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 withComposeCode(filterFactory.bottomRanking, 'bottomRanking')(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.BOTTOM], { guid });
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 withComposeCode(filterFactory.equals, 'equals')(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
94
+ return filterFactory.equals(attribute, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
96
95
  case ConditionFilterType.DOESNT_EQUAL:
97
- return withComposeCode(filterFactory.doesntEqual, 'doesntEqual')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_EQUAL], { guid });
96
+ return filterFactory.doesntEqual(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_EQUAL], { guid });
98
97
  case ConditionFilterType.GREATER_THAN:
99
- return withComposeCode(filterFactory.greaterThan, 'greaterThan')(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
98
+ return filterFactory.greaterThan(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
100
99
  case ConditionFilterType.GREATER_THAN_OR_EQUAL:
101
- return withComposeCode(filterFactory.greaterThanOrEqual, 'greaterThanOrEqual')(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
100
+ return filterFactory.greaterThanOrEqual(attribute, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
102
101
  case ConditionFilterType.TOP:
103
102
  if (conditionFilterJaql.by) {
104
- return withComposeCode(filterFactory.topRanking, 'topRanking')(attribute, createMeasureFromRankingFilterJaql(conditionFilterJaql.by, conditionFilterJaql.rankingMessage), conditionFilterJaql[ConditionFilterType.TOP], { guid });
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 withComposeCode(filterFactory.startsWith, 'startsWith')(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], { guid });
107
+ return filterFactory.startsWith(attribute, conditionFilterJaql[ConditionFilterType.STARTS_WITH], { guid });
109
108
  case ConditionFilterType.DOESNT_START_WITH:
110
- return withComposeCode(filterFactory.doesntStartWith, 'doesntStartWith')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], { guid });
109
+ return filterFactory.doesntStartWith(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_START_WITH], { guid });
111
110
  case ConditionFilterType.ENDS_WITH:
112
- return withComposeCode(filterFactory.endsWith, 'endsWith')(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], { guid });
111
+ return filterFactory.endsWith(attribute, conditionFilterJaql[ConditionFilterType.ENDS_WITH], { guid });
113
112
  case ConditionFilterType.DOESNT_END_WITH:
114
- return withComposeCode(filterFactory.doesntEndWith, 'doesntEndWith')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], { guid });
113
+ return filterFactory.doesntEndWith(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_END_WITH], { guid });
115
114
  case ConditionFilterType.CONTAINS:
116
- return withComposeCode(filterFactory.contains, 'contains')(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], { guid });
115
+ return filterFactory.contains(attribute, conditionFilterJaql[ConditionFilterType.CONTAINS], { guid });
117
116
  case ConditionFilterType.DOESNT_CONTAIN:
118
- return withComposeCode(filterFactory.doesntContain, 'doesntContain')(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], { guid });
117
+ return filterFactory.doesntContain(attribute, conditionFilterJaql[ConditionFilterType.DOESNT_CONTAIN], { guid });
119
118
  case ConditionFilterType.LESS_THAN:
120
- return withComposeCode(filterFactory.lessThan, 'lessThan')(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
119
+ return filterFactory.lessThan(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
121
120
  case ConditionFilterType.LESS_THAN_OR_EQUAL:
122
- return withComposeCode(filterFactory.lessThanOrEqual, 'lessThanOrEqual')(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
121
+ return filterFactory.lessThanOrEqual(attribute, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
123
122
  case ConditionFilterType.BETWEEN:
124
- return withComposeCode(filterFactory.between, 'between')(attribute, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
123
+ return filterFactory.between(attribute, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
125
124
  case ConditionFilterType.IS_NOT_BETWEEN:
126
- return withComposeCode(filterFactory.exclude, 'exclude')(withComposeCode(filterFactory.between, '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 });
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 withComposeCode(filterFactory.intersection, 'intersection')(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
128
+ return filterFactory.intersection(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
130
129
  }
131
130
  if (conditionFilterJaql.or) {
132
- return withComposeCode(filterFactory.union, 'union')(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), { guid });
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 withComposeCode(filterFactory.members, 'members')(attribute, selectedMembers, config);
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 withComposeCode(filterFactory.measureEquals, 'measureEquals')(measure, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
171
+ return filterFactory.measureEquals(measure, conditionFilterJaql[ConditionFilterType.EQUALS], { guid });
172
172
  case ConditionFilterType.GREATER_THAN:
173
- return withComposeCode(filterFactory.measureGreaterThan, 'measureGreaterThan')(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
173
+ return filterFactory.measureGreaterThan(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN], { guid });
174
174
  case ConditionFilterType.GREATER_THAN_OR_EQUAL:
175
- return withComposeCode(filterFactory.measureGreaterThanOrEqual, 'measureGreaterThanOrEqual')(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
175
+ return filterFactory.measureGreaterThanOrEqual(measure, conditionFilterJaql[ConditionFilterType.GREATER_THAN_OR_EQUAL], { guid });
176
176
  case ConditionFilterType.LESS_THAN:
177
- return withComposeCode(filterFactory.measureLessThan, 'measureLessThan')(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
177
+ return filterFactory.measureLessThan(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN], { guid });
178
178
  case ConditionFilterType.LESS_THAN_OR_EQUAL:
179
- return withComposeCode(filterFactory.measureLessThanOrEqual, 'measureLessThanOrEqual')(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
179
+ return filterFactory.measureLessThanOrEqual(measure, conditionFilterJaql[ConditionFilterType.LESS_THAN_OR_EQUAL], { guid });
180
180
  case ConditionFilterType.BETWEEN:
181
- return withComposeCode(filterFactory.measureBetween, 'measureBetween')(measure, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
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),
@@ -1,6 +1,6 @@
1
- import { BaseFilterJaql, FilterJaqlInternal, PeriodFilterJaql, RangeFilterJaql, SpecificItemsFilterJaql } from './types.js';
2
1
  import { Attribute, Filter, LevelAttribute } from '../../interfaces.js';
3
2
  import { FilterJaql } from '../../types.js';
3
+ import { BaseFilterJaql, FilterJaqlInternal, PeriodFilterJaql, RangeFilterJaql, SpecificItemsFilterJaql } from './types.js';
4
4
  /**
5
5
  * Creates a generic filter (aka pass-through JAQL filter) if the JAQL cannot be translated to a specific filter type.
6
6
  *
@@ -1,11 +1,10 @@
1
- import { FILTER_TYPES, } from './types.js';
1
+ import { TranslatableError } from '../../../translation/translatable-error.js';
2
2
  import * as filterFactory from '../factory.js';
3
+ import { getDefaultBaseFilterConfig, simplifyFilterConfig } from '../filter-config-utils.js';
4
+ import { createAttributeFromFilterJaql, createMeasureFromFilterJaql, } from './attribute-measure-util.js';
3
5
  import { createAttributeFilterFromConditionFilterJaql, createMeasureFilterFromConditionFilterJaql, } from './condition-filter-util.js';
4
6
  import { extractFilterTypeFromFilterJaql } from './filter-types-util.js';
5
- import { withComposeCode } from './filter-code-util.js';
6
- import { createAttributeFromFilterJaql, createMeasureFromFilterJaql, } from './attribute-measure-util.js';
7
- import { TranslatableError } from '../../../translation/translatable-error.js';
8
- import { getDefaultBaseFilterConfig, simplifyFilterConfig } from '../filter-config-utils.js';
7
+ import { FILTER_TYPES, } from './types.js';
9
8
  /**
10
9
  * Creates a generic filter (aka pass-through JAQL filter) if the JAQL cannot be translated to a specific filter type.
11
10
  *
@@ -14,7 +13,7 @@ import { getDefaultBaseFilterConfig, simplifyFilterConfig } from '../filter-conf
14
13
  * @returns A generic Filter object.
15
14
  */
16
15
  export const createGenericFilter = (jaql, guid) => {
17
- return {
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 withComposeCode(filterFactory.members, 'members')(attribute, [], config);
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 withComposeCode(filterFactory.members, 'members')(attribute, activeMembers, config);
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 withComposeCode(filterFactory.dateRange, 'dateRange')(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
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 withComposeCode(filterFactory.between, 'between')(attribute, rangeFilterJaql.from, rangeFilterJaql.to, { guid });
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 withComposeCode(filterFactory.dateRelativeTo, 'dateRelativeTo')(attribute, periodFilterJaql.last.offset, periodFilterJaql.last.count, periodFilterJaql.last.anchor, { guid });
111
+ return filterFactory.dateRelativeTo(attribute, periodFilterJaql.last.offset, periodFilterJaql.last.count, periodFilterJaql.last.anchor, { guid });
118
112
  }
119
113
  else {
120
- return withComposeCode(filterFactory.dateRelativeFrom, 'dateRelativeFrom')(attribute, periodFilterJaql.next.offset, periodFilterJaql.next.count, periodFilterJaql.next.anchor, { guid });
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 withComposeCode(filterFactory.customFilter, 'customFilter')(attribute, customFilterJaql, {
126
+ return filterFactory.customFilter(attribute, customFilterJaql, {
133
127
  guid,
134
128
  });
135
129
  };
@@ -1,4 +1,4 @@
1
- import { FilterModalType, AnyTypeFilterJaql, DatetimeLevel, FilterType, SpecificItemsFilterJaql, ConditionFilterJaql, FilterJaqlInternal, FilterJaqlWrapperWithType } from './types.js';
1
+ import { AnyTypeFilterJaql, ConditionFilterJaql, DatetimeLevel, FilterJaqlInternal, FilterJaqlWrapperWithType, FilterModalType, FilterType, SpecificItemsFilterJaql } from './types.js';
2
2
  export declare const isSpecificItemsFilter: (filter: AnyTypeFilterJaql) => filter is SpecificItemsFilterJaql;
3
3
  export declare const isNumericRangeFilter: (filter: AnyTypeFilterJaql) => boolean;
4
4
  export declare const isConditionFilter: (filter: AnyTypeFilterJaql) => filter is ConditionFilterJaql;
@@ -1,6 +1,6 @@
1
1
  import { getSelectedConditionOption } from './condition-filter-util.js';
2
- import { FilterModalType, DatetimeLevel, FILTER_TYPES, nonSupportedMinutesBuckets, ConditionFilterType, DEFAULT_FILTER_JAQL_WRAPPER, } from './types.js';
3
2
  import { getCorrectTimeLevel } from './date-time-filter-util.js';
3
+ import { ConditionFilterType, DatetimeLevel, DEFAULT_FILTER_JAQL_WRAPPER, FILTER_TYPES, FilterModalType, nonSupportedMinutesBuckets, } from './types.js';
4
4
  const isIncludeAllFilter = (filter) => filter === null || filter === void 0 ? void 0 : filter.all;
5
5
  const getInnerPeriodFilter = (filter) => (filter.last ? filter.last : filter.next);
6
6
  const isPeriodFilter = (filter) => { var _a; return ((_a = getInnerPeriodFilter(filter)) === null || _a === void 0 ? void 0 : _a.offset) < 2; };
@@ -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 { 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
- serializable(): any;
49
+ serialize(): JSONObject;
50
50
  /**
51
51
  * Overrides JSON.stringify() behavior.
52
52
  *
53
53
  * @internal
54
54
  */
55
- toJSON(): any;
55
+ toJSON(): JSONObject;
56
56
  /**
57
57
  * Gets the JAQL representation of this instance.
58
58
  *
@@ -337,6 +337,14 @@ export interface LevelAttribute extends Attribute {
337
337
  dateTimeLevel?: string;
338
338
  bucket?: string;
339
339
  };
340
+ /**
341
+ * Gets a {@link LevelAttribute} with the given granularity
342
+ *
343
+ * @param granularity - Date granularity
344
+ * @returns New instance representing {@link LevelAttribute} with provided granularity
345
+ * @internal
346
+ */
347
+ setGranularity(granularity: DateLevel): LevelAttribute;
340
348
  }
341
349
  /**
342
350
  * Base filter configuration
@@ -514,10 +522,6 @@ export declare function isPivotMeasure(arg: Measure | PivotMeasure): arg is Pivo
514
522
  * Data options for grand totals of a pivot table
515
523
  */
516
524
  export declare type PivotGrandTotals = {
517
- /**
518
- * @deprecated
519
- */
520
- title?: string;
521
525
  rows?: boolean;
522
526
  columns?: boolean;
523
527
  };
@@ -550,6 +554,12 @@ export interface FilterRelations {
550
554
  left: FilterRelationsNode;
551
555
  right: FilterRelationsNode;
552
556
  operator: 'AND' | 'OR';
557
+ /**
558
+ * Compose code for the filter relations
559
+ *
560
+ * @internal
561
+ */
562
+ composeCode?: string;
553
563
  }
554
564
  /**
555
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,5 +1,5 @@
1
+ import { createAttributeHelper, createCalculatedMeasureHelper, createMeasureHelper, getSortType, } from '../utils.js';
1
2
  import { DimensionalElement } from './base.js';
2
- import { getSortType } from '../utils.js';
3
3
  import { MetadataTypes, } from './types.js';
4
4
  /**
5
5
  * This implementation wraps metadata for a JAQL query. The metadata could be
@@ -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
+ }