@sisense/sdk-data 2.4.1 → 2.6.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/attributes.d.ts +17 -1
- package/dist/cjs/dimensional-model/attributes.js +23 -3
- package/dist/cjs/dimensional-model/base.d.ts +5 -1
- package/dist/cjs/dimensional-model/base.js +6 -2
- package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +17 -1
- package/dist/cjs/dimensional-model/dimensions/dimensions.js +24 -12
- package/dist/cjs/dimensional-model/filters/filters.d.ts +52 -0
- package/dist/cjs/dimensional-model/filters/filters.js +68 -31
- package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +2 -7
- package/dist/cjs/dimensional-model/interfaces.d.ts +4 -0
- package/dist/cjs/dimensional-model/jaql-element.d.ts +9 -1
- package/dist/cjs/dimensional-model/jaql-element.js +12 -2
- package/dist/cjs/dimensional-model/measures/measures.d.ts +30 -2
- package/dist/cjs/dimensional-model/measures/measures.js +50 -16
- package/dist/cjs/dimensional-model/types.js +4 -2
- package/dist/dimensional-model/attributes.d.ts +17 -1
- package/dist/dimensional-model/attributes.js +21 -3
- package/dist/dimensional-model/base.d.ts +5 -1
- package/dist/dimensional-model/base.js +6 -2
- package/dist/dimensional-model/dimensions/dimensions.d.ts +17 -1
- package/dist/dimensional-model/dimensions/dimensions.js +22 -12
- package/dist/dimensional-model/filters/filters.d.ts +52 -0
- package/dist/dimensional-model/filters/filters.js +69 -32
- package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +2 -7
- package/dist/dimensional-model/interfaces.d.ts +4 -0
- package/dist/dimensional-model/jaql-element.d.ts +9 -1
- package/dist/dimensional-model/jaql-element.js +10 -1
- package/dist/dimensional-model/measures/measures.d.ts +30 -2
- package/dist/dimensional-model/measures/measures.js +47 -16
- package/dist/dimensional-model/types.js +4 -2
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.createMeasure = exports.DimensionalMeasureTemplate = exports.DimensionalCalculatedMeasure = exports.DimensionalBaseMeasure = exports.AbstractMeasure = void 0;
|
|
26
|
+
exports.createMeasure = exports.isDimensionalMeasureTemplate = exports.DimensionalMeasureTemplate = exports.isDimensionalCalculatedMeasure = exports.DimensionalCalculatedMeasure = exports.isDimensionalBaseMeasure = exports.DimensionalBaseMeasure = exports.AbstractMeasure = void 0;
|
|
27
27
|
/* eslint-disable max-params */
|
|
28
28
|
/* eslint-disable no-underscore-dangle */
|
|
29
29
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
@@ -43,6 +43,10 @@ const m = __importStar(require("./factory.js"));
|
|
|
43
43
|
class AbstractMeasure extends base_js_1.DimensionalElement {
|
|
44
44
|
constructor(name, type, format, desc, sort, dataSource, composeCode) {
|
|
45
45
|
super(name, type, desc, dataSource, composeCode);
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
this.__serializable = 'AbstractMeasure';
|
|
46
50
|
this._sort = types_js_1.Sort.None;
|
|
47
51
|
this._format = '#,#.00';
|
|
48
52
|
this._format = format;
|
|
@@ -87,6 +91,10 @@ exports.AbstractMeasure = AbstractMeasure;
|
|
|
87
91
|
class DimensionalBaseMeasure extends AbstractMeasure {
|
|
88
92
|
constructor(name, attribute, agg, format, desc, sort, dataSource, composeCode) {
|
|
89
93
|
super(name, types_js_1.MetadataTypes.BaseMeasure, format, desc, sort, dataSource, composeCode);
|
|
94
|
+
/**
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
this.__serializable = 'DimensionalBaseMeasure';
|
|
90
98
|
this.attribute = attribute;
|
|
91
99
|
this.aggregation = agg;
|
|
92
100
|
}
|
|
@@ -167,7 +175,6 @@ class DimensionalBaseMeasure extends AbstractMeasure {
|
|
|
167
175
|
*/
|
|
168
176
|
serialize() {
|
|
169
177
|
const result = super.serialize();
|
|
170
|
-
result.__serializable = 'DimensionalBaseMeasure';
|
|
171
178
|
result.aggregation = this.aggregation;
|
|
172
179
|
result.attribute = this.attribute.serialize();
|
|
173
180
|
return result;
|
|
@@ -187,6 +194,13 @@ class DimensionalBaseMeasure extends AbstractMeasure {
|
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
exports.DimensionalBaseMeasure = DimensionalBaseMeasure;
|
|
197
|
+
/**
|
|
198
|
+
* @internal
|
|
199
|
+
*/
|
|
200
|
+
const isDimensionalBaseMeasure = (v) => {
|
|
201
|
+
return Boolean(v && v.__serializable === 'DimensionalBaseMeasure');
|
|
202
|
+
};
|
|
203
|
+
exports.isDimensionalBaseMeasure = isDimensionalBaseMeasure;
|
|
190
204
|
/**
|
|
191
205
|
* Stands for a Calculated Measure
|
|
192
206
|
*
|
|
@@ -196,6 +210,10 @@ exports.DimensionalBaseMeasure = DimensionalBaseMeasure;
|
|
|
196
210
|
class DimensionalCalculatedMeasure extends AbstractMeasure {
|
|
197
211
|
constructor(name, expression, context, format, desc, sort, dataSource, composeCode) {
|
|
198
212
|
super(name, types_js_1.MetadataTypes.CalculatedMeasure, format, desc, sort, dataSource, composeCode);
|
|
213
|
+
/**
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
this.__serializable = 'DimensionalCalculatedMeasure';
|
|
199
217
|
this.expression = expression;
|
|
200
218
|
this.context = context;
|
|
201
219
|
}
|
|
@@ -230,11 +248,10 @@ class DimensionalCalculatedMeasure extends AbstractMeasure {
|
|
|
230
248
|
*/
|
|
231
249
|
serialize() {
|
|
232
250
|
const result = super.serialize();
|
|
233
|
-
result.__serializable = 'DimensionalCalculatedMeasure';
|
|
234
251
|
result.expression = this.expression;
|
|
235
252
|
result.context = Object.fromEntries(Object.entries(this.context).map(([key, value]) => [
|
|
236
253
|
key,
|
|
237
|
-
value.serialize ? value.serialize(
|
|
254
|
+
value.serialize ? value.serialize() : value,
|
|
238
255
|
]));
|
|
239
256
|
return result;
|
|
240
257
|
}
|
|
@@ -259,6 +276,13 @@ class DimensionalCalculatedMeasure extends AbstractMeasure {
|
|
|
259
276
|
}
|
|
260
277
|
}
|
|
261
278
|
exports.DimensionalCalculatedMeasure = DimensionalCalculatedMeasure;
|
|
279
|
+
/**
|
|
280
|
+
* @internal
|
|
281
|
+
*/
|
|
282
|
+
const isDimensionalCalculatedMeasure = (v) => {
|
|
283
|
+
return Boolean(v && v.__serializable === 'DimensionalCalculatedMeasure');
|
|
284
|
+
};
|
|
285
|
+
exports.isDimensionalCalculatedMeasure = isDimensionalCalculatedMeasure;
|
|
262
286
|
/**
|
|
263
287
|
* Stands for a Measure template - generator for different aggregation over Attribute
|
|
264
288
|
*
|
|
@@ -267,6 +291,10 @@ exports.DimensionalCalculatedMeasure = DimensionalCalculatedMeasure;
|
|
|
267
291
|
class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
268
292
|
constructor(name, attribute, format, desc, sort, dataSource, composeCode) {
|
|
269
293
|
super(name, types_js_1.MetadataTypes.MeasureTemplate, format, desc, sort, dataSource, composeCode);
|
|
294
|
+
/**
|
|
295
|
+
* @internal
|
|
296
|
+
*/
|
|
297
|
+
this.__serializable = 'DimensionalMeasureTemplate';
|
|
270
298
|
this.attribute = attribute;
|
|
271
299
|
}
|
|
272
300
|
/**
|
|
@@ -280,7 +308,6 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
280
308
|
*/
|
|
281
309
|
serialize() {
|
|
282
310
|
const result = super.serialize();
|
|
283
|
-
result.__serializable = 'DimensionalMeasureTemplate';
|
|
284
311
|
result.attribute = this.attribute.serialize();
|
|
285
312
|
return result;
|
|
286
313
|
}
|
|
@@ -308,7 +335,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
308
335
|
* @param nested - defines whether the JAQL is nested within parent JAQL statement or a root JAQL element
|
|
309
336
|
*/
|
|
310
337
|
jaql(nested) {
|
|
311
|
-
return this.sum().sort(this._sort).jaql(nested);
|
|
338
|
+
return this.sum(this._format).sort(this._sort).jaql(nested);
|
|
312
339
|
}
|
|
313
340
|
/**
|
|
314
341
|
* Gets an {@link Measure} defined with sum aggregation
|
|
@@ -316,7 +343,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
316
343
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
317
344
|
*/
|
|
318
345
|
sum(format) {
|
|
319
|
-
return m.sum(this.attribute, format).sort(this._sort);
|
|
346
|
+
return m.sum(this.attribute, undefined, format).sort(this._sort);
|
|
320
347
|
}
|
|
321
348
|
/**
|
|
322
349
|
* Gets an {@link Measure} defined with average aggregation
|
|
@@ -324,7 +351,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
324
351
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
325
352
|
*/
|
|
326
353
|
average(format) {
|
|
327
|
-
return m.average(this.attribute, format).sort(this._sort);
|
|
354
|
+
return m.average(this.attribute, undefined, format).sort(this._sort);
|
|
328
355
|
}
|
|
329
356
|
/**
|
|
330
357
|
* Gets an {@link Measure} defined with median aggregation
|
|
@@ -332,7 +359,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
332
359
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
333
360
|
*/
|
|
334
361
|
median(format) {
|
|
335
|
-
return m.median(this.attribute, format).sort(this._sort);
|
|
362
|
+
return m.median(this.attribute, undefined, format).sort(this._sort);
|
|
336
363
|
}
|
|
337
364
|
/**
|
|
338
365
|
* Gets an {@link Measure} defined with min aggregation
|
|
@@ -340,7 +367,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
340
367
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
341
368
|
*/
|
|
342
369
|
min(format) {
|
|
343
|
-
return m.
|
|
370
|
+
return m.min(this.attribute, undefined, format).sort(this._sort);
|
|
344
371
|
}
|
|
345
372
|
/**
|
|
346
373
|
* Gets an {@link Measure} defined with max aggregation
|
|
@@ -348,7 +375,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
348
375
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
349
376
|
*/
|
|
350
377
|
max(format) {
|
|
351
|
-
return m.max(this.attribute, format).sort(this._sort);
|
|
378
|
+
return m.max(this.attribute, undefined, format).sort(this._sort);
|
|
352
379
|
}
|
|
353
380
|
/**
|
|
354
381
|
* Gets an {@link Measure} defined with count aggregation
|
|
@@ -356,7 +383,7 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
356
383
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
357
384
|
*/
|
|
358
385
|
count(format) {
|
|
359
|
-
return m.count(this.attribute, format).sort(this._sort);
|
|
386
|
+
return m.count(this.attribute, undefined, format).sort(this._sort);
|
|
360
387
|
}
|
|
361
388
|
/**
|
|
362
389
|
* Gets an {@link Measure} defined with count distinct aggregation
|
|
@@ -364,12 +391,19 @@ class DimensionalMeasureTemplate extends AbstractMeasure {
|
|
|
364
391
|
* @param format - optional format to apply on the resulting {@link Measure}
|
|
365
392
|
*/
|
|
366
393
|
countDistinct(format) {
|
|
367
|
-
return m.countDistinct(this.attribute, format).sort(this._sort);
|
|
394
|
+
return m.countDistinct(this.attribute, undefined, format).sort(this._sort);
|
|
368
395
|
}
|
|
369
396
|
}
|
|
370
397
|
exports.DimensionalMeasureTemplate = DimensionalMeasureTemplate;
|
|
371
398
|
/**
|
|
372
|
-
* @
|
|
399
|
+
* @internal
|
|
400
|
+
*/
|
|
401
|
+
const isDimensionalMeasureTemplate = (v) => {
|
|
402
|
+
return Boolean(v && v.__serializable === 'DimensionalMeasureTemplate');
|
|
403
|
+
};
|
|
404
|
+
exports.isDimensionalMeasureTemplate = isDimensionalMeasureTemplate;
|
|
405
|
+
/**
|
|
406
|
+
* @param json - The JSON object to create a measure from
|
|
373
407
|
* @internal
|
|
374
408
|
*/
|
|
375
409
|
function createMeasure(json) {
|
|
@@ -402,7 +436,7 @@ function createMeasure(json) {
|
|
|
402
436
|
if (att === undefined) {
|
|
403
437
|
throw new translatable_error_js_1.TranslatableError('errors.measure.dimensionalBaseMeasure.noAttributeDimExpression');
|
|
404
438
|
}
|
|
405
|
-
return new DimensionalMeasureTemplate(name, att, format, desc);
|
|
439
|
+
return new DimensionalMeasureTemplate(name, att, format, desc, sort);
|
|
406
440
|
}
|
|
407
441
|
else if (types_js_1.MetadataTypes.isBaseMeasure(json)) {
|
|
408
442
|
if (att === undefined) {
|
|
@@ -412,7 +446,7 @@ function createMeasure(json) {
|
|
|
412
446
|
if (!agg) {
|
|
413
447
|
throw new translatable_error_js_1.TranslatableError('errors.measure.dimensionalBaseMeasure.noAggAggregation');
|
|
414
448
|
}
|
|
415
|
-
return new DimensionalBaseMeasure(name, att, agg, format, desc);
|
|
449
|
+
return new DimensionalBaseMeasure(name, att, agg, format, desc, sort);
|
|
416
450
|
}
|
|
417
451
|
throw new translatable_error_js_1.TranslatableError('errors.measure.unsupportedType');
|
|
418
452
|
}
|
|
@@ -107,8 +107,10 @@ exports.MetadataTypes = {
|
|
|
107
107
|
const type = o;
|
|
108
108
|
return type.toLowerCase() === exports.MetadataTypes.BaseMeasure;
|
|
109
109
|
}
|
|
110
|
-
// JaqlElement doesn't have property attribute. Check for jaql instead
|
|
111
|
-
return (o.agg || o.aggregation) &&
|
|
110
|
+
// JaqlElement doesn't have property attribute. Check for jaql, dim, or expression instead
|
|
111
|
+
return ((o.agg || o.aggregation) &&
|
|
112
|
+
(o.attribute || o.jaql || o.dim || o.expression) &&
|
|
113
|
+
!this.isMeasureTemplate(o));
|
|
112
114
|
},
|
|
113
115
|
/**
|
|
114
116
|
* Checks whether the given object or type is a measure - of any type
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DimensionalElement } from './base.js';
|
|
2
2
|
import { Attribute, LevelAttribute } from './interfaces.js';
|
|
3
|
-
import { DateLevel, JaqlDataSource, JSONObject, Sort } from './types.js';
|
|
3
|
+
import { AnyObject, DateLevel, JaqlDataSource, JSONObject, Sort } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
@@ -9,6 +9,10 @@ export declare const jaqlSimpleColumnType: (datatype: string) => string;
|
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
11
|
export declare class DimensionalAttribute extends DimensionalElement implements Attribute {
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
readonly __serializable: string;
|
|
12
16
|
readonly expression: string;
|
|
13
17
|
readonly panel: string;
|
|
14
18
|
protected _sort: Sort;
|
|
@@ -41,10 +45,18 @@ export declare class DimensionalAttribute extends DimensionalElement implements
|
|
|
41
45
|
*/
|
|
42
46
|
serialize(): JSONObject;
|
|
43
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export declare const isDimensionalAttribute: (v: AnyObject) => v is DimensionalAttribute;
|
|
44
52
|
/**
|
|
45
53
|
* @internal
|
|
46
54
|
*/
|
|
47
55
|
export declare class DimensionalLevelAttribute extends DimensionalAttribute implements LevelAttribute {
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
readonly __serializable: string;
|
|
48
60
|
private _format;
|
|
49
61
|
readonly granularity: string;
|
|
50
62
|
readonly panel: string;
|
|
@@ -115,6 +127,10 @@ export declare class DimensionalLevelAttribute extends DimensionalAttribute impl
|
|
|
115
127
|
static translateJaqlToGranularity(json: any): string;
|
|
116
128
|
static getDefaultFormatForGranularity(granularity: string): string;
|
|
117
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
export declare const isDimensionalLevelAttribute: (v: AnyObject) => v is DimensionalLevelAttribute;
|
|
118
134
|
/**
|
|
119
135
|
* Creates an Attribute instance from the given JSON object.
|
|
120
136
|
* If the JSON object contains a granularity property, a {@link LevelAttribute} instance is created.
|
|
@@ -8,7 +8,7 @@ import { parseExpression } from '../utils.js';
|
|
|
8
8
|
import { DimensionalElement, normalizeName } from './base.js';
|
|
9
9
|
import { DATA_MODEL_MODULE_NAME } from './consts.js';
|
|
10
10
|
import { simpleColumnType } from './simple-column-types.js';
|
|
11
|
-
import { DateLevels, MetadataTypes, Sort } from './types.js';
|
|
11
|
+
import { DateLevels, MetadataTypes, Sort, } from './types.js';
|
|
12
12
|
/**
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
@@ -19,6 +19,10 @@ export const jaqlSimpleColumnType = (datatype) => simpleColumnType(datatype).rep
|
|
|
19
19
|
export class DimensionalAttribute extends DimensionalElement {
|
|
20
20
|
constructor(name, expression, type, desc, sort, dataSource, composeCode, panel) {
|
|
21
21
|
super(name, type || MetadataTypes.Attribute, desc, dataSource, composeCode);
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
this.__serializable = 'DimensionalAttribute';
|
|
22
26
|
this._sort = Sort.None;
|
|
23
27
|
this.expression = expression;
|
|
24
28
|
// if composeCode is not explicitly set by the caller, extract it from expression
|
|
@@ -81,7 +85,6 @@ export class DimensionalAttribute extends DimensionalElement {
|
|
|
81
85
|
*/
|
|
82
86
|
serialize() {
|
|
83
87
|
const result = super.serialize();
|
|
84
|
-
result.__serializable = 'DimensionalAttribute';
|
|
85
88
|
result.expression = this.expression;
|
|
86
89
|
if (this.getSort() !== Sort.None) {
|
|
87
90
|
result.sort = this.getSort();
|
|
@@ -89,12 +92,22 @@ export class DimensionalAttribute extends DimensionalElement {
|
|
|
89
92
|
return result;
|
|
90
93
|
}
|
|
91
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
export const isDimensionalAttribute = (v) => {
|
|
99
|
+
return Boolean(v && v.__serializable === 'DimensionalAttribute');
|
|
100
|
+
};
|
|
92
101
|
/**
|
|
93
102
|
* @internal
|
|
94
103
|
*/
|
|
95
104
|
export class DimensionalLevelAttribute extends DimensionalAttribute {
|
|
96
105
|
constructor(name, expression, granularity, format, desc, sort, dataSource, composeCode, panel) {
|
|
97
106
|
super(name, expression, MetadataTypes.DateLevel, desc, sort, dataSource, composeCode);
|
|
107
|
+
/**
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
this.__serializable = 'DimensionalLevelAttribute';
|
|
98
111
|
this._format = format;
|
|
99
112
|
this.granularity = granularity;
|
|
100
113
|
// if composeCode is not explicitly set by the caller, extract it from expression and granularity
|
|
@@ -167,7 +180,6 @@ export class DimensionalLevelAttribute extends DimensionalAttribute {
|
|
|
167
180
|
*/
|
|
168
181
|
serialize() {
|
|
169
182
|
const result = super.serialize();
|
|
170
|
-
result.__serializable = 'DimensionalLevelAttribute';
|
|
171
183
|
result.granularity = this.granularity;
|
|
172
184
|
if (this.getFormat() !== undefined) {
|
|
173
185
|
result.format = this.getFormat();
|
|
@@ -347,6 +359,12 @@ export class DimensionalLevelAttribute extends DimensionalAttribute {
|
|
|
347
359
|
}
|
|
348
360
|
}
|
|
349
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* @internal
|
|
364
|
+
*/
|
|
365
|
+
export const isDimensionalLevelAttribute = (v) => {
|
|
366
|
+
return Boolean(v && v.__serializable === 'DimensionalLevelAttribute');
|
|
367
|
+
};
|
|
350
368
|
/**
|
|
351
369
|
* Creates an Attribute instance from the given JSON object.
|
|
352
370
|
* If the JSON object contains a granularity property, a {@link LevelAttribute} instance is created.
|
|
@@ -4,6 +4,10 @@ import { JaqlDataSource, JSONObject } from './types.js';
|
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
6
|
export declare abstract class DimensionalElement implements Element {
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
readonly __serializable: string;
|
|
7
11
|
/**
|
|
8
12
|
* @internal
|
|
9
13
|
*/
|
|
@@ -52,7 +56,7 @@ export declare abstract class DimensionalElement implements Element {
|
|
|
52
56
|
toString(): string;
|
|
53
57
|
}
|
|
54
58
|
/**
|
|
55
|
-
* @param name
|
|
59
|
+
* @param name - The name to normalize
|
|
56
60
|
* @internal
|
|
57
61
|
*/
|
|
58
62
|
export declare function normalizeName(name: string): string;
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class DimensionalElement {
|
|
5
5
|
constructor(name, type, desc, dataSource, composeCode) {
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
this.__serializable = 'DimensionalElement';
|
|
6
10
|
this._name = name;
|
|
7
11
|
this.type = type;
|
|
8
12
|
this.description = desc || '';
|
|
@@ -38,7 +42,7 @@ export class DimensionalElement {
|
|
|
38
42
|
description: this.description,
|
|
39
43
|
dataSource: this.dataSource,
|
|
40
44
|
composeCode: this.composeCode,
|
|
41
|
-
__serializable:
|
|
45
|
+
__serializable: this.__serializable,
|
|
42
46
|
};
|
|
43
47
|
}
|
|
44
48
|
toJSON() {
|
|
@@ -52,7 +56,7 @@ export class DimensionalElement {
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
/**
|
|
55
|
-
* @param name
|
|
59
|
+
* @param name - The name to normalize
|
|
56
60
|
* @internal
|
|
57
61
|
*/
|
|
58
62
|
export function normalizeName(name) {
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { DimensionalElement } from '../base.js';
|
|
2
2
|
import { Attribute, DateDimension, Dimension, LevelAttribute } from '../interfaces.js';
|
|
3
|
-
import { JaqlDataSource, JSONObject, Sort } from '../types.js';
|
|
3
|
+
import { AnyObject, JaqlDataSource, JSONObject, Sort } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a Dimension in a Dimensional Model
|
|
6
6
|
*
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export declare class DimensionalDimension extends DimensionalElement implements Dimension, Attribute {
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
readonly __serializable: string;
|
|
10
14
|
static parseType(type: string): string;
|
|
11
15
|
[propName: string]: any;
|
|
12
16
|
defaultAttribute: Attribute | undefined;
|
|
@@ -55,12 +59,20 @@ export declare class DimensionalDimension extends DimensionalElement implements
|
|
|
55
59
|
*/
|
|
56
60
|
jaql(nested?: boolean): any;
|
|
57
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
export declare const isDimensionalDimension: (v: AnyObject) => v is DimensionalDimension;
|
|
58
66
|
/**
|
|
59
67
|
* Represents a Date Dimension in a Dimensional Model
|
|
60
68
|
*
|
|
61
69
|
* @internal
|
|
62
70
|
*/
|
|
63
71
|
export declare class DimensionalDateDimension extends DimensionalDimension implements DateDimension {
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
readonly __serializable: string;
|
|
64
76
|
constructor(name: string, expression: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
|
|
65
77
|
/**
|
|
66
78
|
* Years level
|
|
@@ -149,6 +161,10 @@ export declare class DimensionalDateDimension extends DimensionalDimension imple
|
|
|
149
161
|
*/
|
|
150
162
|
jaql(nested?: boolean): any;
|
|
151
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
export declare const isDimensionalDateDimension: (v: AnyObject) => v is DimensionalDateDimension;
|
|
152
168
|
/**
|
|
153
169
|
* Creates a new Dimension instance from the given JSON object.
|
|
154
170
|
*
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
/* eslint-disable max-params */
|
|
2
|
-
/* eslint-disable no-underscore-dangle */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
6
1
|
/* eslint-disable sonarjs/no-duplicate-string */
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
8
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
9
2
|
import { parseExpression } from '../../utils.js';
|
|
10
3
|
import { DimensionalAttribute, DimensionalLevelAttribute, jaqlSimpleColumnType, normalizeAttributeName, } from '../attributes.js';
|
|
11
4
|
import { DimensionalElement, normalizeName } from '../base.js';
|
|
12
5
|
import { DATA_MODEL_MODULE_NAME } from '../consts.js';
|
|
13
|
-
import { DateLevels, MetadataTypes, Sort } from '../types.js';
|
|
6
|
+
import { DateLevels, MetadataTypes, Sort, } from '../types.js';
|
|
14
7
|
/**
|
|
15
8
|
* Represents a Dimension in a Dimensional Model
|
|
16
9
|
*
|
|
@@ -19,6 +12,10 @@ import { DateLevels, MetadataTypes, Sort } from '../types.js';
|
|
|
19
12
|
export class DimensionalDimension extends DimensionalElement {
|
|
20
13
|
constructor(name, expression, attributes, dimensions, type, desc, sort, dataSource, composeCode, defaultAttribute) {
|
|
21
14
|
super(name, type || MetadataTypes.Dimension, desc, dataSource, composeCode);
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
this.__serializable = 'DimensionalDimension';
|
|
22
19
|
this._dimensions = [];
|
|
23
20
|
this._attributes = [];
|
|
24
21
|
this._sort = Sort.None;
|
|
@@ -126,7 +123,6 @@ export class DimensionalDimension extends DimensionalElement {
|
|
|
126
123
|
*/
|
|
127
124
|
serialize() {
|
|
128
125
|
const result = super.serialize();
|
|
129
|
-
result.__serializable = 'DimensionalDimension';
|
|
130
126
|
result.expression = this.expression;
|
|
131
127
|
if (this.getSort() !== undefined) {
|
|
132
128
|
result.sort = this.getSort();
|
|
@@ -163,6 +159,12 @@ export class DimensionalDimension extends DimensionalElement {
|
|
|
163
159
|
return nested === true ? result.jaql : result;
|
|
164
160
|
}
|
|
165
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* @internal
|
|
164
|
+
*/
|
|
165
|
+
export const isDimensionalDimension = (v) => {
|
|
166
|
+
return v && v.__serializable === 'DimensionalDimension';
|
|
167
|
+
};
|
|
166
168
|
/**
|
|
167
169
|
* Represents a Date Dimension in a Dimensional Model
|
|
168
170
|
*
|
|
@@ -171,6 +173,10 @@ export class DimensionalDimension extends DimensionalElement {
|
|
|
171
173
|
export class DimensionalDateDimension extends DimensionalDimension {
|
|
172
174
|
constructor(name, expression, desc, sort, dataSource, composeCode) {
|
|
173
175
|
super(name, expression, [], [], MetadataTypes.DateDimension, desc, sort, dataSource, composeCode);
|
|
176
|
+
/**
|
|
177
|
+
* @internal
|
|
178
|
+
*/
|
|
179
|
+
this.__serializable = 'DimensionalDateDimension';
|
|
174
180
|
this.defaultLevel = DateLevels.Years;
|
|
175
181
|
this.Years = new DimensionalLevelAttribute(DateLevels.Years, expression, DateLevels.Years, 'yyyy', desc, sort, dataSource);
|
|
176
182
|
this.Quarters = new DimensionalLevelAttribute(DateLevels.Quarters, expression, DateLevels.Quarters, 'Q yyyy', desc, sort, dataSource);
|
|
@@ -236,9 +242,7 @@ export class DimensionalDateDimension extends DimensionalDimension {
|
|
|
236
242
|
* Gets a serializable representation of the element
|
|
237
243
|
*/
|
|
238
244
|
serialize() {
|
|
239
|
-
|
|
240
|
-
result.__serializable = 'DimensionalDateDimension';
|
|
241
|
-
return result;
|
|
245
|
+
return super.serialize();
|
|
242
246
|
}
|
|
243
247
|
/**
|
|
244
248
|
* Gets the JAQL representation of this instance
|
|
@@ -251,6 +255,12 @@ export class DimensionalDateDimension extends DimensionalDimension {
|
|
|
251
255
|
return nested ? result.jaql : result;
|
|
252
256
|
}
|
|
253
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* @internal
|
|
260
|
+
*/
|
|
261
|
+
export const isDimensionalDateDimension = (v) => {
|
|
262
|
+
return v && v.__serializable === 'DimensionalDateDimension';
|
|
263
|
+
};
|
|
254
264
|
/**
|
|
255
265
|
* Creates a new Dimension instance from the given JSON object.
|
|
256
266
|
*
|
|
@@ -83,6 +83,10 @@ export declare const FilterTypes: {
|
|
|
83
83
|
* @internal
|
|
84
84
|
*/
|
|
85
85
|
declare abstract class AbstractFilter extends DimensionalElement implements Filter {
|
|
86
|
+
/**
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
readonly __serializable: string;
|
|
86
90
|
/**
|
|
87
91
|
* Attribute this filter instance is filtering
|
|
88
92
|
*/
|
|
@@ -126,6 +130,10 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
|
|
|
126
130
|
* @internal
|
|
127
131
|
*/
|
|
128
132
|
export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
133
|
+
/**
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
readonly __serializable: string;
|
|
129
137
|
readonly filters: Filter[];
|
|
130
138
|
readonly operator: string;
|
|
131
139
|
constructor(filters: Filter[], operator: string, config?: BaseFilterConfig, composeCode?: string);
|
|
@@ -146,6 +154,10 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
|
|
|
146
154
|
* @internal
|
|
147
155
|
*/
|
|
148
156
|
export declare class MembersFilter extends AbstractFilter {
|
|
157
|
+
/**
|
|
158
|
+
* @internal
|
|
159
|
+
*/
|
|
160
|
+
readonly __serializable: string;
|
|
149
161
|
readonly members: string[];
|
|
150
162
|
config: CompleteMembersFilterConfig;
|
|
151
163
|
constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig, composeCode?: string);
|
|
@@ -167,6 +179,10 @@ export declare class MembersFilter extends AbstractFilter {
|
|
|
167
179
|
* @internal
|
|
168
180
|
*/
|
|
169
181
|
export declare class CascadingFilter extends AbstractFilter {
|
|
182
|
+
/**
|
|
183
|
+
* @internal
|
|
184
|
+
*/
|
|
185
|
+
readonly __serializable: string;
|
|
170
186
|
readonly _filters: Filter[];
|
|
171
187
|
constructor(filters: Filter[], config?: BaseFilterConfig, composeCode?: string);
|
|
172
188
|
/**
|
|
@@ -191,6 +207,10 @@ export declare class CascadingFilter extends AbstractFilter {
|
|
|
191
207
|
* @internal
|
|
192
208
|
*/
|
|
193
209
|
export declare class ExcludeFilter extends AbstractFilter {
|
|
210
|
+
/**
|
|
211
|
+
* @internal
|
|
212
|
+
*/
|
|
213
|
+
readonly __serializable: string;
|
|
194
214
|
readonly filter: Filter;
|
|
195
215
|
readonly input?: Filter;
|
|
196
216
|
constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig, composeCode?: string);
|
|
@@ -211,6 +231,10 @@ export declare class ExcludeFilter extends AbstractFilter {
|
|
|
211
231
|
* @internal
|
|
212
232
|
*/
|
|
213
233
|
export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
234
|
+
/**
|
|
235
|
+
* @internal
|
|
236
|
+
*/
|
|
237
|
+
readonly __serializable: string;
|
|
214
238
|
operatorA?: string;
|
|
215
239
|
operatorB?: string;
|
|
216
240
|
valueA?: Type;
|
|
@@ -233,6 +257,10 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
|
|
|
233
257
|
* @internal
|
|
234
258
|
*/
|
|
235
259
|
export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
260
|
+
/**
|
|
261
|
+
* @internal
|
|
262
|
+
*/
|
|
263
|
+
readonly __serializable: string;
|
|
236
264
|
measure: Measure;
|
|
237
265
|
constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
238
266
|
/**
|
|
@@ -249,6 +277,10 @@ export declare class MeasureFilter extends DoubleOperatorFilter<number> {
|
|
|
249
277
|
* @internal
|
|
250
278
|
*/
|
|
251
279
|
export declare class RankingFilter extends AbstractFilter {
|
|
280
|
+
/**
|
|
281
|
+
* @internal
|
|
282
|
+
*/
|
|
283
|
+
readonly __serializable: string;
|
|
252
284
|
count: number;
|
|
253
285
|
operator: string;
|
|
254
286
|
measure: Measure;
|
|
@@ -270,6 +302,10 @@ export declare class RankingFilter extends AbstractFilter {
|
|
|
270
302
|
* @internal
|
|
271
303
|
*/
|
|
272
304
|
export declare class NumericFilter extends DoubleOperatorFilter<number> {
|
|
305
|
+
/**
|
|
306
|
+
* @internal
|
|
307
|
+
*/
|
|
308
|
+
readonly __serializable: string;
|
|
273
309
|
constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
|
|
274
310
|
/**
|
|
275
311
|
* Gets a serializable representation of the element
|
|
@@ -280,6 +316,10 @@ export declare class NumericFilter extends DoubleOperatorFilter<number> {
|
|
|
280
316
|
* @internal
|
|
281
317
|
*/
|
|
282
318
|
export declare class TextFilter extends DoubleOperatorFilter<string> {
|
|
319
|
+
/**
|
|
320
|
+
* @internal
|
|
321
|
+
*/
|
|
322
|
+
readonly __serializable: string;
|
|
283
323
|
constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig, composeCode?: string);
|
|
284
324
|
/**
|
|
285
325
|
* Gets a serializable representation of the element
|
|
@@ -290,6 +330,10 @@ export declare class TextFilter extends DoubleOperatorFilter<string> {
|
|
|
290
330
|
* @internal
|
|
291
331
|
*/
|
|
292
332
|
export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
|
|
333
|
+
/**
|
|
334
|
+
* @internal
|
|
335
|
+
*/
|
|
336
|
+
readonly __serializable: string;
|
|
293
337
|
constructor(levelAttribute: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig, composeCode?: string);
|
|
294
338
|
get level(): LevelAttribute;
|
|
295
339
|
get from(): string;
|
|
@@ -307,6 +351,10 @@ export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string>
|
|
|
307
351
|
* @internal
|
|
308
352
|
*/
|
|
309
353
|
export declare class RelativeDateFilter extends AbstractFilter {
|
|
354
|
+
/**
|
|
355
|
+
* @internal
|
|
356
|
+
*/
|
|
357
|
+
readonly __serializable: string;
|
|
310
358
|
readonly offset: number;
|
|
311
359
|
readonly count: number;
|
|
312
360
|
readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
|
|
@@ -331,6 +379,10 @@ export declare class RelativeDateFilter extends AbstractFilter {
|
|
|
331
379
|
* @internal
|
|
332
380
|
*/
|
|
333
381
|
export declare class CustomFilter extends AbstractFilter {
|
|
382
|
+
/**
|
|
383
|
+
* @internal
|
|
384
|
+
*/
|
|
385
|
+
readonly __serializable: string;
|
|
334
386
|
readonly jaqlExpression: any;
|
|
335
387
|
constructor(att: Attribute, jaql: any, config?: BaseFilterConfig, composeCode?: string);
|
|
336
388
|
/**
|