@sisense/sdk-data 2.5.0 → 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.
Files changed (30) hide show
  1. package/dist/cjs/dimensional-model/attributes.d.ts +17 -1
  2. package/dist/cjs/dimensional-model/attributes.js +23 -3
  3. package/dist/cjs/dimensional-model/base.d.ts +5 -1
  4. package/dist/cjs/dimensional-model/base.js +6 -2
  5. package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +17 -1
  6. package/dist/cjs/dimensional-model/dimensions/dimensions.js +24 -12
  7. package/dist/cjs/dimensional-model/filters/filters.d.ts +52 -0
  8. package/dist/cjs/dimensional-model/filters/filters.js +68 -31
  9. package/dist/cjs/dimensional-model/interfaces.d.ts +4 -0
  10. package/dist/cjs/dimensional-model/jaql-element.d.ts +9 -1
  11. package/dist/cjs/dimensional-model/jaql-element.js +12 -2
  12. package/dist/cjs/dimensional-model/measures/measures.d.ts +30 -2
  13. package/dist/cjs/dimensional-model/measures/measures.js +50 -16
  14. package/dist/cjs/dimensional-model/types.js +4 -2
  15. package/dist/dimensional-model/attributes.d.ts +17 -1
  16. package/dist/dimensional-model/attributes.js +21 -3
  17. package/dist/dimensional-model/base.d.ts +5 -1
  18. package/dist/dimensional-model/base.js +6 -2
  19. package/dist/dimensional-model/dimensions/dimensions.d.ts +17 -1
  20. package/dist/dimensional-model/dimensions/dimensions.js +22 -12
  21. package/dist/dimensional-model/filters/filters.d.ts +52 -0
  22. package/dist/dimensional-model/filters/filters.js +69 -32
  23. package/dist/dimensional-model/interfaces.d.ts +4 -0
  24. package/dist/dimensional-model/jaql-element.d.ts +9 -1
  25. package/dist/dimensional-model/jaql-element.js +10 -1
  26. package/dist/dimensional-model/measures/measures.d.ts +30 -2
  27. package/dist/dimensional-model/measures/measures.js +47 -16
  28. package/dist/dimensional-model/types.js +4 -2
  29. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  30. 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(value) : value,
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.median(this.attribute, format).sort(this._sort);
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
- * @param json
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) && (o.attribute || o.jaql) && !this.isMeasureTemplate(o);
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: 'DimensionalElement',
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
- const result = super.serialize();
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
  /**