@sisense/sdk-data 2.11.0 → 2.13.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.js +1 -1
- package/dist/cjs/dimensional-model/base.js +1 -0
- package/dist/cjs/dimensional-model/data-model.js +1 -0
- package/dist/cjs/dimensional-model/filters/factory.d.ts +140 -0
- package/dist/cjs/dimensional-model/filters/factory.js +162 -15
- package/dist/cjs/dimensional-model/filters/filter-relations.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/filter-relations.js +31 -6
- package/dist/cjs/dimensional-model/filters/filters.d.ts +35 -1
- package/dist/cjs/dimensional-model/filters/filters.js +68 -10
- package/dist/cjs/dimensional-model/filters/helpers.d.ts +1 -1
- package/dist/cjs/dimensional-model/filters/helpers.js +8 -9
- package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +4 -0
- package/dist/cjs/dimensional-model/measures/factory.js +1 -0
- package/dist/cjs/dimensional-model/measures/measures.js +1 -1
- package/dist/cjs/dimensional-model/types.d.ts +4 -0
- package/dist/cjs/dimensional-model/types.js +24 -5
- package/dist/cjs/utils.js +1 -1
- package/dist/dimensional-model/base.js +1 -0
- package/dist/dimensional-model/data-model.js +1 -0
- package/dist/dimensional-model/filters/factory.d.ts +140 -0
- package/dist/dimensional-model/filters/factory.js +161 -14
- package/dist/dimensional-model/filters/filter-relations.d.ts +1 -1
- package/dist/dimensional-model/filters/filter-relations.js +3 -1
- package/dist/dimensional-model/filters/filters.d.ts +35 -1
- package/dist/dimensional-model/filters/filters.js +65 -9
- package/dist/dimensional-model/filters/helpers.d.ts +1 -1
- package/dist/dimensional-model/filters/helpers.js +1 -2
- package/dist/dimensional-model/filters/utils/condition-filter-util.js +4 -0
- package/dist/dimensional-model/measures/factory.js +1 -0
- package/dist/dimensional-model/types.d.ts +4 -0
- package/dist/dimensional-model/types.js +24 -5
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
- package/dist/utils.js +2 -2
- package/package.json +3 -3
|
@@ -77,6 +77,7 @@ export const FilterTypes = {
|
|
|
77
77
|
exclude: 'exclude',
|
|
78
78
|
measure: 'measure',
|
|
79
79
|
ranking: 'ranking',
|
|
80
|
+
measureRanking: 'measure-ranking',
|
|
80
81
|
text: 'text',
|
|
81
82
|
numeric: 'numeric',
|
|
82
83
|
dateRange: 'dateRange',
|
|
@@ -517,6 +518,59 @@ export class RankingFilter extends AbstractFilter {
|
|
|
517
518
|
return result;
|
|
518
519
|
}
|
|
519
520
|
}
|
|
521
|
+
/**
|
|
522
|
+
* @internal
|
|
523
|
+
*/
|
|
524
|
+
export class MeasureRankingFilter extends AbstractFilter {
|
|
525
|
+
constructor(measure, operator, count, config, composeCode) {
|
|
526
|
+
super(measure.attribute, FilterTypes.measureRanking, config, composeCode);
|
|
527
|
+
/**
|
|
528
|
+
* @internal
|
|
529
|
+
*/
|
|
530
|
+
this.__serializable = 'MeasureRankingFilter';
|
|
531
|
+
this.count = count;
|
|
532
|
+
this.operator = operator;
|
|
533
|
+
this.measure = measure;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* gets the element's ID
|
|
537
|
+
*/
|
|
538
|
+
get id() {
|
|
539
|
+
return `${this.operator}_${this.count}_measure_${this.measure.id}`;
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Gets a serializable representation of the element
|
|
543
|
+
*/
|
|
544
|
+
serialize() {
|
|
545
|
+
const result = super.serialize();
|
|
546
|
+
result.measure = this.measure.serialize();
|
|
547
|
+
result.count = this.count;
|
|
548
|
+
result.operator = this.operator;
|
|
549
|
+
return result;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Gets JAQL representing this Filter instance
|
|
553
|
+
*/
|
|
554
|
+
filterJaql() {
|
|
555
|
+
const result = {};
|
|
556
|
+
result[this.operator] = this.count;
|
|
557
|
+
return result;
|
|
558
|
+
}
|
|
559
|
+
jaql(nested) {
|
|
560
|
+
if (this.config.disabled) {
|
|
561
|
+
return AbstractFilter.disabledJaql(nested);
|
|
562
|
+
}
|
|
563
|
+
const result = super.jaql(nested);
|
|
564
|
+
if (isDimensionalBaseMeasure(this.measure)) {
|
|
565
|
+
Object.entries(this.measure.jaql().jaql).forEach(([key, value]) => {
|
|
566
|
+
result.jaql[key] = value;
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
// Add type: 'measure' for measure-based filters
|
|
570
|
+
result.jaql.type = 'measure';
|
|
571
|
+
return result;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
520
574
|
/**
|
|
521
575
|
* @internal
|
|
522
576
|
*/
|
|
@@ -734,6 +788,15 @@ export function isNumericFilter(filter) {
|
|
|
734
788
|
export function isRankingFilter(filter) {
|
|
735
789
|
return filter && filter.__serializable === 'RankingFilter';
|
|
736
790
|
}
|
|
791
|
+
/**
|
|
792
|
+
* Checks if a filter is a MeasureRankingFilter.
|
|
793
|
+
*
|
|
794
|
+
* @param filter - The filter to check.
|
|
795
|
+
* @internal
|
|
796
|
+
*/
|
|
797
|
+
export function isMeasureRankingFilter(filter) {
|
|
798
|
+
return filter && filter.__serializable === 'MeasureRankingFilter';
|
|
799
|
+
}
|
|
737
800
|
/**
|
|
738
801
|
* Checks if a filter is a MeasureFilter.
|
|
739
802
|
*
|
|
@@ -805,31 +868,24 @@ export function createFilter(json) {
|
|
|
805
868
|
switch (json.filterType) {
|
|
806
869
|
case FilterTypes.logicalAttribute:
|
|
807
870
|
return new LogicalAttributeFilter(json.filters.map((f) => createFilter(f)), json.operator);
|
|
808
|
-
break;
|
|
809
871
|
case FilterTypes.members:
|
|
810
872
|
return new MembersFilter(create(json.attribute), json.members);
|
|
811
|
-
break;
|
|
812
873
|
case FilterTypes.exclude:
|
|
813
874
|
return new ExcludeFilter(createFilter(json.filter), json.input && createFilter(json.input));
|
|
814
|
-
break;
|
|
815
875
|
case FilterTypes.measure:
|
|
816
876
|
return new MeasureFilter(create(json.attribute), create(json.measure), json.operatorA, json.valueA, json.operatorB, json.valueB);
|
|
817
|
-
break;
|
|
818
877
|
case FilterTypes.ranking:
|
|
819
878
|
return new RankingFilter(create(json.attribute), create(json.measure), json.operator, json.count);
|
|
820
|
-
|
|
879
|
+
case FilterTypes.measureRanking:
|
|
880
|
+
return new MeasureRankingFilter(create(json.measure), json.operator, json.count);
|
|
821
881
|
case FilterTypes.numeric:
|
|
822
882
|
return new NumericFilter(create(json.attribute), json.operatorA, json.valueA, json.operatorB, json.valueB);
|
|
823
|
-
break;
|
|
824
883
|
case FilterTypes.text:
|
|
825
884
|
return new TextFilter(create(json.attribute), json.operatorA, json.valueA);
|
|
826
|
-
break;
|
|
827
885
|
case FilterTypes.relativeDate:
|
|
828
886
|
return new RelativeDateFilter(create(json.attribute), json.offset, json.count, json.operator, json.anchor);
|
|
829
|
-
break;
|
|
830
887
|
case FilterTypes.dateRange:
|
|
831
888
|
return new DateRangeFilter(create(json.attribute), json.valueA, json.valueB);
|
|
832
|
-
break;
|
|
833
889
|
}
|
|
834
890
|
throw new TranslatableError('errors.filter.unsupportedType', {
|
|
835
891
|
filterType: json.filterType,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import omit from 'lodash-es/omit.js';
|
|
2
|
-
import { isFilterRelations } from '
|
|
3
|
-
import { calculateNewRelations, combineFiltersAndRelations, getFiltersArray, getRelationsWithReplacedFilter, splitFiltersAndRelations, } from './filter-relations.js';
|
|
2
|
+
import { calculateNewRelations, combineFiltersAndRelations, getFiltersArray, getRelationsWithReplacedFilter, isFilterRelations, splitFiltersAndRelations, } from './filter-relations.js';
|
|
4
3
|
/**
|
|
5
4
|
* Returns a function that adds a filter to existing filters or filter relations.
|
|
6
5
|
*
|
|
@@ -181,6 +181,10 @@ export const createMeasureFilterFromConditionFilterJaql = (measure, conditionFil
|
|
|
181
181
|
return filterFactory.measureBetween(measure, conditionFilterJaql.from, conditionFilterJaql.to, { guid });
|
|
182
182
|
case ConditionFilterType.IS_NOT_BETWEEN:
|
|
183
183
|
return filterFactory.exclude(filterFactory.measureBetween(measure, (_a = conditionFilterJaql.exclude) === null || _a === void 0 ? void 0 : _a.from, (_b = conditionFilterJaql.exclude) === null || _b === void 0 ? void 0 : _b.to, { guid }), undefined, { guid });
|
|
184
|
+
case ConditionFilterType.TOP:
|
|
185
|
+
return filterFactory.measureTopRanking(measure, conditionFilterJaql[ConditionFilterType.TOP], { guid });
|
|
186
|
+
case ConditionFilterType.BOTTOM:
|
|
187
|
+
return filterFactory.measureBottomRanking(measure, conditionFilterJaql[ConditionFilterType.BOTTOM], { guid });
|
|
184
188
|
}
|
|
185
189
|
throw new TranslatableError('errors.filter.unsupportedConditionFilter', {
|
|
186
190
|
filter: JSON.stringify(conditionFilterJaql),
|
|
@@ -157,6 +157,10 @@ export declare const DateLevels: {
|
|
|
157
157
|
readonly AggMinutesRoundTo1: "AggMinutesRoundTo1";
|
|
158
158
|
/** @internal */
|
|
159
159
|
readonly all: string[];
|
|
160
|
+
/** @internal */
|
|
161
|
+
readonly dateOnly: string[];
|
|
162
|
+
/** @internal */
|
|
163
|
+
readonly timeOnly: string[];
|
|
160
164
|
};
|
|
161
165
|
/** @internal */
|
|
162
166
|
export declare type DateLevel = Exclude<(typeof DateLevels)[keyof typeof DateLevels], typeof DateLevels.all>;
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
4
|
-
/*
|
|
5
|
-
* Types
|
|
6
|
-
*/
|
|
7
2
|
/**
|
|
8
3
|
* Different aggregation types
|
|
9
4
|
*/
|
|
@@ -286,6 +281,30 @@ export const DateLevels = {
|
|
|
286
281
|
DateLevels.AggMinutesRoundTo1,
|
|
287
282
|
];
|
|
288
283
|
},
|
|
284
|
+
/** @internal */
|
|
285
|
+
get dateOnly() {
|
|
286
|
+
return [
|
|
287
|
+
DateLevels.Years,
|
|
288
|
+
DateLevels.Quarters,
|
|
289
|
+
DateLevels.Months,
|
|
290
|
+
DateLevels.Weeks,
|
|
291
|
+
DateLevels.Days,
|
|
292
|
+
];
|
|
293
|
+
},
|
|
294
|
+
/** @internal */
|
|
295
|
+
get timeOnly() {
|
|
296
|
+
return [
|
|
297
|
+
DateLevels.Hours,
|
|
298
|
+
DateLevels.MinutesRoundTo30,
|
|
299
|
+
DateLevels.MinutesRoundTo15,
|
|
300
|
+
DateLevels.Minutes,
|
|
301
|
+
DateLevels.Seconds,
|
|
302
|
+
DateLevels.AggHours,
|
|
303
|
+
DateLevels.AggMinutesRoundTo30,
|
|
304
|
+
DateLevels.AggMinutesRoundTo15,
|
|
305
|
+
DateLevels.AggMinutesRoundTo1,
|
|
306
|
+
];
|
|
307
|
+
},
|
|
289
308
|
};
|
|
290
309
|
/** @internal */
|
|
291
310
|
export var DataType;
|