@sisense/sdk-data 1.8.0 → 1.9.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/dimensional-model/attributes.d.ts +11 -0
- package/dist/dimensional-model/attributes.js +20 -1
- package/dist/dimensional-model/base.d.ts +0 -11
- package/dist/dimensional-model/base.js +0 -17
- package/dist/dimensional-model/dimensions.js +5 -4
- package/dist/dimensional-model/factory.js +0 -1
- package/dist/dimensional-model/filters/factory.d.ts +49 -0
- package/dist/dimensional-model/filters/factory.js +56 -1
- package/dist/dimensional-model/filters/filters.js +0 -3
- package/dist/dimensional-model/filters/utils/attribute-measure-util.d.ts +47 -0
- package/dist/dimensional-model/filters/utils/attribute-measure-util.js +77 -0
- package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +19 -0
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +162 -0
- package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +13 -0
- package/dist/dimensional-model/filters/utils/filter-code-util.js +49 -0
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +67 -0
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +149 -0
- package/dist/dimensional-model/filters/utils/filter-types-util.d.ts +15 -0
- package/dist/dimensional-model/filters/utils/filter-types-util.js +71 -0
- package/dist/dimensional-model/filters/utils/{modern-analytics-filters/types.d.ts → types.d.ts} +48 -48
- package/dist/dimensional-model/filters/utils/types.js +96 -0
- package/dist/dimensional-model/measures/factory.d.ts +13 -0
- package/dist/dimensional-model/measures/factory.js +15 -0
- package/dist/dimensional-model/measures/measures.js +1 -4
- package/dist/dimensional-model/types.d.ts +10 -1
- package/dist/dimensional-model/types.js +1 -3
- package/dist/utils.js +1 -1
- package/package.json +3 -3
- package/dist/dimensional-model/filters/utils/filter-jaql-util.d.ts +0 -25
- package/dist/dimensional-model/filters/utils/filter-jaql-util.js +0 -167
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-filter-util.d.ts +0 -2
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-filter-util.js +0 -27
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-types-util.d.ts +0 -24
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-types-util.js +0 -138
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/filter-types-util.d.ts +0 -31
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/filter-types-util.js +0 -114
- package/dist/dimensional-model/filters/utils/modern-analytics-filters/types.js +0 -97
- /package/dist/dimensional-model/filters/utils/{modern-analytics-filters/date-time-filter-util.d.ts → date-time-filter-util.d.ts} +0 -0
- /package/dist/dimensional-model/filters/utils/{modern-analytics-filters/date-time-filter-util.js → date-time-filter-util.js} +0 -0
|
@@ -162,7 +162,16 @@ export declare enum JaqlSortDirection {
|
|
|
162
162
|
DESC = "desc"
|
|
163
163
|
}
|
|
164
164
|
/** @internal */
|
|
165
|
-
export declare type Jaql = BaseJaql | FormulaJaql | FilterJaql;
|
|
165
|
+
export declare type Jaql = BaseJaql | FormulaJaql | FilterJaql | PivotJaql;
|
|
166
|
+
/** @internal */
|
|
167
|
+
export declare type PivotJaql = (BaseJaql | FormulaJaql) & {
|
|
168
|
+
sortDetails?: {
|
|
169
|
+
dir: JaqlSortDirection;
|
|
170
|
+
field: number;
|
|
171
|
+
measurePath?: Record<string, string> | null;
|
|
172
|
+
};
|
|
173
|
+
subtotalAgg?: 'sum' | 'min' | 'max' | 'avg' | 'median';
|
|
174
|
+
};
|
|
166
175
|
/** @internal */
|
|
167
176
|
export declare type BaseJaql = {
|
|
168
177
|
agg?: string;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
|
-
/* eslint-disable complexity */
|
|
4
3
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
|
-
/* eslint-disable max-lines */
|
|
6
4
|
/*
|
|
7
5
|
* Types
|
|
8
6
|
*/
|
|
@@ -21,7 +19,7 @@ export const AggregationTypes = {
|
|
|
21
19
|
/** Count aggregation type */
|
|
22
20
|
Count: 'count',
|
|
23
21
|
/** Count distinct aggregation type */
|
|
24
|
-
CountDistinct: '
|
|
22
|
+
CountDistinct: 'countDistinct',
|
|
25
23
|
/** Median aggregation type */
|
|
26
24
|
Median: 'median',
|
|
27
25
|
/** Variance aggregation type */
|
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import cloneDeep from 'lodash/cloneDeep.js';
|
|
2
|
-
import { createFilterFromJaqlInternal } from './dimensional-model/filters/utils/filter-jaql-util.js';
|
|
2
|
+
import { createFilterFromJaqlInternal } from './dimensional-model/filters/utils/filter-from-jaql-util.js';
|
|
3
3
|
/**
|
|
4
4
|
* A more performant, but slightly bulkier, RFC4122v4 implementation. Performance is improved by minimizing calls to random()
|
|
5
5
|
*
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Sisense",
|
|
12
12
|
"Compose SDK"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.9.0",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": "./dist/index.js",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"author": "Sisense ",
|
|
24
24
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@sisense/sdk-common": "^1.
|
|
27
|
-
"@sisense/sdk-rest-client": "^1.
|
|
26
|
+
"@sisense/sdk-common": "^1.9.0",
|
|
27
|
+
"@sisense/sdk-rest-client": "^1.9.0",
|
|
28
28
|
"guid-typescript": "^1.0.9",
|
|
29
29
|
"lodash": "^4.17.21",
|
|
30
30
|
"numeral": "^2.0.6",
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ConditionJaql, FilterJaqlInternal, RangeJaql, SpecificItemsJaql } from './modern-analytics-filters/types.js';
|
|
2
|
-
import { Attribute, Filter, LevelAttribute } from '../../interfaces.js';
|
|
3
|
-
import { FilterJaql } from '../../types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Creates a generic filter if the JAQL cannot be translated to a specific filter type.
|
|
6
|
-
*
|
|
7
|
-
* @param jaql - The JAQL object.
|
|
8
|
-
* @param instanceid - The instance ID.
|
|
9
|
-
* @returns - The created Filter object.
|
|
10
|
-
*/
|
|
11
|
-
export declare const createGenericFilter: (jaql: FilterJaql | FilterJaqlInternal, instanceid?: string) => Filter;
|
|
12
|
-
export declare const createFilterIncludeAll: (attribute: Attribute) => Filter;
|
|
13
|
-
export declare const createFilterFromConditionJaql: (attribute: Attribute, conditionJaql: ConditionJaql) => Filter;
|
|
14
|
-
export declare const createFilterFromSpecificItemsJaql: (attribute: Attribute, specificItemsJaql: SpecificItemsJaql) => Filter;
|
|
15
|
-
export declare const createFilterFromRangeJaql: (attribute: LevelAttribute, rangeJaql: RangeJaql) => Filter;
|
|
16
|
-
export declare function capitalizeFirstLetter(str: string): string;
|
|
17
|
-
export declare const createAttributeFromFilterJaql: (jaql: FilterJaql | FilterJaqlInternal) => Attribute | LevelAttribute;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a filter from a JAQL object.
|
|
20
|
-
*
|
|
21
|
-
* @param jaql - The filter JAQL object.
|
|
22
|
-
* @param instanceid - The instance ID.
|
|
23
|
-
* @returns - The created Filter object.
|
|
24
|
-
*/
|
|
25
|
-
export declare const createFilterFromJaqlInternal: (jaql: FilterJaqlInternal, instanceid?: string) => Filter;
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
|
-
import { ConditionTypes, FILTER_TYPES, } from './modern-analytics-filters/types.js';
|
|
3
|
-
import { isNumber } from '../../simple-column-types.js';
|
|
4
|
-
import { MetadataTypes } from '../../types.js';
|
|
5
|
-
import { DimensionalAttribute, DimensionalLevelAttribute } from '../../attributes.js';
|
|
6
|
-
import * as filterFactory from '../factory.js';
|
|
7
|
-
import { getSelectedConditionOption } from './modern-analytics-filters/condition-filter-util.js';
|
|
8
|
-
import { extractTypeFromFilterJaql } from './modern-analytics-filters/filter-types-util.js';
|
|
9
|
-
import { normalizeAttributeName } from '../../base.js';
|
|
10
|
-
const DATA_MODEL_MODULE_NAME = 'DM';
|
|
11
|
-
/**
|
|
12
|
-
* High order function to construct compose code for filter factory functions
|
|
13
|
-
*
|
|
14
|
-
* @param func - filter factory function
|
|
15
|
-
*/
|
|
16
|
-
function withComposeCode(func) {
|
|
17
|
-
return function (...args) {
|
|
18
|
-
const argValues = args
|
|
19
|
-
.map((arg) => {
|
|
20
|
-
if (MetadataTypes.isAttribute(arg)) {
|
|
21
|
-
return arg.composeCode;
|
|
22
|
-
}
|
|
23
|
-
if (Array.isArray(arg)) {
|
|
24
|
-
return ('[' +
|
|
25
|
-
arg
|
|
26
|
-
.map((item) => {
|
|
27
|
-
if (typeof item === 'string') {
|
|
28
|
-
return `'${item}'`;
|
|
29
|
-
}
|
|
30
|
-
if (typeof item === 'number') {
|
|
31
|
-
return item;
|
|
32
|
-
}
|
|
33
|
-
return JSON.stringify(item);
|
|
34
|
-
})
|
|
35
|
-
.join(', ') +
|
|
36
|
-
']');
|
|
37
|
-
}
|
|
38
|
-
return JSON.stringify(arg);
|
|
39
|
-
})
|
|
40
|
-
.join(', ');
|
|
41
|
-
const signature = `filterFactory.${func.name}(${argValues})`;
|
|
42
|
-
const filter = func(...args);
|
|
43
|
-
filter.composeCode = signature;
|
|
44
|
-
return filter;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Creates a generic filter if the JAQL cannot be translated to a specific filter type.
|
|
49
|
-
*
|
|
50
|
-
* @param jaql - The JAQL object.
|
|
51
|
-
* @param instanceid - The instance ID.
|
|
52
|
-
* @returns - The created Filter object.
|
|
53
|
-
*/
|
|
54
|
-
export const createGenericFilter = (jaql, instanceid) => {
|
|
55
|
-
return {
|
|
56
|
-
guid: instanceid,
|
|
57
|
-
jaql: (nested) => {
|
|
58
|
-
if (nested) {
|
|
59
|
-
return jaql;
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
jaql,
|
|
63
|
-
panel: 'scope',
|
|
64
|
-
};
|
|
65
|
-
},
|
|
66
|
-
attribute: {
|
|
67
|
-
id: jaql.dim,
|
|
68
|
-
},
|
|
69
|
-
type: 'filter',
|
|
70
|
-
serializable() {
|
|
71
|
-
return Object.assign(Object.assign({}, this), { jaql: this.jaql() });
|
|
72
|
-
},
|
|
73
|
-
toJSON() {
|
|
74
|
-
return this.serializable();
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
export const createFilterIncludeAll = (attribute) => {
|
|
79
|
-
return withComposeCode(filterFactory.members)(attribute, []);
|
|
80
|
-
};
|
|
81
|
-
export const createFilterFromConditionJaql = (attribute, conditionJaql) => {
|
|
82
|
-
switch (getSelectedConditionOption(conditionJaql)) {
|
|
83
|
-
case ConditionTypes.BOTTOM:
|
|
84
|
-
return withComposeCode(filterFactory.bottomRanking)(attribute, conditionJaql[ConditionTypes.BOTTOM]);
|
|
85
|
-
case ConditionTypes.GREATER_THAN:
|
|
86
|
-
return withComposeCode(filterFactory.greaterThan)(attribute, conditionJaql[ConditionTypes.GREATER_THAN]);
|
|
87
|
-
case ConditionTypes.GREATER_THAN_OR_EQUAL:
|
|
88
|
-
return withComposeCode(filterFactory.greaterThanOrEqual)(attribute, conditionJaql[ConditionTypes.GREATER_THAN_OR_EQUAL]);
|
|
89
|
-
case ConditionTypes.EQUALS:
|
|
90
|
-
return withComposeCode(filterFactory.equals)(attribute, conditionJaql[ConditionTypes.EQUALS]);
|
|
91
|
-
}
|
|
92
|
-
throw 'Jaql contains unsupported condition filter: ' + JSON.stringify(conditionJaql);
|
|
93
|
-
};
|
|
94
|
-
export const createFilterFromSpecificItemsJaql = (attribute, specificItemsJaql) => {
|
|
95
|
-
return withComposeCode(filterFactory.members)(attribute, specificItemsJaql.members);
|
|
96
|
-
};
|
|
97
|
-
export const createFilterFromRangeJaql = (attribute, rangeJaql) => {
|
|
98
|
-
return withComposeCode(filterFactory.dateRange)(attribute, rangeJaql.from, rangeJaql.to);
|
|
99
|
-
};
|
|
100
|
-
// TODO
|
|
101
|
-
// export const createFilterFromPeriodJaql = (
|
|
102
|
-
// attribute: LevelAttribute,
|
|
103
|
-
// periodJaql: PeriodJaql,
|
|
104
|
-
// ): Filter => {
|
|
105
|
-
// return filterFactory.dateRange(attribute, rangeJaql.from as string, rangeJaql.to as string);
|
|
106
|
-
// };
|
|
107
|
-
export function capitalizeFirstLetter(str) {
|
|
108
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
109
|
-
}
|
|
110
|
-
export const createAttributeFromFilterJaql = (jaql) => {
|
|
111
|
-
if (jaql.level) {
|
|
112
|
-
// while level in JAQL is in lowercase, LevelAttribute.granularity has the first char capitalized
|
|
113
|
-
const dateLevel = capitalizeFirstLetter(jaql.level);
|
|
114
|
-
const levelAttribute = new DimensionalLevelAttribute(jaql.column, jaql.dim, dateLevel);
|
|
115
|
-
levelAttribute.composeCode = normalizeAttributeName(jaql.table, jaql.column, dateLevel, DATA_MODEL_MODULE_NAME);
|
|
116
|
-
return levelAttribute;
|
|
117
|
-
}
|
|
118
|
-
const attributeType = isNumber(jaql.datatype)
|
|
119
|
-
? MetadataTypes.NumericAttribute
|
|
120
|
-
: MetadataTypes.TextAttribute;
|
|
121
|
-
const attribute = new DimensionalAttribute(jaql.column, jaql.dim, attributeType);
|
|
122
|
-
attribute.composeCode = normalizeAttributeName(jaql.table, jaql.column, undefined, DATA_MODEL_MODULE_NAME);
|
|
123
|
-
return attribute;
|
|
124
|
-
};
|
|
125
|
-
/**
|
|
126
|
-
* Creates a filter from a JAQL object.
|
|
127
|
-
*
|
|
128
|
-
* @param jaql - The filter JAQL object.
|
|
129
|
-
* @param instanceid - The instance ID.
|
|
130
|
-
* @returns - The created Filter object.
|
|
131
|
-
*/
|
|
132
|
-
// eslint-disable-next-line complexity
|
|
133
|
-
export const createFilterFromJaqlInternal = (jaql, instanceid) => {
|
|
134
|
-
try {
|
|
135
|
-
const jaqlWrapperType = extractTypeFromFilterJaql(jaql, jaql.datatype);
|
|
136
|
-
const { filter: filterJaqlWithType } = jaqlWrapperType;
|
|
137
|
-
const { jaqlType } = filterJaqlWithType;
|
|
138
|
-
const attribute = createAttributeFromFilterJaql(jaql);
|
|
139
|
-
switch (jaqlType) {
|
|
140
|
-
case FILTER_TYPES.INCLUDE_ALL:
|
|
141
|
-
return createFilterIncludeAll(attribute);
|
|
142
|
-
case FILTER_TYPES.SPECIFIC_ITEMS:
|
|
143
|
-
return createFilterFromSpecificItemsJaql(attribute, filterJaqlWithType);
|
|
144
|
-
case FILTER_TYPES.CONDITION:
|
|
145
|
-
return createFilterFromConditionJaql(attribute, filterJaqlWithType);
|
|
146
|
-
case FILTER_TYPES.DATE_RANGE:
|
|
147
|
-
return createFilterFromRangeJaql(attribute, filterJaqlWithType);
|
|
148
|
-
case FILTER_TYPES.PERIOD:
|
|
149
|
-
// TODO implement Filters of Period type
|
|
150
|
-
break;
|
|
151
|
-
case FILTER_TYPES.NUMERIC_RANGE:
|
|
152
|
-
// TODO implement Filters of Numeric Range type
|
|
153
|
-
break;
|
|
154
|
-
case FILTER_TYPES.ADVANCED:
|
|
155
|
-
// TODO implement Filters of Advanced type
|
|
156
|
-
break;
|
|
157
|
-
case FILTER_TYPES.INVALID:
|
|
158
|
-
return createGenericFilter(jaql, instanceid);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
catch (e) {
|
|
162
|
-
// console.error(e);
|
|
163
|
-
return createGenericFilter(jaql, instanceid);
|
|
164
|
-
}
|
|
165
|
-
// if a filter type is untranslatable, fall back to the generic filter
|
|
166
|
-
return createGenericFilter(jaql, instanceid);
|
|
167
|
-
};
|
package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-filter-util.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as conditionTypesUtil from './condition-types-util.js';
|
|
2
|
-
export const getSelectedConditionOption = (filter) => {
|
|
3
|
-
let selected;
|
|
4
|
-
selected = conditionTypesUtil.isBottomCondition(filter);
|
|
5
|
-
selected = conditionTypesUtil.isTopCondition(filter, selected);
|
|
6
|
-
selected = conditionTypesUtil.isExcludeCondition(filter, selected);
|
|
7
|
-
selected = conditionTypesUtil.isWithinCondition(filter, selected);
|
|
8
|
-
selected = conditionTypesUtil.isGreaterThanCondition(filter, selected);
|
|
9
|
-
selected = conditionTypesUtil.isGreaterThanOrEqualCondition(filter, selected);
|
|
10
|
-
selected = conditionTypesUtil.isLessThanCondition(filter, selected);
|
|
11
|
-
selected = conditionTypesUtil.isLessThanOrEqualCondition(filter, selected);
|
|
12
|
-
selected = conditionTypesUtil.isEqualsCondition(filter, selected);
|
|
13
|
-
selected = conditionTypesUtil.isNotEqualCondition(filter, selected);
|
|
14
|
-
selected = conditionTypesUtil.isEmptyCondition(filter, selected);
|
|
15
|
-
selected = conditionTypesUtil.isNotEmptyCondition(filter, selected);
|
|
16
|
-
selected = conditionTypesUtil.isContainsCondition(filter, selected);
|
|
17
|
-
selected = conditionTypesUtil.isDoesntContainCondition(filter, selected);
|
|
18
|
-
selected = conditionTypesUtil.isDoesntEndWithCondition(filter, selected);
|
|
19
|
-
selected = conditionTypesUtil.isDoesntStartsWithCondition(filter, selected);
|
|
20
|
-
selected = conditionTypesUtil.isEndsWithCondition(filter, selected);
|
|
21
|
-
selected = conditionTypesUtil.isStartsWithCondition(filter, selected);
|
|
22
|
-
selected = conditionTypesUtil.isBetweenCondition(filter, selected);
|
|
23
|
-
selected = conditionTypesUtil.isNotBetweenCondition(filter, selected);
|
|
24
|
-
selected = conditionTypesUtil.isMembersCondition(filter, selected);
|
|
25
|
-
selected = conditionTypesUtil.isMultipleCondition(filter, selected);
|
|
26
|
-
return selected;
|
|
27
|
-
};
|
package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-types-util.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ConditionTypes } from './types.js';
|
|
2
|
-
import type { ConditionJaql } from './types.js';
|
|
3
|
-
export declare const isTopCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
4
|
-
export declare const isBottomCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
5
|
-
export declare const isExcludeCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
6
|
-
export declare const isMembersCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
7
|
-
export declare const isWithinCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
8
|
-
export declare const isGreaterThanCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
9
|
-
export declare const isGreaterThanOrEqualCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
10
|
-
export declare const isLessThanCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
11
|
-
export declare const isLessThanOrEqualCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
12
|
-
export declare const isEqualsCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
13
|
-
export declare const isNotEqualCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
14
|
-
export declare const isEmptyCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
15
|
-
export declare const isNotEmptyCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
16
|
-
export declare const isContainsCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
17
|
-
export declare const isDoesntContainCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
18
|
-
export declare const isStartsWithCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
19
|
-
export declare const isDoesntStartsWithCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
20
|
-
export declare const isEndsWithCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
21
|
-
export declare const isDoesntEndWithCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
22
|
-
export declare const isBetweenCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
23
|
-
export declare const isNotBetweenCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
|
24
|
-
export declare const isMultipleCondition: (filter: ConditionJaql, selected?: ConditionTypes) => ConditionTypes;
|
package/dist/dimensional-model/filters/utils/modern-analytics-filters/condition-types-util.js
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
|
-
import { ConditionTypes } from './types.js';
|
|
3
|
-
export const isTopCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
4
|
-
if (filter.top !== undefined) {
|
|
5
|
-
return ConditionTypes.TOP;
|
|
6
|
-
}
|
|
7
|
-
return selected;
|
|
8
|
-
};
|
|
9
|
-
export const isBottomCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
10
|
-
if (filter.bottom !== undefined) {
|
|
11
|
-
return ConditionTypes.BOTTOM;
|
|
12
|
-
}
|
|
13
|
-
return selected;
|
|
14
|
-
};
|
|
15
|
-
export const isExcludeCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
16
|
-
var _a;
|
|
17
|
-
if ((_a = filter.exclude) === null || _a === void 0 ? void 0 : _a.members) {
|
|
18
|
-
return ConditionTypes.IS_NOT;
|
|
19
|
-
}
|
|
20
|
-
return selected;
|
|
21
|
-
};
|
|
22
|
-
export const isMembersCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
23
|
-
if (filter.members && filter.isCondition) {
|
|
24
|
-
return ConditionTypes.IS;
|
|
25
|
-
}
|
|
26
|
-
return selected;
|
|
27
|
-
};
|
|
28
|
-
export const isWithinCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
29
|
-
var _a, _b;
|
|
30
|
-
if (((_a = filter.last) === null || _a === void 0 ? void 0 : _a.anchor) !== undefined || ((_b = filter.next) === null || _b === void 0 ? void 0 : _b.anchor) !== undefined) {
|
|
31
|
-
return ConditionTypes.IS_WITHIN;
|
|
32
|
-
}
|
|
33
|
-
return selected;
|
|
34
|
-
};
|
|
35
|
-
export const isGreaterThanCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
36
|
-
if (filter.fromNotEqual !== undefined) {
|
|
37
|
-
return ConditionTypes.GREATER_THAN;
|
|
38
|
-
}
|
|
39
|
-
return selected;
|
|
40
|
-
};
|
|
41
|
-
export const isGreaterThanOrEqualCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
42
|
-
if (filter.from !== undefined && !filter.isBetween) {
|
|
43
|
-
return ConditionTypes.GREATER_THAN_OR_EQUAL;
|
|
44
|
-
}
|
|
45
|
-
return selected;
|
|
46
|
-
};
|
|
47
|
-
export const isLessThanCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
48
|
-
if (filter.toNotEqual !== undefined) {
|
|
49
|
-
return ConditionTypes.LESS_THAN;
|
|
50
|
-
}
|
|
51
|
-
return selected;
|
|
52
|
-
};
|
|
53
|
-
export const isLessThanOrEqualCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
54
|
-
if (filter.to !== undefined && !filter.isBetween) {
|
|
55
|
-
return ConditionTypes.LESS_THAN_OR_EQUAL;
|
|
56
|
-
}
|
|
57
|
-
return selected;
|
|
58
|
-
};
|
|
59
|
-
export const isEqualsCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
60
|
-
if (filter.equals !== undefined) {
|
|
61
|
-
return ConditionTypes.EQUALS;
|
|
62
|
-
}
|
|
63
|
-
return selected;
|
|
64
|
-
};
|
|
65
|
-
export const isNotEqualCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
66
|
-
if (filter.doesntEqual !== undefined) {
|
|
67
|
-
return ConditionTypes.DOESNT_EQUAL;
|
|
68
|
-
}
|
|
69
|
-
return selected;
|
|
70
|
-
};
|
|
71
|
-
export const isEmptyCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
72
|
-
if (filter.equals === '' && filter.isEmpty) {
|
|
73
|
-
return ConditionTypes.IS_EMPTY;
|
|
74
|
-
}
|
|
75
|
-
return selected;
|
|
76
|
-
};
|
|
77
|
-
export const isNotEmptyCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
78
|
-
if (filter.doesntEqual === '' && filter.isEmpty) {
|
|
79
|
-
return ConditionTypes.IS_NOT_EMPTY;
|
|
80
|
-
}
|
|
81
|
-
return selected;
|
|
82
|
-
};
|
|
83
|
-
export const isContainsCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
84
|
-
if (filter.contains !== undefined) {
|
|
85
|
-
return ConditionTypes.CONTAINS;
|
|
86
|
-
}
|
|
87
|
-
return selected;
|
|
88
|
-
};
|
|
89
|
-
export const isDoesntContainCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
90
|
-
if (filter.doesntContain !== undefined) {
|
|
91
|
-
return ConditionTypes.DOESNT_CONTAIN;
|
|
92
|
-
}
|
|
93
|
-
return selected;
|
|
94
|
-
};
|
|
95
|
-
export const isStartsWithCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
96
|
-
if (filter.startsWith !== undefined) {
|
|
97
|
-
return ConditionTypes.STARTS_WITH;
|
|
98
|
-
}
|
|
99
|
-
return selected;
|
|
100
|
-
};
|
|
101
|
-
export const isDoesntStartsWithCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
102
|
-
if (filter.doesntStartWith !== undefined) {
|
|
103
|
-
return ConditionTypes.DOESNT_START_WITH;
|
|
104
|
-
}
|
|
105
|
-
return selected;
|
|
106
|
-
};
|
|
107
|
-
export const isEndsWithCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
108
|
-
if (filter.endsWith !== undefined) {
|
|
109
|
-
return ConditionTypes.ENDS_WITH;
|
|
110
|
-
}
|
|
111
|
-
return selected;
|
|
112
|
-
};
|
|
113
|
-
export const isDoesntEndWithCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
114
|
-
if (filter.doesntEndWith !== undefined) {
|
|
115
|
-
return ConditionTypes.DOESNT_END_WITH;
|
|
116
|
-
}
|
|
117
|
-
return selected;
|
|
118
|
-
};
|
|
119
|
-
export const isBetweenCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
120
|
-
if (filter.from !== undefined && filter.to !== undefined) {
|
|
121
|
-
return ConditionTypes.BETWEEN;
|
|
122
|
-
}
|
|
123
|
-
return selected;
|
|
124
|
-
};
|
|
125
|
-
export const isNotBetweenCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
126
|
-
const { exclude } = filter;
|
|
127
|
-
if ((exclude === null || exclude === void 0 ? void 0 : exclude.from) !== undefined && (exclude === null || exclude === void 0 ? void 0 : exclude.to) !== undefined) {
|
|
128
|
-
return ConditionTypes.IS_NOT_BETWEEN;
|
|
129
|
-
}
|
|
130
|
-
return selected;
|
|
131
|
-
};
|
|
132
|
-
export const isMultipleCondition = (filter, selected = ConditionTypes.NONE) => {
|
|
133
|
-
const { or, and } = filter;
|
|
134
|
-
if (or || and) {
|
|
135
|
-
return ConditionTypes.MULTIPLE_CONDITION;
|
|
136
|
-
}
|
|
137
|
-
return selected;
|
|
138
|
-
};
|
package/dist/dimensional-model/filters/utils/modern-analytics-filters/filter-types-util.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { FilterModalTypes, FilterJaqlTypes, DatetimeLevel, FilterTypes, PeriodJaql, FilterJaqlInternal, FilterJaqlWrapperType } from './types.js';
|
|
2
|
-
export declare const isIncludeAllFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
3
|
-
export declare const getInnerPeriodFilter: (filter: PeriodJaql) => {
|
|
4
|
-
count: number;
|
|
5
|
-
offset: number;
|
|
6
|
-
anchor?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const isPeriodFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
9
|
-
export declare const isSpecificItemsFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
10
|
-
export declare const isDateRangeFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes, dataType: FilterModalTypes) => FilterTypes;
|
|
11
|
-
export declare const isNumericRangeFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
12
|
-
export declare const isConditionFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
13
|
-
export declare const isAdvancedFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
14
|
-
export declare const isTimeLevelNotSupported: (timeData: {
|
|
15
|
-
level?: DatetimeLevel;
|
|
16
|
-
bucket?: string;
|
|
17
|
-
}) => boolean;
|
|
18
|
-
export declare const isInvalidFilter: (filter: FilterJaqlTypes, currentDefaultFilter: FilterTypes) => FilterTypes;
|
|
19
|
-
export declare const getFilterType: (filter: FilterJaqlTypes, dataType?: FilterModalTypes, timeData?: {
|
|
20
|
-
level?: DatetimeLevel;
|
|
21
|
-
bucket?: string;
|
|
22
|
-
}) => FilterTypes;
|
|
23
|
-
/**
|
|
24
|
-
* Extracts Type from Filter Jaql
|
|
25
|
-
*
|
|
26
|
-
* @param jaql - jaql
|
|
27
|
-
* @param dataType - data type
|
|
28
|
-
* @return FilterJaqlWrapperType
|
|
29
|
-
* @internal
|
|
30
|
-
*/
|
|
31
|
-
export declare const extractTypeFromFilterJaql: (jaql: FilterJaqlInternal, dataType: FilterModalTypes) => FilterJaqlWrapperType;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
|
-
import { getSelectedConditionOption } from './condition-filter-util.js';
|
|
3
|
-
import { FilterModalTypes, DatetimeLevel, FILTER_TYPES, nonSupportedMinutesBuckets, ConditionTypes, FILTER_JAQL_WRAPPER, } from './types.js';
|
|
4
|
-
import { getCorrectTimeLevel } from './date-time-filter-util.js';
|
|
5
|
-
export const isIncludeAllFilter = (filter, currentDefaultFilter) => {
|
|
6
|
-
if (filter === null || filter === void 0 ? void 0 : filter.all) {
|
|
7
|
-
return FILTER_TYPES.INCLUDE_ALL;
|
|
8
|
-
}
|
|
9
|
-
return currentDefaultFilter;
|
|
10
|
-
};
|
|
11
|
-
export const getInnerPeriodFilter = (filter) => {
|
|
12
|
-
return filter.last ? filter.last : filter.next;
|
|
13
|
-
};
|
|
14
|
-
export const isPeriodFilter = (filter, currentDefaultFilter) => {
|
|
15
|
-
const period = getInnerPeriodFilter(filter);
|
|
16
|
-
if ((period === null || period === void 0 ? void 0 : period.offset) < 2) {
|
|
17
|
-
return FILTER_TYPES.PERIOD;
|
|
18
|
-
}
|
|
19
|
-
return currentDefaultFilter;
|
|
20
|
-
};
|
|
21
|
-
export const isSpecificItemsFilter = (filter, currentDefaultFilter) => {
|
|
22
|
-
const specificItemsFilter = filter;
|
|
23
|
-
if (specificItemsFilter === null || specificItemsFilter === void 0 ? void 0 : specificItemsFilter.members) {
|
|
24
|
-
if (specificItemsFilter.members.length > 0) {
|
|
25
|
-
return FILTER_TYPES.SPECIFIC_ITEMS;
|
|
26
|
-
}
|
|
27
|
-
return FILTER_TYPES.INCLUDE_ALL;
|
|
28
|
-
}
|
|
29
|
-
return currentDefaultFilter;
|
|
30
|
-
};
|
|
31
|
-
const areFromOrToDefined = (fromRange, toRange) => (fromRange && typeof fromRange === 'string') || (toRange && typeof toRange === 'string');
|
|
32
|
-
const areFromAndToEmpty = (from, to) => from === '' && to === '';
|
|
33
|
-
export const isDateRangeFilter = (filter, currentDefaultFilter, dataType) => {
|
|
34
|
-
const { from, to } = filter;
|
|
35
|
-
if (dataType !== FilterModalTypes.DATE_TIME) {
|
|
36
|
-
return currentDefaultFilter;
|
|
37
|
-
}
|
|
38
|
-
if (areFromOrToDefined(from, to)) {
|
|
39
|
-
return FILTER_TYPES.DATE_RANGE;
|
|
40
|
-
}
|
|
41
|
-
if (areFromAndToEmpty(from, to)) {
|
|
42
|
-
return FILTER_TYPES.INCLUDE_ALL;
|
|
43
|
-
}
|
|
44
|
-
return currentDefaultFilter;
|
|
45
|
-
};
|
|
46
|
-
export const isNumericRangeFilter = (filter, currentDefaultFilter) => {
|
|
47
|
-
const { from, to } = filter;
|
|
48
|
-
if (from !== undefined && to !== undefined && !filter.isBetween) {
|
|
49
|
-
return FILTER_TYPES.NUMERIC_RANGE;
|
|
50
|
-
}
|
|
51
|
-
return currentDefaultFilter;
|
|
52
|
-
};
|
|
53
|
-
export const isConditionFilter = (filter, currentDefaultFilter) => {
|
|
54
|
-
if (getSelectedConditionOption(filter) !== ConditionTypes.NONE) {
|
|
55
|
-
return FILTER_TYPES.CONDITION;
|
|
56
|
-
}
|
|
57
|
-
return currentDefaultFilter;
|
|
58
|
-
};
|
|
59
|
-
export const isAdvancedFilter = (filter, currentDefaultFilter) => {
|
|
60
|
-
if (Object.keys(filter).includes('isAdvanced')) {
|
|
61
|
-
return FILTER_TYPES.ADVANCED;
|
|
62
|
-
}
|
|
63
|
-
return currentDefaultFilter;
|
|
64
|
-
};
|
|
65
|
-
export const isTimeLevelNotSupported = (timeData) => {
|
|
66
|
-
const { level, bucket } = timeData;
|
|
67
|
-
return !!(level &&
|
|
68
|
-
bucket &&
|
|
69
|
-
level === DatetimeLevel.MINUTES &&
|
|
70
|
-
nonSupportedMinutesBuckets.includes(bucket));
|
|
71
|
-
};
|
|
72
|
-
export const isInvalidFilter = (filter, currentDefaultFilter) => {
|
|
73
|
-
if (filter.jaqlType === FILTER_TYPES.INVALID) {
|
|
74
|
-
return FILTER_TYPES.INVALID;
|
|
75
|
-
}
|
|
76
|
-
return currentDefaultFilter;
|
|
77
|
-
};
|
|
78
|
-
export const getFilterType = (filter, dataType = FilterModalTypes.DATE_TIME, timeData) => {
|
|
79
|
-
let filterType = FILTER_TYPES.ADVANCED;
|
|
80
|
-
if (timeData && isTimeLevelNotSupported(timeData)) {
|
|
81
|
-
return filterType;
|
|
82
|
-
}
|
|
83
|
-
filterType = isIncludeAllFilter(filter, filterType);
|
|
84
|
-
filterType = isPeriodFilter(filter, filterType);
|
|
85
|
-
filterType = isSpecificItemsFilter(filter, filterType);
|
|
86
|
-
filterType = isConditionFilter(filter, filterType);
|
|
87
|
-
filterType = isNumericRangeFilter(filter, filterType);
|
|
88
|
-
filterType = isDateRangeFilter(filter, filterType, dataType);
|
|
89
|
-
filterType = isAdvancedFilter(filter, filterType);
|
|
90
|
-
filterType = isInvalidFilter(filter, filterType);
|
|
91
|
-
return filterType;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Extracts Type from Filter Jaql
|
|
95
|
-
*
|
|
96
|
-
* @param jaql - jaql
|
|
97
|
-
* @param dataType - data type
|
|
98
|
-
* @return FilterJaqlWrapperType
|
|
99
|
-
* @internal
|
|
100
|
-
*/
|
|
101
|
-
export const extractTypeFromFilterJaql = (jaql, dataType) => {
|
|
102
|
-
const { level: filterLevel, filter, bucket } = jaql;
|
|
103
|
-
const filterFromJaql = filter || FILTER_JAQL_WRAPPER.filter;
|
|
104
|
-
const filterToReturn = {
|
|
105
|
-
filter: Object.assign(Object.assign({}, filterFromJaql), { jaqlType: getFilterType(filterFromJaql, dataType) }),
|
|
106
|
-
};
|
|
107
|
-
if (dataType === FilterModalTypes.DATE_TIME) {
|
|
108
|
-
const backgroundFilter = filterFromJaql;
|
|
109
|
-
const level = (backgroundFilter === null || backgroundFilter === void 0 ? void 0 : backgroundFilter.level) || filterLevel;
|
|
110
|
-
filterToReturn.level = getCorrectTimeLevel(level, bucket);
|
|
111
|
-
filterToReturn.filter.jaqlType = getFilterType(filterFromJaql, dataType, { level, bucket });
|
|
112
|
-
}
|
|
113
|
-
return filterToReturn;
|
|
114
|
-
};
|