@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.
- 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/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/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
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
1
2
|
import hash from 'hash-it';
|
|
2
3
|
import merge from 'lodash-es/merge.js';
|
|
3
4
|
import omit from 'lodash-es/omit.js';
|
|
4
5
|
import { TranslatableError } from '../../translation/translatable-error.js';
|
|
5
6
|
import { DimensionalElement } from '../base.js';
|
|
6
7
|
import { create } from '../factory.js';
|
|
7
|
-
import {
|
|
8
|
+
import { isDimensionalBaseMeasure } from '../measures/measures.js';
|
|
8
9
|
import { DateLevels, MetadataTypes } from '../types.js';
|
|
9
10
|
import { getDefaultBaseFilterConfig, getDefaultMembersFilterConfig, } from './filter-config-utils.js';
|
|
10
11
|
/**
|
|
@@ -92,6 +93,10 @@ export const FilterTypes = {
|
|
|
92
93
|
class AbstractFilter extends DimensionalElement {
|
|
93
94
|
constructor(att, filterType, config, composeCode) {
|
|
94
95
|
super('filter', MetadataTypes.Filter, undefined, undefined, composeCode);
|
|
96
|
+
/**
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
this.__serializable = 'AbstractFilter';
|
|
95
100
|
this.filterType = filterType;
|
|
96
101
|
// need to set isScope
|
|
97
102
|
// to make filter complete for comparison
|
|
@@ -109,7 +114,6 @@ class AbstractFilter extends DimensionalElement {
|
|
|
109
114
|
*/
|
|
110
115
|
serialize() {
|
|
111
116
|
const result = super.serialize();
|
|
112
|
-
result.__serializable = 'AbstractFilter';
|
|
113
117
|
result.filterType = this.filterType;
|
|
114
118
|
result.attribute = this.attribute.serialize();
|
|
115
119
|
if (this.config) {
|
|
@@ -167,6 +171,10 @@ class AbstractFilter extends DimensionalElement {
|
|
|
167
171
|
export class LogicalAttributeFilter extends AbstractFilter {
|
|
168
172
|
constructor(filters, operator, config, composeCode) {
|
|
169
173
|
super(filters[0].attribute, FilterTypes.logicalAttribute, config, composeCode);
|
|
174
|
+
/**
|
|
175
|
+
* @internal
|
|
176
|
+
*/
|
|
177
|
+
this.__serializable = 'LogicalAttributeFilter';
|
|
170
178
|
this.operator = operator;
|
|
171
179
|
this.filters = filters;
|
|
172
180
|
}
|
|
@@ -181,7 +189,6 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
181
189
|
*/
|
|
182
190
|
serialize() {
|
|
183
191
|
const result = super.serialize();
|
|
184
|
-
result.__serializable = 'LogicalAttributeFilter';
|
|
185
192
|
result.operator = this.operator;
|
|
186
193
|
result.filters = this.filters.map((f) => f.serialize());
|
|
187
194
|
return result;
|
|
@@ -201,6 +208,10 @@ export class LogicalAttributeFilter extends AbstractFilter {
|
|
|
201
208
|
export class MembersFilter extends AbstractFilter {
|
|
202
209
|
constructor(attribute, members, config, composeCode) {
|
|
203
210
|
super(attribute, FilterTypes.members, undefined, composeCode);
|
|
211
|
+
/**
|
|
212
|
+
* @internal
|
|
213
|
+
*/
|
|
214
|
+
this.__serializable = 'MembersFilter';
|
|
204
215
|
this.members = members !== null && members !== void 0 ? members : [];
|
|
205
216
|
if (this.members.filter((m) => m === null || m === undefined).length > 0) {
|
|
206
217
|
throw new TranslatableError('errors.filter.membersFilterNullMember', {
|
|
@@ -226,7 +237,6 @@ export class MembersFilter extends AbstractFilter {
|
|
|
226
237
|
*/
|
|
227
238
|
serialize() {
|
|
228
239
|
const result = super.serialize();
|
|
229
|
-
result.__serializable = 'MembersFilter';
|
|
230
240
|
if (this.config) {
|
|
231
241
|
result.config = (this.config.backgroundFilter
|
|
232
242
|
? Object.assign(Object.assign({}, this.config), { backgroundFilter: this.config.backgroundFilter.serialize() }) : this.config);
|
|
@@ -258,6 +268,10 @@ export class MembersFilter extends AbstractFilter {
|
|
|
258
268
|
export class CascadingFilter extends AbstractFilter {
|
|
259
269
|
constructor(filters, config, composeCode) {
|
|
260
270
|
super(filters[0].attribute, FilterTypes.cascading, config, composeCode);
|
|
271
|
+
/**
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
this.__serializable = 'CascadingFilter';
|
|
261
275
|
this._filters = filters;
|
|
262
276
|
}
|
|
263
277
|
/**
|
|
@@ -281,7 +295,6 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
281
295
|
*/
|
|
282
296
|
serialize() {
|
|
283
297
|
const result = super.serialize();
|
|
284
|
-
result.__serializable = 'CascadingFilter';
|
|
285
298
|
result._filters = this.filters.map((f) => f.serialize());
|
|
286
299
|
return result;
|
|
287
300
|
}
|
|
@@ -309,6 +322,10 @@ export class CascadingFilter extends AbstractFilter {
|
|
|
309
322
|
export class ExcludeFilter extends AbstractFilter {
|
|
310
323
|
constructor(filter, input, config, composeCode) {
|
|
311
324
|
super(filter.attribute, FilterTypes.exclude, config, composeCode);
|
|
325
|
+
/**
|
|
326
|
+
* @internal
|
|
327
|
+
*/
|
|
328
|
+
this.__serializable = 'ExcludeFilter';
|
|
312
329
|
this.input = input;
|
|
313
330
|
this.filter = filter;
|
|
314
331
|
}
|
|
@@ -327,7 +344,6 @@ export class ExcludeFilter extends AbstractFilter {
|
|
|
327
344
|
*/
|
|
328
345
|
serialize() {
|
|
329
346
|
const result = super.serialize();
|
|
330
|
-
result.__serializable = 'ExcludeFilter';
|
|
331
347
|
result.filter = this.filter.serialize();
|
|
332
348
|
if (this.input) {
|
|
333
349
|
result.input = this.input.serialize();
|
|
@@ -356,6 +372,10 @@ export class ExcludeFilter extends AbstractFilter {
|
|
|
356
372
|
export class DoubleOperatorFilter extends AbstractFilter {
|
|
357
373
|
constructor(att, filterType, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
358
374
|
super(att, filterType, config, composeCode);
|
|
375
|
+
/**
|
|
376
|
+
* @internal
|
|
377
|
+
*/
|
|
378
|
+
this.__serializable = 'DoubleOperatorFilter';
|
|
359
379
|
if (operatorA && valueA !== undefined) {
|
|
360
380
|
this.valueA = valueA;
|
|
361
381
|
this.operatorA = operatorA;
|
|
@@ -383,7 +403,6 @@ export class DoubleOperatorFilter extends AbstractFilter {
|
|
|
383
403
|
*/
|
|
384
404
|
serialize() {
|
|
385
405
|
const result = super.serialize();
|
|
386
|
-
result.__serializable = 'DoubleOperatorFilter';
|
|
387
406
|
if (this.operatorA) {
|
|
388
407
|
result.operatorA = this.operatorA;
|
|
389
408
|
}
|
|
@@ -418,6 +437,10 @@ export class DoubleOperatorFilter extends AbstractFilter {
|
|
|
418
437
|
export class MeasureFilter extends DoubleOperatorFilter {
|
|
419
438
|
constructor(att, measure, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
420
439
|
super(att, FilterTypes.measure, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
440
|
+
/**
|
|
441
|
+
* @internal
|
|
442
|
+
*/
|
|
443
|
+
this.__serializable = 'MeasureFilter';
|
|
421
444
|
this.measure = measure;
|
|
422
445
|
}
|
|
423
446
|
/**
|
|
@@ -438,7 +461,6 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
438
461
|
*/
|
|
439
462
|
serialize() {
|
|
440
463
|
const result = super.serialize();
|
|
441
|
-
result.__serializable = 'MeasureFilter';
|
|
442
464
|
result.measure = this.measure.serialize();
|
|
443
465
|
return result;
|
|
444
466
|
}
|
|
@@ -447,7 +469,7 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
447
469
|
return AbstractFilter.disabledJaql(nested);
|
|
448
470
|
}
|
|
449
471
|
const result = super.jaql(nested);
|
|
450
|
-
if (this.measure
|
|
472
|
+
if (isDimensionalBaseMeasure(this.measure)) {
|
|
451
473
|
Object.entries(this.measure.jaql().jaql).forEach(([key, value]) => {
|
|
452
474
|
result.jaql[key] = value;
|
|
453
475
|
});
|
|
@@ -461,6 +483,10 @@ export class MeasureFilter extends DoubleOperatorFilter {
|
|
|
461
483
|
export class RankingFilter extends AbstractFilter {
|
|
462
484
|
constructor(att, measure, operator, count, config, composeCode) {
|
|
463
485
|
super(att, FilterTypes.ranking, config, composeCode);
|
|
486
|
+
/**
|
|
487
|
+
* @internal
|
|
488
|
+
*/
|
|
489
|
+
this.__serializable = 'RankingFilter';
|
|
464
490
|
this.count = count;
|
|
465
491
|
this.operator = operator;
|
|
466
492
|
this.measure = measure;
|
|
@@ -476,7 +502,6 @@ export class RankingFilter extends AbstractFilter {
|
|
|
476
502
|
*/
|
|
477
503
|
serialize() {
|
|
478
504
|
const result = super.serialize();
|
|
479
|
-
result.__serializable = 'RankingFilter';
|
|
480
505
|
result.count = this.count;
|
|
481
506
|
result.operator = this.operator;
|
|
482
507
|
result.measure = this.measure.serialize();
|
|
@@ -498,14 +523,16 @@ export class RankingFilter extends AbstractFilter {
|
|
|
498
523
|
export class NumericFilter extends DoubleOperatorFilter {
|
|
499
524
|
constructor(att, operatorA, valueA, operatorB, valueB, config, composeCode) {
|
|
500
525
|
super(att, FilterTypes.numeric, operatorA, valueA, operatorB, valueB, config, composeCode);
|
|
526
|
+
/**
|
|
527
|
+
* @internal
|
|
528
|
+
*/
|
|
529
|
+
this.__serializable = 'NumericFilter';
|
|
501
530
|
}
|
|
502
531
|
/**
|
|
503
532
|
* Gets a serializable representation of the element
|
|
504
533
|
*/
|
|
505
534
|
serialize() {
|
|
506
|
-
|
|
507
|
-
result.__serializable = 'NumericFilter';
|
|
508
|
-
return result;
|
|
535
|
+
return super.serialize();
|
|
509
536
|
}
|
|
510
537
|
}
|
|
511
538
|
/**
|
|
@@ -514,14 +541,16 @@ export class NumericFilter extends DoubleOperatorFilter {
|
|
|
514
541
|
export class TextFilter extends DoubleOperatorFilter {
|
|
515
542
|
constructor(att, operator, value, config, composeCode) {
|
|
516
543
|
super(att, FilterTypes.text, operator, value, undefined, undefined, config, composeCode);
|
|
544
|
+
/**
|
|
545
|
+
* @internal
|
|
546
|
+
*/
|
|
547
|
+
this.__serializable = 'TextFilter';
|
|
517
548
|
}
|
|
518
549
|
/**
|
|
519
550
|
* Gets a serializable representation of the element
|
|
520
551
|
*/
|
|
521
552
|
serialize() {
|
|
522
|
-
|
|
523
|
-
result.__serializable = 'TextFilter';
|
|
524
|
-
return result;
|
|
553
|
+
return super.serialize();
|
|
525
554
|
}
|
|
526
555
|
}
|
|
527
556
|
/**
|
|
@@ -530,6 +559,10 @@ export class TextFilter extends DoubleOperatorFilter {
|
|
|
530
559
|
export class DateRangeFilter extends DoubleOperatorFilter {
|
|
531
560
|
constructor(levelAttribute, valueFrom, valueTo, config, composeCode) {
|
|
532
561
|
super(levelAttribute, FilterTypes.dateRange, DateOperators.From, valueFrom, DateOperators.To, valueTo, config, composeCode);
|
|
562
|
+
/**
|
|
563
|
+
* @internal
|
|
564
|
+
*/
|
|
565
|
+
this.__serializable = 'DateRangeFilter';
|
|
533
566
|
if (typeof valueFrom === 'object') {
|
|
534
567
|
this.valueA = valueFrom.toISOString();
|
|
535
568
|
}
|
|
@@ -556,9 +589,7 @@ export class DateRangeFilter extends DoubleOperatorFilter {
|
|
|
556
589
|
* Gets a serializable representation of the element
|
|
557
590
|
*/
|
|
558
591
|
serialize() {
|
|
559
|
-
|
|
560
|
-
result.__serializable = 'DateRangeFilter';
|
|
561
|
-
return result;
|
|
592
|
+
return super.serialize();
|
|
562
593
|
}
|
|
563
594
|
}
|
|
564
595
|
/**
|
|
@@ -567,6 +598,10 @@ export class DateRangeFilter extends DoubleOperatorFilter {
|
|
|
567
598
|
export class RelativeDateFilter extends AbstractFilter {
|
|
568
599
|
constructor(levelAttribute, offset, count, operator, anchor, config, composeCode) {
|
|
569
600
|
super(levelAttribute, FilterTypes.relativeDate, config, composeCode);
|
|
601
|
+
/**
|
|
602
|
+
* @internal
|
|
603
|
+
*/
|
|
604
|
+
this.__serializable = 'RelativeDateFilter';
|
|
570
605
|
if (!operator) {
|
|
571
606
|
operator = DateOperators.Next;
|
|
572
607
|
}
|
|
@@ -598,7 +633,6 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
598
633
|
*/
|
|
599
634
|
serialize() {
|
|
600
635
|
const result = super.serialize();
|
|
601
|
-
result.__serializable = 'RelativeDateFilter';
|
|
602
636
|
result.offset = this.offset;
|
|
603
637
|
result.count = this.count;
|
|
604
638
|
result.operator = this.operator;
|
|
@@ -634,6 +668,10 @@ export class RelativeDateFilter extends AbstractFilter {
|
|
|
634
668
|
export class CustomFilter extends AbstractFilter {
|
|
635
669
|
constructor(att, jaql, config, composeCode) {
|
|
636
670
|
super(att, FilterTypes.advanced, config, composeCode);
|
|
671
|
+
/**
|
|
672
|
+
* @internal
|
|
673
|
+
*/
|
|
674
|
+
this.__serializable = 'CustomFilter';
|
|
637
675
|
// remove filterType from jaql as it is not needed
|
|
638
676
|
delete jaql.filterType;
|
|
639
677
|
this.jaqlExpression = jaql;
|
|
@@ -656,7 +694,6 @@ export class CustomFilter extends AbstractFilter {
|
|
|
656
694
|
*/
|
|
657
695
|
serialize() {
|
|
658
696
|
const result = super.serialize();
|
|
659
|
-
result.__serializable = 'CustomFilter';
|
|
660
697
|
result.jaqlExpression = this.jaqlExpression;
|
|
661
698
|
return result;
|
|
662
699
|
}
|
|
@@ -668,7 +705,7 @@ export class CustomFilter extends AbstractFilter {
|
|
|
668
705
|
* @internal
|
|
669
706
|
*/
|
|
670
707
|
export function isCustomFilter(filter) {
|
|
671
|
-
return
|
|
708
|
+
return filter && filter.__serializable === 'CustomFilter';
|
|
672
709
|
}
|
|
673
710
|
/**
|
|
674
711
|
* Checks if a filter is a MembersFilter.
|
|
@@ -677,7 +714,7 @@ export function isCustomFilter(filter) {
|
|
|
677
714
|
* @internal
|
|
678
715
|
*/
|
|
679
716
|
export function isMembersFilter(filter) {
|
|
680
|
-
return
|
|
717
|
+
return filter && filter.__serializable === 'MembersFilter';
|
|
681
718
|
}
|
|
682
719
|
/**
|
|
683
720
|
* Checks if a filter is a NumericFilter.
|
|
@@ -686,7 +723,7 @@ export function isMembersFilter(filter) {
|
|
|
686
723
|
* @internal
|
|
687
724
|
*/
|
|
688
725
|
export function isNumericFilter(filter) {
|
|
689
|
-
return
|
|
726
|
+
return filter && filter.__serializable === 'NumericFilter';
|
|
690
727
|
}
|
|
691
728
|
/**
|
|
692
729
|
* Checks if a filter is a TextFilter.
|
|
@@ -695,7 +732,7 @@ export function isNumericFilter(filter) {
|
|
|
695
732
|
* @internal
|
|
696
733
|
*/
|
|
697
734
|
export function isRankingFilter(filter) {
|
|
698
|
-
return
|
|
735
|
+
return filter && filter.__serializable === 'RankingFilter';
|
|
699
736
|
}
|
|
700
737
|
/**
|
|
701
738
|
* Checks if a filter is a MeasureFilter.
|
|
@@ -704,7 +741,7 @@ export function isRankingFilter(filter) {
|
|
|
704
741
|
* @internal
|
|
705
742
|
*/
|
|
706
743
|
export function isMeasureFilter(filter) {
|
|
707
|
-
return
|
|
744
|
+
return filter && filter.__serializable === 'MeasureFilter';
|
|
708
745
|
}
|
|
709
746
|
/**
|
|
710
747
|
* Checks if a filter is a ExcludeFilter.
|
|
@@ -713,7 +750,7 @@ export function isMeasureFilter(filter) {
|
|
|
713
750
|
* @internal
|
|
714
751
|
*/
|
|
715
752
|
export function isExcludeFilter(filter) {
|
|
716
|
-
return
|
|
753
|
+
return filter && filter.__serializable === 'ExcludeFilter';
|
|
717
754
|
}
|
|
718
755
|
/**
|
|
719
756
|
* Checks if a filter is a LogicalAttributeFilter.
|
|
@@ -722,7 +759,7 @@ export function isExcludeFilter(filter) {
|
|
|
722
759
|
* @internal
|
|
723
760
|
*/
|
|
724
761
|
export function isLogicalAttributeFilter(filter) {
|
|
725
|
-
return
|
|
762
|
+
return filter && filter.__serializable === 'LogicalAttributeFilter';
|
|
726
763
|
}
|
|
727
764
|
/**
|
|
728
765
|
* Checks if a filter is a CascadingFilter.
|
|
@@ -731,7 +768,7 @@ export function isLogicalAttributeFilter(filter) {
|
|
|
731
768
|
* @internal
|
|
732
769
|
*/
|
|
733
770
|
export function isCascadingFilter(filter) {
|
|
734
|
-
return
|
|
771
|
+
return filter && filter.__serializable === 'CascadingFilter';
|
|
735
772
|
}
|
|
736
773
|
/**
|
|
737
774
|
* Checks if a filter is a RelativeDateFilter.
|
|
@@ -740,7 +777,7 @@ export function isCascadingFilter(filter) {
|
|
|
740
777
|
* @internal
|
|
741
778
|
*/
|
|
742
779
|
export function isRelativeDateFilter(filter) {
|
|
743
|
-
return
|
|
780
|
+
return filter && filter.__serializable === 'RelativeDateFilter';
|
|
744
781
|
}
|
|
745
782
|
/**
|
|
746
783
|
* Checks if a filter is a TextFilter.
|
|
@@ -749,7 +786,7 @@ export function isRelativeDateFilter(filter) {
|
|
|
749
786
|
* @internal
|
|
750
787
|
*/
|
|
751
788
|
export function isTextFilter(filter) {
|
|
752
|
-
return
|
|
789
|
+
return filter && filter.__serializable === 'TextFilter';
|
|
753
790
|
}
|
|
754
791
|
/**
|
|
755
792
|
* Checks if a filter is a DateRangeFilter.
|
|
@@ -758,7 +795,7 @@ export function isTextFilter(filter) {
|
|
|
758
795
|
* @internal
|
|
759
796
|
*/
|
|
760
797
|
export function isDateRangeFilter(filter) {
|
|
761
|
-
return
|
|
798
|
+
return filter && filter.__serializable === 'DateRangeFilter';
|
|
762
799
|
}
|
|
763
800
|
/**
|
|
764
801
|
* @param json - Filter JSON representation
|
|
@@ -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
|
*
|
|
@@ -20,6 +20,10 @@ export class JaqlElement extends DimensionalElement {
|
|
|
20
20
|
constructor(item, type) {
|
|
21
21
|
var _a;
|
|
22
22
|
super((_a = item.jaql.title) !== null && _a !== void 0 ? _a : '', type);
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
this.__serializable = 'JaqlElement';
|
|
23
27
|
this.expression = (item.jaql.dim || item.jaql.formula);
|
|
24
28
|
this.metadataItem = item;
|
|
25
29
|
if (item.jaql.agg) {
|
|
@@ -53,7 +57,6 @@ export class JaqlElement extends DimensionalElement {
|
|
|
53
57
|
*/
|
|
54
58
|
serialize() {
|
|
55
59
|
const result = super.serialize();
|
|
56
|
-
result.__serializable = 'JaqlElement';
|
|
57
60
|
result.metadataItem = this.metadataItem;
|
|
58
61
|
result.type = this.type;
|
|
59
62
|
return result;
|
|
@@ -64,6 +67,12 @@ const toMetadataType = {
|
|
|
64
67
|
numeric: MetadataTypes.NumericAttribute,
|
|
65
68
|
datetime: MetadataTypes.DateLevel,
|
|
66
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export const isJaqlElement = (v) => {
|
|
74
|
+
return v && v.__serializable === 'JaqlElement';
|
|
75
|
+
};
|
|
67
76
|
/**
|
|
68
77
|
* Create a JaqlElement from a MetadataItem
|
|
69
78
|
*
|
|
@@ -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
|
-
* @
|
|
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;
|