@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
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createFilter = exports.isDateRangeFilter = exports.isTextFilter = exports.isRelativeDateFilter = exports.isCascadingFilter = exports.isLogicalAttributeFilter = exports.isExcludeFilter = exports.isMeasureFilter = exports.isRankingFilter = exports.isNumericFilter = exports.isMembersFilter = exports.isCustomFilter = exports.CustomFilter = exports.RelativeDateFilter = exports.DateRangeFilter = exports.TextFilter = exports.NumericFilter = exports.RankingFilter = exports.MeasureFilter = exports.DoubleOperatorFilter = exports.ExcludeFilter = exports.CascadingFilter = exports.MembersFilter = exports.LogicalAttributeFilter = exports.FilterTypes = exports.RankingOperators = exports.LogicalOperators = exports.DateOperators = exports.NumericOperators = exports.TextOperators = void 0;
7
+ /* eslint-disable max-lines */
7
8
  const hash_it_1 = __importDefault(require("hash-it"));
8
9
  const merge_js_1 = __importDefault(require("lodash-es/merge.js"));
9
10
  const omit_js_1 = __importDefault(require("lodash-es/omit.js"));
@@ -98,6 +99,10 @@ exports.FilterTypes = {
98
99
  class AbstractFilter extends base_js_1.DimensionalElement {
99
100
  constructor(att, filterType, config, composeCode) {
100
101
  super('filter', types_js_1.MetadataTypes.Filter, undefined, undefined, composeCode);
102
+ /**
103
+ * @internal
104
+ */
105
+ this.__serializable = 'AbstractFilter';
101
106
  this.filterType = filterType;
102
107
  // need to set isScope
103
108
  // to make filter complete for comparison
@@ -115,7 +120,6 @@ class AbstractFilter extends base_js_1.DimensionalElement {
115
120
  */
116
121
  serialize() {
117
122
  const result = super.serialize();
118
- result.__serializable = 'AbstractFilter';
119
123
  result.filterType = this.filterType;
120
124
  result.attribute = this.attribute.serialize();
121
125
  if (this.config) {
@@ -173,6 +177,10 @@ class AbstractFilter extends base_js_1.DimensionalElement {
173
177
  class LogicalAttributeFilter extends AbstractFilter {
174
178
  constructor(filters, operator, config, composeCode) {
175
179
  super(filters[0].attribute, exports.FilterTypes.logicalAttribute, config, composeCode);
180
+ /**
181
+ * @internal
182
+ */
183
+ this.__serializable = 'LogicalAttributeFilter';
176
184
  this.operator = operator;
177
185
  this.filters = filters;
178
186
  }
@@ -187,7 +195,6 @@ class LogicalAttributeFilter extends AbstractFilter {
187
195
  */
188
196
  serialize() {
189
197
  const result = super.serialize();
190
- result.__serializable = 'LogicalAttributeFilter';
191
198
  result.operator = this.operator;
192
199
  result.filters = this.filters.map((f) => f.serialize());
193
200
  return result;
@@ -208,6 +215,10 @@ exports.LogicalAttributeFilter = LogicalAttributeFilter;
208
215
  class MembersFilter extends AbstractFilter {
209
216
  constructor(attribute, members, config, composeCode) {
210
217
  super(attribute, exports.FilterTypes.members, undefined, composeCode);
218
+ /**
219
+ * @internal
220
+ */
221
+ this.__serializable = 'MembersFilter';
211
222
  this.members = members !== null && members !== void 0 ? members : [];
212
223
  if (this.members.filter((m) => m === null || m === undefined).length > 0) {
213
224
  throw new translatable_error_js_1.TranslatableError('errors.filter.membersFilterNullMember', {
@@ -233,7 +244,6 @@ class MembersFilter extends AbstractFilter {
233
244
  */
234
245
  serialize() {
235
246
  const result = super.serialize();
236
- result.__serializable = 'MembersFilter';
237
247
  if (this.config) {
238
248
  result.config = (this.config.backgroundFilter
239
249
  ? Object.assign(Object.assign({}, this.config), { backgroundFilter: this.config.backgroundFilter.serialize() }) : this.config);
@@ -266,6 +276,10 @@ exports.MembersFilter = MembersFilter;
266
276
  class CascadingFilter extends AbstractFilter {
267
277
  constructor(filters, config, composeCode) {
268
278
  super(filters[0].attribute, exports.FilterTypes.cascading, config, composeCode);
279
+ /**
280
+ * @internal
281
+ */
282
+ this.__serializable = 'CascadingFilter';
269
283
  this._filters = filters;
270
284
  }
271
285
  /**
@@ -289,7 +303,6 @@ class CascadingFilter extends AbstractFilter {
289
303
  */
290
304
  serialize() {
291
305
  const result = super.serialize();
292
- result.__serializable = 'CascadingFilter';
293
306
  result._filters = this.filters.map((f) => f.serialize());
294
307
  return result;
295
308
  }
@@ -318,6 +331,10 @@ exports.CascadingFilter = CascadingFilter;
318
331
  class ExcludeFilter extends AbstractFilter {
319
332
  constructor(filter, input, config, composeCode) {
320
333
  super(filter.attribute, exports.FilterTypes.exclude, config, composeCode);
334
+ /**
335
+ * @internal
336
+ */
337
+ this.__serializable = 'ExcludeFilter';
321
338
  this.input = input;
322
339
  this.filter = filter;
323
340
  }
@@ -336,7 +353,6 @@ class ExcludeFilter extends AbstractFilter {
336
353
  */
337
354
  serialize() {
338
355
  const result = super.serialize();
339
- result.__serializable = 'ExcludeFilter';
340
356
  result.filter = this.filter.serialize();
341
357
  if (this.input) {
342
358
  result.input = this.input.serialize();
@@ -366,6 +382,10 @@ exports.ExcludeFilter = ExcludeFilter;
366
382
  class DoubleOperatorFilter extends AbstractFilter {
367
383
  constructor(att, filterType, operatorA, valueA, operatorB, valueB, config, composeCode) {
368
384
  super(att, filterType, config, composeCode);
385
+ /**
386
+ * @internal
387
+ */
388
+ this.__serializable = 'DoubleOperatorFilter';
369
389
  if (operatorA && valueA !== undefined) {
370
390
  this.valueA = valueA;
371
391
  this.operatorA = operatorA;
@@ -393,7 +413,6 @@ class DoubleOperatorFilter extends AbstractFilter {
393
413
  */
394
414
  serialize() {
395
415
  const result = super.serialize();
396
- result.__serializable = 'DoubleOperatorFilter';
397
416
  if (this.operatorA) {
398
417
  result.operatorA = this.operatorA;
399
418
  }
@@ -429,6 +448,10 @@ exports.DoubleOperatorFilter = DoubleOperatorFilter;
429
448
  class MeasureFilter extends DoubleOperatorFilter {
430
449
  constructor(att, measure, operatorA, valueA, operatorB, valueB, config, composeCode) {
431
450
  super(att, exports.FilterTypes.measure, operatorA, valueA, operatorB, valueB, config, composeCode);
451
+ /**
452
+ * @internal
453
+ */
454
+ this.__serializable = 'MeasureFilter';
432
455
  this.measure = measure;
433
456
  }
434
457
  /**
@@ -449,7 +472,6 @@ class MeasureFilter extends DoubleOperatorFilter {
449
472
  */
450
473
  serialize() {
451
474
  const result = super.serialize();
452
- result.__serializable = 'MeasureFilter';
453
475
  result.measure = this.measure.serialize();
454
476
  return result;
455
477
  }
@@ -458,7 +480,7 @@ class MeasureFilter extends DoubleOperatorFilter {
458
480
  return AbstractFilter.disabledJaql(nested);
459
481
  }
460
482
  const result = super.jaql(nested);
461
- if (this.measure instanceof measures_js_1.DimensionalBaseMeasure) {
483
+ if ((0, measures_js_1.isDimensionalBaseMeasure)(this.measure)) {
462
484
  Object.entries(this.measure.jaql().jaql).forEach(([key, value]) => {
463
485
  result.jaql[key] = value;
464
486
  });
@@ -473,6 +495,10 @@ exports.MeasureFilter = MeasureFilter;
473
495
  class RankingFilter extends AbstractFilter {
474
496
  constructor(att, measure, operator, count, config, composeCode) {
475
497
  super(att, exports.FilterTypes.ranking, config, composeCode);
498
+ /**
499
+ * @internal
500
+ */
501
+ this.__serializable = 'RankingFilter';
476
502
  this.count = count;
477
503
  this.operator = operator;
478
504
  this.measure = measure;
@@ -488,7 +514,6 @@ class RankingFilter extends AbstractFilter {
488
514
  */
489
515
  serialize() {
490
516
  const result = super.serialize();
491
- result.__serializable = 'RankingFilter';
492
517
  result.count = this.count;
493
518
  result.operator = this.operator;
494
519
  result.measure = this.measure.serialize();
@@ -511,14 +536,16 @@ exports.RankingFilter = RankingFilter;
511
536
  class NumericFilter extends DoubleOperatorFilter {
512
537
  constructor(att, operatorA, valueA, operatorB, valueB, config, composeCode) {
513
538
  super(att, exports.FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config, composeCode);
539
+ /**
540
+ * @internal
541
+ */
542
+ this.__serializable = 'NumericFilter';
514
543
  }
515
544
  /**
516
545
  * Gets a serializable representation of the element
517
546
  */
518
547
  serialize() {
519
- const result = super.serialize();
520
- result.__serializable = 'NumericFilter';
521
- return result;
548
+ return super.serialize();
522
549
  }
523
550
  }
524
551
  exports.NumericFilter = NumericFilter;
@@ -528,14 +555,16 @@ exports.NumericFilter = NumericFilter;
528
555
  class TextFilter extends DoubleOperatorFilter {
529
556
  constructor(att, operator, value, config, composeCode) {
530
557
  super(att, exports.FilterTypes.text, operator, value, undefined, undefined, config, composeCode);
558
+ /**
559
+ * @internal
560
+ */
561
+ this.__serializable = 'TextFilter';
531
562
  }
532
563
  /**
533
564
  * Gets a serializable representation of the element
534
565
  */
535
566
  serialize() {
536
- const result = super.serialize();
537
- result.__serializable = 'TextFilter';
538
- return result;
567
+ return super.serialize();
539
568
  }
540
569
  }
541
570
  exports.TextFilter = TextFilter;
@@ -545,6 +574,10 @@ exports.TextFilter = TextFilter;
545
574
  class DateRangeFilter extends DoubleOperatorFilter {
546
575
  constructor(levelAttribute, valueFrom, valueTo, config, composeCode) {
547
576
  super(levelAttribute, exports.FilterTypes.dateRange, exports.DateOperators.From, valueFrom, exports.DateOperators.To, valueTo, config, composeCode);
577
+ /**
578
+ * @internal
579
+ */
580
+ this.__serializable = 'DateRangeFilter';
548
581
  if (typeof valueFrom === 'object') {
549
582
  this.valueA = valueFrom.toISOString();
550
583
  }
@@ -571,9 +604,7 @@ class DateRangeFilter extends DoubleOperatorFilter {
571
604
  * Gets a serializable representation of the element
572
605
  */
573
606
  serialize() {
574
- const result = super.serialize();
575
- result.__serializable = 'DateRangeFilter';
576
- return result;
607
+ return super.serialize();
577
608
  }
578
609
  }
579
610
  exports.DateRangeFilter = DateRangeFilter;
@@ -583,6 +614,10 @@ exports.DateRangeFilter = DateRangeFilter;
583
614
  class RelativeDateFilter extends AbstractFilter {
584
615
  constructor(levelAttribute, offset, count, operator, anchor, config, composeCode) {
585
616
  super(levelAttribute, exports.FilterTypes.relativeDate, config, composeCode);
617
+ /**
618
+ * @internal
619
+ */
620
+ this.__serializable = 'RelativeDateFilter';
586
621
  if (!operator) {
587
622
  operator = exports.DateOperators.Next;
588
623
  }
@@ -614,7 +649,6 @@ class RelativeDateFilter extends AbstractFilter {
614
649
  */
615
650
  serialize() {
616
651
  const result = super.serialize();
617
- result.__serializable = 'RelativeDateFilter';
618
652
  result.offset = this.offset;
619
653
  result.count = this.count;
620
654
  result.operator = this.operator;
@@ -651,6 +685,10 @@ exports.RelativeDateFilter = RelativeDateFilter;
651
685
  class CustomFilter extends AbstractFilter {
652
686
  constructor(att, jaql, config, composeCode) {
653
687
  super(att, exports.FilterTypes.advanced, config, composeCode);
688
+ /**
689
+ * @internal
690
+ */
691
+ this.__serializable = 'CustomFilter';
654
692
  // remove filterType from jaql as it is not needed
655
693
  delete jaql.filterType;
656
694
  this.jaqlExpression = jaql;
@@ -673,7 +711,6 @@ class CustomFilter extends AbstractFilter {
673
711
  */
674
712
  serialize() {
675
713
  const result = super.serialize();
676
- result.__serializable = 'CustomFilter';
677
714
  result.jaqlExpression = this.jaqlExpression;
678
715
  return result;
679
716
  }
@@ -686,7 +723,7 @@ exports.CustomFilter = CustomFilter;
686
723
  * @internal
687
724
  */
688
725
  function isCustomFilter(filter) {
689
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.advanced;
726
+ return filter && filter.__serializable === 'CustomFilter';
690
727
  }
691
728
  exports.isCustomFilter = isCustomFilter;
692
729
  /**
@@ -696,7 +733,7 @@ exports.isCustomFilter = isCustomFilter;
696
733
  * @internal
697
734
  */
698
735
  function isMembersFilter(filter) {
699
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.members;
736
+ return filter && filter.__serializable === 'MembersFilter';
700
737
  }
701
738
  exports.isMembersFilter = isMembersFilter;
702
739
  /**
@@ -706,7 +743,7 @@ exports.isMembersFilter = isMembersFilter;
706
743
  * @internal
707
744
  */
708
745
  function isNumericFilter(filter) {
709
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.numeric;
746
+ return filter && filter.__serializable === 'NumericFilter';
710
747
  }
711
748
  exports.isNumericFilter = isNumericFilter;
712
749
  /**
@@ -716,7 +753,7 @@ exports.isNumericFilter = isNumericFilter;
716
753
  * @internal
717
754
  */
718
755
  function isRankingFilter(filter) {
719
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.ranking;
756
+ return filter && filter.__serializable === 'RankingFilter';
720
757
  }
721
758
  exports.isRankingFilter = isRankingFilter;
722
759
  /**
@@ -726,7 +763,7 @@ exports.isRankingFilter = isRankingFilter;
726
763
  * @internal
727
764
  */
728
765
  function isMeasureFilter(filter) {
729
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.measure;
766
+ return filter && filter.__serializable === 'MeasureFilter';
730
767
  }
731
768
  exports.isMeasureFilter = isMeasureFilter;
732
769
  /**
@@ -736,7 +773,7 @@ exports.isMeasureFilter = isMeasureFilter;
736
773
  * @internal
737
774
  */
738
775
  function isExcludeFilter(filter) {
739
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.exclude;
776
+ return filter && filter.__serializable === 'ExcludeFilter';
740
777
  }
741
778
  exports.isExcludeFilter = isExcludeFilter;
742
779
  /**
@@ -746,7 +783,7 @@ exports.isExcludeFilter = isExcludeFilter;
746
783
  * @internal
747
784
  */
748
785
  function isLogicalAttributeFilter(filter) {
749
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.logicalAttribute;
786
+ return filter && filter.__serializable === 'LogicalAttributeFilter';
750
787
  }
751
788
  exports.isLogicalAttributeFilter = isLogicalAttributeFilter;
752
789
  /**
@@ -756,7 +793,7 @@ exports.isLogicalAttributeFilter = isLogicalAttributeFilter;
756
793
  * @internal
757
794
  */
758
795
  function isCascadingFilter(filter) {
759
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.cascading;
796
+ return filter && filter.__serializable === 'CascadingFilter';
760
797
  }
761
798
  exports.isCascadingFilter = isCascadingFilter;
762
799
  /**
@@ -766,7 +803,7 @@ exports.isCascadingFilter = isCascadingFilter;
766
803
  * @internal
767
804
  */
768
805
  function isRelativeDateFilter(filter) {
769
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.relativeDate;
806
+ return filter && filter.__serializable === 'RelativeDateFilter';
770
807
  }
771
808
  exports.isRelativeDateFilter = isRelativeDateFilter;
772
809
  /**
@@ -776,7 +813,7 @@ exports.isRelativeDateFilter = isRelativeDateFilter;
776
813
  * @internal
777
814
  */
778
815
  function isTextFilter(filter) {
779
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.text;
816
+ return filter && filter.__serializable === 'TextFilter';
780
817
  }
781
818
  exports.isTextFilter = isTextFilter;
782
819
  /**
@@ -786,7 +823,7 @@ exports.isTextFilter = isTextFilter;
786
823
  * @internal
787
824
  */
788
825
  function isDateRangeFilter(filter) {
789
- return 'filterType' in filter && filter.filterType === exports.FilterTypes.dateRange;
826
+ return filter && filter.__serializable === 'DateRangeFilter';
790
827
  }
791
828
  exports.isDateRangeFilter = isDateRangeFilter;
792
829
  /**
@@ -41,6 +41,10 @@ export interface Element {
41
41
  * @internal
42
42
  */
43
43
  readonly dataSource?: JaqlDataSource;
44
+ /**
45
+ * @internal
46
+ */
47
+ readonly __serializable: string;
44
48
  /**
45
49
  * Gets a serializable representation of the element.
46
50
  *
@@ -1,6 +1,6 @@
1
1
  import { DimensionalElement } from './base.js';
2
2
  import { SortDirection } from './interfaces.js';
3
- import { JSONObject, MetadataItem, MetadataItemJaql } from './types.js';
3
+ import { AnyObject, JSONObject, MetadataItem, MetadataItemJaql } from './types.js';
4
4
  /**
5
5
  * This implementation wraps metadata for a JAQL query. The metadata could be
6
6
  * for a dimension, measure, or filter. We do little to no interpretation of
@@ -16,6 +16,10 @@ import { JSONObject, MetadataItem, MetadataItemJaql } from './types.js';
16
16
  * @internal
17
17
  */
18
18
  export declare class JaqlElement extends DimensionalElement {
19
+ /**
20
+ * @internal
21
+ */
22
+ readonly __serializable: string;
19
23
  private readonly metadataItem;
20
24
  expression: string;
21
25
  skipValidation: boolean;
@@ -31,6 +35,10 @@ export declare class JaqlElement extends DimensionalElement {
31
35
  */
32
36
  serialize(): JSONObject;
33
37
  }
38
+ /**
39
+ * @internal
40
+ */
41
+ export declare const isJaqlElement: (v: AnyObject) => v is JaqlElement;
34
42
  /**
35
43
  * Create a JaqlElement from a MetadataItem
36
44
  *
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDimensionalElementFromMetadataItem = exports.createJaqlElement = exports.JaqlElement = void 0;
3
+ exports.createDimensionalElementFromMetadataItem = exports.createJaqlElement = exports.isJaqlElement = exports.JaqlElement = void 0;
4
4
  const utils_js_1 = require("../utils.js");
5
5
  const attributes_js_1 = require("./attributes.js");
6
6
  const base_js_1 = require("./base.js");
@@ -23,6 +23,10 @@ class JaqlElement extends base_js_1.DimensionalElement {
23
23
  constructor(item, type) {
24
24
  var _a;
25
25
  super((_a = item.jaql.title) !== null && _a !== void 0 ? _a : '', type);
26
+ /**
27
+ * @internal
28
+ */
29
+ this.__serializable = 'JaqlElement';
26
30
  this.expression = (item.jaql.dim || item.jaql.formula);
27
31
  this.metadataItem = item;
28
32
  if (item.jaql.agg) {
@@ -56,7 +60,6 @@ class JaqlElement extends base_js_1.DimensionalElement {
56
60
  */
57
61
  serialize() {
58
62
  const result = super.serialize();
59
- result.__serializable = 'JaqlElement';
60
63
  result.metadataItem = this.metadataItem;
61
64
  result.type = this.type;
62
65
  return result;
@@ -68,6 +71,13 @@ const toMetadataType = {
68
71
  numeric: types_js_1.MetadataTypes.NumericAttribute,
69
72
  datetime: types_js_1.MetadataTypes.DateLevel,
70
73
  };
74
+ /**
75
+ * @internal
76
+ */
77
+ const isJaqlElement = (v) => {
78
+ return v && v.__serializable === 'JaqlElement';
79
+ };
80
+ exports.isJaqlElement = isJaqlElement;
71
81
  /**
72
82
  * Create a JaqlElement from a MetadataItem
73
83
  *
@@ -1,10 +1,14 @@
1
1
  import { DimensionalElement } from '../base.js';
2
2
  import { Attribute, BaseMeasure, CalculatedMeasure, Measure, MeasureContext, MeasureTemplate } from '../interfaces.js';
3
- import { JaqlDataSource, JSONObject, Sort } from '../types.js';
3
+ import { AnyObject, JaqlDataSource, JSONObject, Sort } from '../types.js';
4
4
  /**
5
5
  * @internal
6
6
  */
7
7
  export declare abstract class AbstractMeasure extends DimensionalElement {
8
+ /**
9
+ * @internal
10
+ */
11
+ readonly __serializable: string;
8
12
  protected _sort: Sort;
9
13
  protected _format: string | undefined;
10
14
  constructor(name: string, type: string, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
@@ -49,6 +53,10 @@ export declare abstract class AbstractMeasure extends DimensionalElement {
49
53
  * @internal
50
54
  */
51
55
  export declare class DimensionalBaseMeasure extends AbstractMeasure implements BaseMeasure {
56
+ /**
57
+ * @internal
58
+ */
59
+ readonly __serializable: string;
52
60
  static aggregationFromJAQL(agg: string): string;
53
61
  static aggregationToJAQL(agg: string): string;
54
62
  constructor(name: string, attribute: Attribute, agg: string, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
@@ -86,6 +94,10 @@ export declare class DimensionalBaseMeasure extends AbstractMeasure implements B
86
94
  serialize(): JSONObject;
87
95
  jaql(nested?: boolean): any;
88
96
  }
97
+ /**
98
+ * @internal
99
+ */
100
+ export declare const isDimensionalBaseMeasure: (v: AnyObject) => v is DimensionalBaseMeasure;
89
101
  /**
90
102
  * Stands for a Calculated Measure
91
103
  *
@@ -93,6 +105,10 @@ export declare class DimensionalBaseMeasure extends AbstractMeasure implements B
93
105
  * @internal
94
106
  */
95
107
  export declare class DimensionalCalculatedMeasure extends AbstractMeasure implements CalculatedMeasure {
108
+ /**
109
+ * @internal
110
+ */
111
+ readonly __serializable: string;
96
112
  constructor(name: string, expression: string, context: MeasureContext, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
97
113
  /**
98
114
  * Defines the Calculated measure's expression
@@ -128,12 +144,20 @@ export declare class DimensionalCalculatedMeasure extends AbstractMeasure implem
128
144
  serialize(): JSONObject;
129
145
  jaql(nested?: boolean): any;
130
146
  }
147
+ /**
148
+ * @internal
149
+ */
150
+ export declare const isDimensionalCalculatedMeasure: (v: AnyObject) => v is DimensionalCalculatedMeasure;
131
151
  /**
132
152
  * Stands for a Measure template - generator for different aggregation over Attribute
133
153
  *
134
154
  * @internal
135
155
  */
136
156
  export declare class DimensionalMeasureTemplate extends AbstractMeasure implements MeasureTemplate {
157
+ /**
158
+ * @internal
159
+ */
160
+ readonly __serializable: string;
137
161
  constructor(name: string, attribute: Attribute, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
138
162
  /**
139
163
  * Aggregating attribute
@@ -211,7 +235,11 @@ export declare class DimensionalMeasureTemplate extends AbstractMeasure implemen
211
235
  countDistinct(format?: string): Measure;
212
236
  }
213
237
  /**
214
- * @param json
238
+ * @internal
239
+ */
240
+ export declare const isDimensionalMeasureTemplate: (v: AnyObject) => v is DimensionalMeasureTemplate;
241
+ /**
242
+ * @param json - The JSON object to create a measure from
215
243
  * @internal
216
244
  */
217
245
  export declare function createMeasure(json: any): Measure | BaseMeasure;