@sisense/sdk-data 1.14.0 → 1.15.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/filters/factory.d.ts +4 -2
- package/dist/cjs/dimensional-model/filters/factory.js +5 -3
- package/dist/cjs/dimensional-model/filters/filters.d.ts +4 -2
- package/dist/cjs/dimensional-model/filters/filters.js +5 -3
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +2 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +5 -2
- package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +1 -1
- package/dist/cjs/package.json +12 -0
- package/dist/dimensional-model/filters/factory.d.ts +4 -2
- package/dist/dimensional-model/filters/factory.js +5 -3
- package/dist/dimensional-model/filters/filters.d.ts +4 -2
- package/dist/dimensional-model/filters/filters.js +5 -3
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +2 -1
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +5 -2
- package/dist/dimensional-model/filters/utils/filter-types-util.js +1 -1
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
- package/package.json +4 -9
- package/dist/cjs/dimensional-model/analytics/factory.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/analytics/factory.test.js +0 -99
- package/dist/cjs/dimensional-model/attributes.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/attributes.test.js +0 -154
- package/dist/cjs/dimensional-model/base.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/base.test.js +0 -17
- package/dist/cjs/dimensional-model/dimensions.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/dimensions.test.js +0 -84
- package/dist/cjs/dimensional-model/filters/factory.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/filters/factory.test.js +0 -366
- package/dist/cjs/dimensional-model/filters/filters.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/filters/filters.test.js +0 -241
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-code-util.test.js +0 -32
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.test.js +0 -623
- package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/filters/utils/filter-matcher-utils.test.js +0 -236
- package/dist/cjs/dimensional-model/measures/factory.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/measures/factory.test.js +0 -481
- package/dist/cjs/dimensional-model/measures/measures.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/measures/measures.test.js +0 -79
- package/dist/cjs/dimensional-model/simple-column-types.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/simple-column-types.test.js +0 -85
- package/dist/cjs/dimensional-model/types.test.d.ts +0 -1
- package/dist/cjs/dimensional-model/types.test.js +0 -33
- package/dist/cjs/utils.test.d.ts +0 -1
- package/dist/cjs/utils.test.js +0 -182
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
6
|
-
const filters_js_1 = require("./filters.js");
|
|
7
|
-
const attributes_js_1 = require("../attributes.js");
|
|
8
|
-
const measures_js_1 = require("../measures/measures.js");
|
|
9
|
-
const types_js_1 = require("../types.js");
|
|
10
|
-
describe('Filters jaql preparations', () => {
|
|
11
|
-
it('must prepare members filter jaql', () => {
|
|
12
|
-
const result = {
|
|
13
|
-
jaql: {
|
|
14
|
-
title: 'CommerceGender',
|
|
15
|
-
dim: '[Commerce.Gender]',
|
|
16
|
-
datatype: 'text',
|
|
17
|
-
filter: { members: ['Female'] },
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
const filter = new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), ['Female']);
|
|
21
|
-
const jaql = filter.jaql();
|
|
22
|
-
expect(jaql).toStrictEqual(result);
|
|
23
|
-
});
|
|
24
|
-
it('must prepare exclude filter jaql', () => {
|
|
25
|
-
const result = {
|
|
26
|
-
jaql: {
|
|
27
|
-
title: 'CommerceGender',
|
|
28
|
-
dim: '[Commerce.Gender]',
|
|
29
|
-
datatype: 'text',
|
|
30
|
-
filter: { exclude: { members: ['Female'] } },
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
const filter = new filters_js_1.ExcludeFilter(new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), [
|
|
34
|
-
'Female',
|
|
35
|
-
]));
|
|
36
|
-
const jaql = filter.jaql();
|
|
37
|
-
expect(jaql).toStrictEqual(result);
|
|
38
|
-
});
|
|
39
|
-
it('must prepare date range filter jaql', () => {
|
|
40
|
-
const result = {
|
|
41
|
-
jaql: {
|
|
42
|
-
title: 'Years',
|
|
43
|
-
dim: '[Commerce.Date (Calendar)]',
|
|
44
|
-
level: 'years',
|
|
45
|
-
datatype: 'datetime',
|
|
46
|
-
filter: {
|
|
47
|
-
from: '2010-01-01T00:00:00.000Z',
|
|
48
|
-
to: '2012-01-01T00:00:00.000Z',
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
const filter = new filters_js_1.DateRangeFilter(new attributes_js_1.DimensionalLevelAttribute('Years', '[Commerce.Date (Calendar)]', 'Years'), new Date('2010-01-01'), new Date('2012-01-01'));
|
|
53
|
-
const jaql = filter.jaql();
|
|
54
|
-
expect(jaql).toStrictEqual(result);
|
|
55
|
-
});
|
|
56
|
-
it('must prepare partial date range filters jaql', () => {
|
|
57
|
-
var _a, _b, _c, _d;
|
|
58
|
-
const filterFrom = new filters_js_1.DateRangeFilter(new attributes_js_1.DimensionalLevelAttribute('Years', '[Commerce.Date (Calendar)]', 'Years'), new Date('2010-01-01'));
|
|
59
|
-
const filterTo = new filters_js_1.DateRangeFilter(new attributes_js_1.DimensionalLevelAttribute('Years', '[Commerce.Date (Calendar)]', 'Years'), undefined, new Date('2012-01-01'));
|
|
60
|
-
const jaqlFrom = filterFrom.jaql();
|
|
61
|
-
const jaqlTo = filterTo.jaql();
|
|
62
|
-
expect((_a = jaqlFrom.jaql.filter) === null || _a === void 0 ? void 0 : _a.from).toBe('2010-01-01T00:00:00.000Z');
|
|
63
|
-
expect((_b = jaqlFrom.jaql.filter) === null || _b === void 0 ? void 0 : _b.to).toBeUndefined();
|
|
64
|
-
expect((_c = jaqlTo.jaql.filter) === null || _c === void 0 ? void 0 : _c.from).toBeUndefined();
|
|
65
|
-
expect((_d = jaqlTo.jaql.filter) === null || _d === void 0 ? void 0 : _d.to).toBe('2012-01-01T00:00:00.000Z');
|
|
66
|
-
});
|
|
67
|
-
it('must prepare logical attribute filter jaql', () => {
|
|
68
|
-
const result = {
|
|
69
|
-
jaql: {
|
|
70
|
-
title: 'CommerceGender',
|
|
71
|
-
dim: '[Commerce.Gender]',
|
|
72
|
-
datatype: 'text',
|
|
73
|
-
filter: {
|
|
74
|
-
or: [{ members: ['Female'] }, { exclude: { members: ['Male'] } }],
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
const filter = new filters_js_1.LogicalAttributeFilter([
|
|
79
|
-
new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), [
|
|
80
|
-
'Female',
|
|
81
|
-
]),
|
|
82
|
-
new filters_js_1.ExcludeFilter(new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), [
|
|
83
|
-
'Male',
|
|
84
|
-
])),
|
|
85
|
-
], 'or');
|
|
86
|
-
const jaql = filter.jaql();
|
|
87
|
-
expect(jaql).toStrictEqual(result);
|
|
88
|
-
});
|
|
89
|
-
it('must prepare measure filter jaql', () => {
|
|
90
|
-
const result = {
|
|
91
|
-
jaql: {
|
|
92
|
-
title: 'Cost',
|
|
93
|
-
dim: '[Commerce.Cost]',
|
|
94
|
-
datatype: 'numeric',
|
|
95
|
-
agg: 'sum',
|
|
96
|
-
filter: {},
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
const filter = new filters_js_1.MeasureFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), new measures_js_1.DimensionalBaseMeasure('Cost', new attributes_js_1.DimensionalAttribute('[Commerce.Cost]', '[Commerce.Cost]', 'numeric-attribute'), 'sum'));
|
|
100
|
-
const jaql = filter.jaql();
|
|
101
|
-
expect(jaql).toStrictEqual(result);
|
|
102
|
-
});
|
|
103
|
-
it('must prepare relative date (years level) filter jaql', () => {
|
|
104
|
-
const result = {
|
|
105
|
-
jaql: {
|
|
106
|
-
title: 'Years',
|
|
107
|
-
dim: '[Commerce.Date (Calendar)]',
|
|
108
|
-
level: 'years',
|
|
109
|
-
datatype: 'datetime',
|
|
110
|
-
filter: {
|
|
111
|
-
last: { offset: 0, count: 2, anchor: '2012-01-01T00:00:00.000Z' },
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
const filter = new filters_js_1.RelativeDateFilter(new attributes_js_1.DimensionalLevelAttribute('Years', '[Commerce.Date (Calendar)]', 'Years'), 0, 2, filters_js_1.DateOperators.Last, new Date('2012-01-01'));
|
|
116
|
-
const jaql = filter.jaql();
|
|
117
|
-
expect(jaql).toStrictEqual(result);
|
|
118
|
-
});
|
|
119
|
-
it('must prepare relative date (minutes level) filter jaql', () => {
|
|
120
|
-
const result = {
|
|
121
|
-
jaql: {
|
|
122
|
-
title: types_js_1.DateLevels.AggMinutesRoundTo15,
|
|
123
|
-
dim: '[Commerce.Date (Calendar)]',
|
|
124
|
-
level: 'minutes',
|
|
125
|
-
bucket: '15',
|
|
126
|
-
datatype: 'datetime',
|
|
127
|
-
filter: {
|
|
128
|
-
last: { offset: 0, count: 2, anchor: '2012-01-01T00:00:00.000Z' },
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
const filter = new filters_js_1.RelativeDateFilter(new attributes_js_1.DimensionalLevelAttribute(types_js_1.DateLevels.AggMinutesRoundTo15, '[Commerce.Date (Calendar)]', types_js_1.DateLevels.AggMinutesRoundTo15), 0, 2, filters_js_1.DateOperators.Last, new Date('2012-01-01'));
|
|
133
|
-
const jaql = filter.jaql();
|
|
134
|
-
expect(jaql).toStrictEqual(result);
|
|
135
|
-
});
|
|
136
|
-
it('must prepare text filter jaql', () => {
|
|
137
|
-
const result = {
|
|
138
|
-
jaql: {
|
|
139
|
-
title: 'CommerceGender',
|
|
140
|
-
dim: '[Commerce.Gender]',
|
|
141
|
-
datatype: 'text',
|
|
142
|
-
filter: { contains: 'Male' },
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
const filter = new filters_js_1.TextFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), filters_js_1.TextOperators.Contains, 'Male');
|
|
146
|
-
const jaql = filter.jaql();
|
|
147
|
-
expect(jaql).toStrictEqual(result);
|
|
148
|
-
});
|
|
149
|
-
it('must prepare numeric filter jaql', () => {
|
|
150
|
-
const result = {
|
|
151
|
-
jaql: {
|
|
152
|
-
title: 'CommerceCost',
|
|
153
|
-
dim: '[Commerce.Cost]',
|
|
154
|
-
datatype: 'numeric',
|
|
155
|
-
filter: { from: 1, to: 3 },
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
|
-
const filter = new filters_js_1.NumericFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Cost]', '[Commerce.Cost]', 'numeric-attribute'), filters_js_1.NumericOperators.From, 1, filters_js_1.NumericOperators.To, 3);
|
|
159
|
-
const jaql = filter.jaql();
|
|
160
|
-
expect(jaql).toStrictEqual(result);
|
|
161
|
-
});
|
|
162
|
-
it('must prepare ranking filter jaql', () => {
|
|
163
|
-
const result = {
|
|
164
|
-
jaql: {
|
|
165
|
-
title: 'CommerceCost',
|
|
166
|
-
dim: '[Commerce.Cost]',
|
|
167
|
-
datatype: 'numeric',
|
|
168
|
-
filter: {
|
|
169
|
-
top: 2,
|
|
170
|
-
by: { title: 'Cost', agg: 'sum', dim: '[Commerce.Cost]', datatype: 'numeric' },
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
};
|
|
174
|
-
const filter = new filters_js_1.RankingFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Cost]', '[Commerce.Cost]', 'numeric-attribute'), new measures_js_1.DimensionalBaseMeasure('Cost', new attributes_js_1.DimensionalAttribute('[Commerce.Cost]', '[Commerce.Cost]', 'numeric-attribute'), 'sum'), filters_js_1.RankingOperators.Top, 2);
|
|
175
|
-
const jaql = filter.jaql();
|
|
176
|
-
expect(jaql).toStrictEqual(result);
|
|
177
|
-
});
|
|
178
|
-
it('must prepare cascading filter jaql', () => {
|
|
179
|
-
const result = [
|
|
180
|
-
{
|
|
181
|
-
jaql: {
|
|
182
|
-
title: 'CategoryCategory',
|
|
183
|
-
dim: '[Category.Category]',
|
|
184
|
-
datatype: 'text',
|
|
185
|
-
filter: {
|
|
186
|
-
members: ['Apple Mac Desktops', 'Apple Mac Laptops', 'Calculators'],
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
panel: 'scope',
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
jaql: {
|
|
193
|
-
title: 'CommerceGender',
|
|
194
|
-
dim: '[Commerce.Gender]',
|
|
195
|
-
datatype: 'text',
|
|
196
|
-
filter: {
|
|
197
|
-
members: ['Female'],
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
panel: 'scope',
|
|
201
|
-
},
|
|
202
|
-
];
|
|
203
|
-
const levelFilter1 = new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Category.Category]', '[Category.Category]'), ['Apple Mac Desktops', 'Apple Mac Laptops', 'Calculators']);
|
|
204
|
-
const levelFilter2 = new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), ['Female']);
|
|
205
|
-
const filter = new filters_js_1.CascadingFilter([levelFilter1, levelFilter2]);
|
|
206
|
-
const jaql = filter.jaql();
|
|
207
|
-
expect(jaql).toStrictEqual(result);
|
|
208
|
-
});
|
|
209
|
-
it('must prepare members filter jaql with inner background filter', () => {
|
|
210
|
-
const result = {
|
|
211
|
-
jaql: {
|
|
212
|
-
title: 'CommerceGender',
|
|
213
|
-
dim: '[Commerce.Gender]',
|
|
214
|
-
datatype: 'text',
|
|
215
|
-
filter: { and: [{ members: ['Female'] }, { members: ['Female', 'Male'] }] },
|
|
216
|
-
},
|
|
217
|
-
};
|
|
218
|
-
const attribute = new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]');
|
|
219
|
-
const backgroundFilter = new filters_js_1.MembersFilter(attribute, ['Female', 'Male']);
|
|
220
|
-
const filter = new filters_js_1.MembersFilter(attribute, ['Female'], undefined, undefined, backgroundFilter);
|
|
221
|
-
expect(filter.backgroundFilter).toBe(backgroundFilter);
|
|
222
|
-
const jaql = filter.jaql();
|
|
223
|
-
expect(jaql).toStrictEqual(result);
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
describe('Disabled Filter', () => {
|
|
227
|
-
it('must prepare empty jaql for attribute filter', () => {
|
|
228
|
-
const filter = new filters_js_1.MembersFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), ['Female']);
|
|
229
|
-
expect(filter.disabled).toBe(false);
|
|
230
|
-
filter.disabled = true;
|
|
231
|
-
expect(filter.jaql(true)).toStrictEqual({ filter: {} });
|
|
232
|
-
expect(filter.jaql()).toStrictEqual({ jaql: { filter: {} } });
|
|
233
|
-
});
|
|
234
|
-
it('must prepare empty jaql for measure filter', () => {
|
|
235
|
-
const filter = new filters_js_1.MeasureFilter(new attributes_js_1.DimensionalAttribute('[Commerce.Gender]', '[Commerce.Gender]'), new measures_js_1.DimensionalBaseMeasure('Cost', new attributes_js_1.DimensionalAttribute('[Commerce.Cost]', '[Commerce.Cost]', 'numeric-attribute'), 'sum'));
|
|
236
|
-
expect(filter.disabled).toBe(false);
|
|
237
|
-
filter.disabled = true;
|
|
238
|
-
expect(filter.jaql(true)).toStrictEqual({ filter: {} });
|
|
239
|
-
expect(filter.jaql()).toStrictEqual({ jaql: { filter: {} } });
|
|
240
|
-
});
|
|
241
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const attributes_js_1 = require("../../attributes.js");
|
|
4
|
-
const filter_code_util_js_1 = require("./filter-code-util.js");
|
|
5
|
-
describe('stringifyHelper', () => {
|
|
6
|
-
it('should stringify random argument', () => {
|
|
7
|
-
const arg = { foo: 'bar' };
|
|
8
|
-
const result = (0, filter_code_util_js_1.stringifyHelper)(arg);
|
|
9
|
-
expect(result).toBe('{"foo":"bar"}');
|
|
10
|
-
});
|
|
11
|
-
it('should stringify common argument', () => {
|
|
12
|
-
const arg = (0, attributes_js_1.createAttribute)({
|
|
13
|
-
name: 'AgeRange',
|
|
14
|
-
type: 'text-attribute',
|
|
15
|
-
expression: '[Commerce.Age Range]',
|
|
16
|
-
});
|
|
17
|
-
arg.composeCode = 'some code';
|
|
18
|
-
const result = (0, filter_code_util_js_1.stringifyHelper)(arg);
|
|
19
|
-
expect(result).toBe('some code');
|
|
20
|
-
});
|
|
21
|
-
it('should stringify null', () => {
|
|
22
|
-
const arg = null;
|
|
23
|
-
const result = (0, filter_code_util_js_1.stringifyHelper)(arg);
|
|
24
|
-
expect(result).toBe('null');
|
|
25
|
-
});
|
|
26
|
-
it('should stringify undefined', () => {
|
|
27
|
-
const arg = undefined;
|
|
28
|
-
const result = (0, filter_code_util_js_1.stringifyHelper)(arg);
|
|
29
|
-
expect(result).toBeUndefined();
|
|
30
|
-
});
|
|
31
|
-
// Add more test cases as needed
|
|
32
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|