@sisense/sdk-data 1.12.0 → 1.14.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.js +6 -4
- package/dist/cjs/dimensional-model/attributes.js +20 -1
- package/dist/cjs/dimensional-model/dimensions.d.ts +8 -0
- package/dist/cjs/dimensional-model/dimensions.js +4 -0
- package/dist/cjs/dimensional-model/dimensions.test.js +30 -0
- package/dist/cjs/dimensional-model/filters/factory.d.ts +3 -2
- package/dist/cjs/dimensional-model/filters/factory.js +5 -5
- package/dist/cjs/dimensional-model/filters/factory.test.js +1 -1
- package/dist/cjs/dimensional-model/filters/filters.d.ts +37 -2
- package/dist/cjs/dimensional-model/filters/filters.js +88 -4
- package/dist/cjs/dimensional-model/filters/filters.test.js +16 -0
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +4 -2
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +5 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +10 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +28 -3
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.test.js +80 -15
- package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +3 -3
- package/dist/cjs/dimensional-model/filters/utils/types.d.ts +6 -0
- package/dist/cjs/dimensional-model/interfaces.d.ts +14 -0
- package/dist/cjs/dimensional-model/types.d.ts +2 -0
- package/dist/cjs/dimensional-model/types.js +4 -0
- package/dist/cjs/interfaces.d.ts +1 -1
- package/dist/cjs/translation/resources/en.js +1 -1
- package/dist/cjs/translation/resources/uk.js +1 -1
- package/dist/cjs/utils.js +6 -2
- package/dist/cjs/utils.test.js +24 -0
- package/dist/dimensional-model/analytics/factory.js +6 -4
- package/dist/dimensional-model/attributes.js +20 -1
- package/dist/dimensional-model/dimensions.d.ts +8 -0
- package/dist/dimensional-model/dimensions.js +4 -0
- package/dist/dimensional-model/filters/factory.d.ts +3 -2
- package/dist/dimensional-model/filters/factory.js +6 -6
- package/dist/dimensional-model/filters/filters.d.ts +37 -2
- package/dist/dimensional-model/filters/filters.js +86 -3
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +4 -2
- package/dist/dimensional-model/filters/utils/filter-code-util.js +5 -1
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +10 -1
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +26 -2
- package/dist/dimensional-model/filters/utils/filter-types-util.js +3 -3
- package/dist/dimensional-model/filters/utils/types.d.ts +6 -0
- package/dist/dimensional-model/interfaces.d.ts +14 -0
- package/dist/dimensional-model/types.d.ts +2 -0
- package/dist/dimensional-model/types.js +4 -0
- package/dist/interfaces.d.ts +1 -1
- package/dist/translation/resources/en.js +1 -1
- package/dist/translation/resources/uk.js +1 -1
- package/dist/utils.js +6 -2
- package/package.json +3 -3
|
@@ -86,6 +86,7 @@ export const FilterTypes = {
|
|
|
86
86
|
date: 'date',
|
|
87
87
|
relativeDate: 'relativeDate',
|
|
88
88
|
cascading: 'cascading',
|
|
89
|
+
advanced: 'advanced',
|
|
89
90
|
};
|
|
90
91
|
// CLASSES
|
|
91
92
|
/**
|
|
@@ -101,6 +102,29 @@ class AbstractFilter extends DimensionalElement {
|
|
|
101
102
|
this.attribute = att;
|
|
102
103
|
this.guid = guid || guidFast(13);
|
|
103
104
|
this.disabled = false;
|
|
105
|
+
this.locked = false;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Boolean flag whether the filter is disabled
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
get disabled() {
|
|
113
|
+
return this._disabled;
|
|
114
|
+
}
|
|
115
|
+
set disabled(value) {
|
|
116
|
+
this._disabled = value;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Boolean flag whether the filter is locked
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
get locked() {
|
|
124
|
+
return this._locked;
|
|
125
|
+
}
|
|
126
|
+
set locked(value) {
|
|
127
|
+
this._locked = value;
|
|
104
128
|
}
|
|
105
129
|
get name() {
|
|
106
130
|
return hash(this.jaql());
|
|
@@ -143,7 +167,9 @@ class AbstractFilter extends DimensionalElement {
|
|
|
143
167
|
const { granularity } = attribute;
|
|
144
168
|
if (granularity === DateLevels.Hours ||
|
|
145
169
|
granularity === DateLevels.MinutesRoundTo30 ||
|
|
146
|
-
granularity === DateLevels.MinutesRoundTo15
|
|
170
|
+
granularity === DateLevels.MinutesRoundTo15 ||
|
|
171
|
+
granularity === DateLevels.Minutes ||
|
|
172
|
+
granularity === DateLevels.Seconds) {
|
|
147
173
|
throw new TranslatableError('errors.filter.unsupportedDatetimeLevel');
|
|
148
174
|
}
|
|
149
175
|
}
|
|
@@ -188,9 +214,11 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
188
214
|
* @internal
|
|
189
215
|
*/
|
|
190
216
|
export class MembersFilter extends AbstractFilter {
|
|
191
|
-
constructor(attribute, members, guid) {
|
|
217
|
+
constructor(attribute, members, _deactivatedMembers, guid, backgroundFilter) {
|
|
192
218
|
super(attribute, FilterTypes.members, guid);
|
|
193
219
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
220
|
+
this._deactivatedMembers = _deactivatedMembers !== null && _deactivatedMembers !== void 0 ? _deactivatedMembers : [];
|
|
221
|
+
this.backgroundFilter = backgroundFilter;
|
|
194
222
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
195
223
|
throw new TranslatableError('errors.filter.membersFilterNullMember', {
|
|
196
224
|
attributeId: attribute.id,
|
|
@@ -209,15 +237,24 @@ export class MembersFilter extends AbstractFilter {
|
|
|
209
237
|
serializable() {
|
|
210
238
|
const result = super.serializable();
|
|
211
239
|
result.members = this.members;
|
|
240
|
+
if (this.backgroundFilter) {
|
|
241
|
+
result.backgroundFilter = this.backgroundFilter.serializable();
|
|
242
|
+
}
|
|
212
243
|
return result;
|
|
213
244
|
}
|
|
214
245
|
/**
|
|
215
246
|
* Gets JAQL representing this Filter instance
|
|
216
247
|
*/
|
|
217
248
|
filterJaql() {
|
|
218
|
-
|
|
249
|
+
const filterJaql = {
|
|
219
250
|
members: this.members.map((m) => m.toString()),
|
|
220
251
|
};
|
|
252
|
+
if (this.backgroundFilter) {
|
|
253
|
+
return {
|
|
254
|
+
and: [filterJaql, this.backgroundFilter.filterJaql()],
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
return filterJaql;
|
|
221
258
|
}
|
|
222
259
|
}
|
|
223
260
|
/**
|
|
@@ -234,6 +271,28 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
234
271
|
get id() {
|
|
235
272
|
return `${this.filterType}_${this.filters.map((f) => f.id).join()}`;
|
|
236
273
|
}
|
|
274
|
+
get disabled() {
|
|
275
|
+
return super.disabled;
|
|
276
|
+
}
|
|
277
|
+
set disabled(value) {
|
|
278
|
+
super.disabled = value;
|
|
279
|
+
if (this.filters) {
|
|
280
|
+
this.filters.forEach((filter) => {
|
|
281
|
+
filter.disabled = value;
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
get locked() {
|
|
286
|
+
return super.locked;
|
|
287
|
+
}
|
|
288
|
+
set locked(value) {
|
|
289
|
+
super.locked = value;
|
|
290
|
+
if (this.filters) {
|
|
291
|
+
this.filters.forEach((filter) => {
|
|
292
|
+
filter.locked = value;
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
}
|
|
237
296
|
/**
|
|
238
297
|
* Gets a serializable representation of the element
|
|
239
298
|
*/
|
|
@@ -556,6 +615,30 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
556
615
|
return result;
|
|
557
616
|
}
|
|
558
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* @internal
|
|
620
|
+
*/
|
|
621
|
+
export class CustomFilter extends AbstractFilter {
|
|
622
|
+
constructor(att, jaql, guid) {
|
|
623
|
+
super(att, FilterTypes.advanced, guid);
|
|
624
|
+
// remove filterType from jaql as it is not needed
|
|
625
|
+
delete jaql.filterType;
|
|
626
|
+
this.jaqlExpression = jaql;
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* gets the element's ID
|
|
630
|
+
*/
|
|
631
|
+
get id() {
|
|
632
|
+
return `custom_${this.attribute.id}_${this.guid}`;
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* Gets JAQL representing this Filter instance
|
|
636
|
+
*
|
|
637
|
+
*/
|
|
638
|
+
filterJaql() {
|
|
639
|
+
return this.jaqlExpression;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
559
642
|
/**
|
|
560
643
|
* @param json - Filter JSON representation
|
|
561
644
|
* @internal
|
|
@@ -81,7 +81,7 @@ export const getSelectedConditionOption = (filter) => {
|
|
|
81
81
|
* @returns attribute filter
|
|
82
82
|
*/
|
|
83
83
|
export const createAttributeFilterFromConditionFilterJaql = (attribute, conditionFilterJaql, guid) => {
|
|
84
|
-
var _a, _b;
|
|
84
|
+
var _a, _b, _c;
|
|
85
85
|
const conditionType = getSelectedConditionOption(conditionFilterJaql);
|
|
86
86
|
switch (conditionType) {
|
|
87
87
|
case ConditionFilterType.BOTTOM:
|
|
@@ -119,7 +119,7 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
119
119
|
case ConditionFilterType.BETWEEN:
|
|
120
120
|
return withComposeCode(filterFactory.between)(attribute, conditionFilterJaql.from, conditionFilterJaql.to, guid);
|
|
121
121
|
case ConditionFilterType.IS_NOT_BETWEEN:
|
|
122
|
-
return withComposeCode(filterFactory.exclude)(withComposeCode(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));
|
|
122
|
+
return withComposeCode(filterFactory.exclude)(withComposeCode(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);
|
|
123
123
|
case ConditionFilterType.MULTIPLE_CONDITION:
|
|
124
124
|
if (conditionFilterJaql.and) {
|
|
125
125
|
return withComposeCode(filterFactory.intersection)(conditionFilterJaql.and.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
|
|
@@ -128,6 +128,8 @@ export const createAttributeFilterFromConditionFilterJaql = (attribute, conditio
|
|
|
128
128
|
return withComposeCode(filterFactory.union)(conditionFilterJaql.or.map((c) => createAttributeFilterFromConditionFilterJaql(attribute, c, guid)), guid);
|
|
129
129
|
}
|
|
130
130
|
break;
|
|
131
|
+
case ConditionFilterType.IS_NOT:
|
|
132
|
+
return withComposeCode(filterFactory.exclude)(withComposeCode(filterFactory.members)(attribute, ((_c = conditionFilterJaql.exclude) === null || _c === void 0 ? void 0 : _c.members) || [], undefined, guid), undefined, guid);
|
|
131
133
|
case ConditionFilterType.AFTER:
|
|
132
134
|
case ConditionFilterType.BEFORE:
|
|
133
135
|
case ConditionFilterType.IS_EMPTY:
|
|
@@ -40,7 +40,11 @@ export function stringifyHelper(arg) {
|
|
|
40
40
|
*/
|
|
41
41
|
export function withComposeCode(func) {
|
|
42
42
|
return function (...args) {
|
|
43
|
-
const argValues = args
|
|
43
|
+
const argValues = args
|
|
44
|
+
.map(stringifyHelper)
|
|
45
|
+
.join(', ')
|
|
46
|
+
// remove any number of trailing commas
|
|
47
|
+
.replace(/(,\s*)+$/, '');
|
|
44
48
|
const signature = `filterFactory.${func.name}(${argValues})`;
|
|
45
49
|
const filter = func(...args);
|
|
46
50
|
filter.composeCode = signature;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConditionFilterJaql, FilterJaqlInternal, PeriodFilterJaql, RangeFilterJaql, SpecificItemsFilterJaql } from './types.js';
|
|
1
|
+
import { BaseFilterJaql, ConditionFilterJaql, FilterJaqlInternal, PeriodFilterJaql, RangeFilterJaql, SpecificItemsFilterJaql } from './types.js';
|
|
2
2
|
import { Attribute, BaseMeasure, Filter, LevelAttribute } from '../../interfaces.js';
|
|
3
3
|
import { FilterJaql } from '../../types.js';
|
|
4
4
|
/**
|
|
@@ -63,6 +63,15 @@ export declare const createFilterFromPeriodFilterJaql: (attribute: LevelAttribut
|
|
|
63
63
|
* @returns Filter object
|
|
64
64
|
*/
|
|
65
65
|
export declare const createFilterFromConditionFilterJaql: (attribute: Attribute, conditionFilterJaql: ConditionFilterJaql, measure?: BaseMeasure, guid?: string) => Filter;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a filter from a custom filter JAQL object.
|
|
68
|
+
*
|
|
69
|
+
* @param attribute - attribute
|
|
70
|
+
* @param customFilterJaql - Custom Filter Jaql
|
|
71
|
+
* @param guid - Optional GUID for the filter
|
|
72
|
+
* @returns Filter object
|
|
73
|
+
*/
|
|
74
|
+
export declare const createFilterFromCustomFilterJaql: (attribute: Attribute, customFilterJaql: BaseFilterJaql, guid?: string) => Filter;
|
|
66
75
|
/**
|
|
67
76
|
* Creates a filter from a filter JAQL object.
|
|
68
77
|
*
|
|
@@ -44,7 +44,7 @@ export const createGenericFilter = (jaql, guid) => {
|
|
|
44
44
|
* @returns The created Filter object.
|
|
45
45
|
*/
|
|
46
46
|
export const createFilterIncludeAll = (attribute, guid) => {
|
|
47
|
-
return withComposeCode(filterFactory.members)(attribute, [], guid);
|
|
47
|
+
return withComposeCode(filterFactory.members)(attribute, [], [], guid);
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* Creates a filter from a specific items filter JAQL object.
|
|
@@ -55,8 +55,20 @@ export const createFilterIncludeAll = (attribute, guid) => {
|
|
|
55
55
|
* @returns Filter object
|
|
56
56
|
*/
|
|
57
57
|
export const createFilterFromSpecificItemsFilterJaql = (attribute, specificItemsFilterJaql, guid) => {
|
|
58
|
-
|
|
58
|
+
const deactivatedMembers = getDeactivatedMembersFromFilterJaql(specificItemsFilterJaql);
|
|
59
|
+
const activeMembers = getActiveMembersFromFilterJaql(specificItemsFilterJaql, deactivatedMembers);
|
|
60
|
+
return withComposeCode(filterFactory.members)(attribute, activeMembers, deactivatedMembers, guid);
|
|
59
61
|
};
|
|
62
|
+
function getDeactivatedMembersFromFilterJaql(filterJaql) {
|
|
63
|
+
var _a, _b, _c;
|
|
64
|
+
return ((_a = filterJaql.filter) === null || _a === void 0 ? void 0 : _a.turnedOff) ? (_c = (_b = filterJaql.filter) === null || _b === void 0 ? void 0 : _b.exclude) === null || _c === void 0 ? void 0 : _c.members : undefined;
|
|
65
|
+
}
|
|
66
|
+
function getActiveMembersFromFilterJaql(filterJaql, deactivatedMembers) {
|
|
67
|
+
const allMembers = filterJaql.members;
|
|
68
|
+
return deactivatedMembers
|
|
69
|
+
? allMembers.filter((member) => !deactivatedMembers.includes(member))
|
|
70
|
+
: allMembers;
|
|
71
|
+
}
|
|
60
72
|
/**
|
|
61
73
|
* Creates a filter from a date range filter JAQL object.
|
|
62
74
|
*
|
|
@@ -112,6 +124,17 @@ export const createFilterFromConditionFilterJaql = (attribute, conditionFilterJa
|
|
|
112
124
|
return createAttributeFilterFromConditionFilterJaql(attribute, conditionFilterJaql, guid);
|
|
113
125
|
}
|
|
114
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Creates a filter from a custom filter JAQL object.
|
|
129
|
+
*
|
|
130
|
+
* @param attribute - attribute
|
|
131
|
+
* @param customFilterJaql - Custom Filter Jaql
|
|
132
|
+
* @param guid - Optional GUID for the filter
|
|
133
|
+
* @returns Filter object
|
|
134
|
+
*/
|
|
135
|
+
export const createFilterFromCustomFilterJaql = (attribute, customFilterJaql, guid) => {
|
|
136
|
+
return withComposeCode(filterFactory.customFilter)(attribute, customFilterJaql, guid);
|
|
137
|
+
};
|
|
115
138
|
/**
|
|
116
139
|
* Creates a filter from a filter JAQL object.
|
|
117
140
|
*
|
|
@@ -144,6 +167,7 @@ export const createFilterFromJaqlInternal = (jaql, guid) => {
|
|
|
144
167
|
case FILTER_TYPES.NUMERIC_RANGE:
|
|
145
168
|
return createFilterFromNumericRangeJaql(attribute, filterJaqlWithType, guid);
|
|
146
169
|
case FILTER_TYPES.ADVANCED:
|
|
170
|
+
return createFilterFromCustomFilterJaql(attribute, filterJaqlWithType, guid);
|
|
147
171
|
case FILTER_TYPES.INVALID:
|
|
148
172
|
return createGenericFilter(jaql, guid);
|
|
149
173
|
}
|
|
@@ -29,6 +29,8 @@ const isInvalidFilter = (filter) => filter.filterType === FILTER_TYPES.INVALID;
|
|
|
29
29
|
export const getFilterType = (filter, dataType = FilterModalType.DATE_TIME, timeData) => {
|
|
30
30
|
if (timeData && isTimeLevelNotSupported(timeData))
|
|
31
31
|
return FILTER_TYPES.ADVANCED;
|
|
32
|
+
if (isAdvancedFilter(filter))
|
|
33
|
+
return FILTER_TYPES.ADVANCED;
|
|
32
34
|
if (isIncludeAllFilter(filter))
|
|
33
35
|
return FILTER_TYPES.INCLUDE_ALL;
|
|
34
36
|
if (isPeriodFilter(filter))
|
|
@@ -41,11 +43,9 @@ export const getFilterType = (filter, dataType = FilterModalType.DATE_TIME, time
|
|
|
41
43
|
return FILTER_TYPES.NUMERIC_RANGE;
|
|
42
44
|
if (isConditionFilter(filter))
|
|
43
45
|
return FILTER_TYPES.CONDITION;
|
|
44
|
-
if (isAdvancedFilter(filter))
|
|
45
|
-
return FILTER_TYPES.ADVANCED;
|
|
46
46
|
if (isInvalidFilter(filter))
|
|
47
47
|
return FILTER_TYPES.INVALID;
|
|
48
|
-
return FILTER_TYPES.
|
|
48
|
+
return FILTER_TYPES.INVALID;
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* Extracts Filter Type from Filter Jaql
|
|
@@ -70,6 +70,12 @@ export declare type FilterMultiSelectJaql = {
|
|
|
70
70
|
multiSelection: boolean;
|
|
71
71
|
members: string[];
|
|
72
72
|
isCondition?: boolean;
|
|
73
|
+
filter?: {
|
|
74
|
+
turnedOff?: boolean;
|
|
75
|
+
exclude?: {
|
|
76
|
+
members?: string[];
|
|
77
|
+
};
|
|
78
|
+
};
|
|
73
79
|
};
|
|
74
80
|
export declare type FilterMultipleConditionJaql = {
|
|
75
81
|
or: ConditionFilterJaql[];
|
|
@@ -249,6 +249,14 @@ export interface DateDimension extends Dimension {
|
|
|
249
249
|
* Minutes (round to 15) level (for Live Models)
|
|
250
250
|
*/
|
|
251
251
|
readonly MinutesRoundTo15: LevelAttribute;
|
|
252
|
+
/**
|
|
253
|
+
* Minutes level (for Live Models)
|
|
254
|
+
*/
|
|
255
|
+
readonly Minutes: LevelAttribute;
|
|
256
|
+
/**
|
|
257
|
+
* Seconds level (for Live Models)
|
|
258
|
+
*/
|
|
259
|
+
readonly Seconds: LevelAttribute;
|
|
252
260
|
/**
|
|
253
261
|
* Aggregated Hours level (for Live Models)
|
|
254
262
|
*/
|
|
@@ -346,6 +354,12 @@ export interface Filter extends Element {
|
|
|
346
354
|
* @internal
|
|
347
355
|
*/
|
|
348
356
|
disabled: boolean;
|
|
357
|
+
/**
|
|
358
|
+
* Boolean flag whether the filter is locked
|
|
359
|
+
*
|
|
360
|
+
* @internal
|
|
361
|
+
*/
|
|
362
|
+
locked: boolean;
|
|
349
363
|
/**
|
|
350
364
|
* Gets JAQL representing this Filter instance
|
|
351
365
|
*
|
|
@@ -258,6 +258,8 @@ export const DateLevels = {
|
|
|
258
258
|
Hours: 'Hours',
|
|
259
259
|
MinutesRoundTo30: 'MinutesRoundTo30',
|
|
260
260
|
MinutesRoundTo15: 'MinutesRoundTo15',
|
|
261
|
+
Minutes: 'Minutes',
|
|
262
|
+
Seconds: 'Seconds',
|
|
261
263
|
AggHours: 'AggHours',
|
|
262
264
|
AggMinutesRoundTo30: 'AggMinutesRoundTo30',
|
|
263
265
|
AggMinutesRoundTo15: 'AggMinutesRoundTo15',
|
|
@@ -273,6 +275,8 @@ export const DateLevels = {
|
|
|
273
275
|
DateLevels.Hours,
|
|
274
276
|
DateLevels.MinutesRoundTo30,
|
|
275
277
|
DateLevels.MinutesRoundTo15,
|
|
278
|
+
DateLevels.Minutes,
|
|
279
|
+
DateLevels.Seconds,
|
|
276
280
|
DateLevels.AggHours,
|
|
277
281
|
DateLevels.AggMinutesRoundTo30,
|
|
278
282
|
DateLevels.AggMinutesRoundTo15,
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -288,7 +288,7 @@ export declare const EMPTY_PIVOT_QUERY_RESULT_DATA: PivotQueryResultData;
|
|
|
288
288
|
* @param arg
|
|
289
289
|
* @internal
|
|
290
290
|
*/
|
|
291
|
-
export declare function isDataSource(arg: DataSource | Data | undefined): arg is DataSource;
|
|
291
|
+
export declare function isDataSource(arg: DataSource | Data | undefined): arg is DataSource | undefined;
|
|
292
292
|
/**
|
|
293
293
|
* Trend formula options.
|
|
294
294
|
*/
|
|
@@ -19,7 +19,7 @@ export const translation = {
|
|
|
19
19
|
},
|
|
20
20
|
filter: {
|
|
21
21
|
unsupportedType: 'Unsupported filter type: {{filterType}}',
|
|
22
|
-
unsupportedDatetimeLevel: 'Filters do not support the next "datetime" levels: Hours, MinutesRoundTo30, MinutesRoundTo15',
|
|
22
|
+
unsupportedDatetimeLevel: 'Filters do not support the next "datetime" levels: Hours, MinutesRoundTo30, MinutesRoundTo15, Minutes, Seconds',
|
|
23
23
|
membersFilterNullMember: 'MembersFilter of {{attributeId}} - member cannot be null',
|
|
24
24
|
},
|
|
25
25
|
unsupportedDimensionalElement: 'Unsupported dimensional element type',
|
|
@@ -19,7 +19,7 @@ export const translation = {
|
|
|
19
19
|
},
|
|
20
20
|
filter: {
|
|
21
21
|
unsupportedType: 'Непідтримуваний тип фільтра: {{filterType}}',
|
|
22
|
-
unsupportedDatetimeLevel: 'Фільтри не підтримують наступні рівні "datetime": Hours, MinutesRoundTo30, MinutesRoundTo15',
|
|
22
|
+
unsupportedDatetimeLevel: 'Фільтри не підтримують наступні рівні "datetime": Hours, MinutesRoundTo30, MinutesRoundTo15, Minutes, Seconds',
|
|
23
23
|
membersFilterNullMember: 'MembersFilter у {{attributeId}} - member не може бути нульовим',
|
|
24
24
|
},
|
|
25
25
|
unsupportedDimensionalElement: 'Непідтримуваний тип елемента',
|
package/dist/utils.js
CHANGED
|
@@ -89,6 +89,10 @@ export function isDataSourceInfo(dataSource) {
|
|
|
89
89
|
export const createFilterFromJaql = (jaql, instanceid) => {
|
|
90
90
|
// translation logic is based on FilterJaqlInternal type (from internal modern-analytics-filters)
|
|
91
91
|
// TODO reconcile FilterJaql and FilterJaqlInternal
|
|
92
|
-
const
|
|
93
|
-
|
|
92
|
+
const hasBackgroundFilter = jaql.filter.filter && !('turnedOff' in jaql.filter.filter);
|
|
93
|
+
const filter = createFilterFromJaqlInternal(jaql, instanceid);
|
|
94
|
+
if (hasBackgroundFilter) {
|
|
95
|
+
filter.backgroundFilter = createFilterFromJaqlInternal(Object.assign(Object.assign({}, jaql), { filter: jaql.filter.filter }), `${instanceid}-bg`);
|
|
96
|
+
}
|
|
97
|
+
return filter;
|
|
94
98
|
};
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Sisense",
|
|
12
12
|
"Compose SDK"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.14.0",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"main": "./dist/cjs/index.js",
|
|
17
17
|
"module": "./dist/index.js",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"author": "Sisense",
|
|
33
33
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@sisense/sdk-common": "^1.
|
|
36
|
-
"@sisense/sdk-rest-client": "^1.
|
|
35
|
+
"@sisense/sdk-common": "^1.14.0",
|
|
36
|
+
"@sisense/sdk-rest-client": "^1.14.0",
|
|
37
37
|
"guid-typescript": "^1.0.9",
|
|
38
38
|
"lodash": "^4.17.21",
|
|
39
39
|
"numeral": "^2.0.6",
|