@gooddata/sdk-model 10.28.0-alpha.92 → 10.28.0-alpha.94
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.
@@ -26,5 +26,5 @@ import { IFilter, INullableFilter } from "./index.js";
|
|
26
26
|
* @param addedFilters - new filters to add on top of original
|
27
27
|
* @internal
|
28
28
|
*/
|
29
|
-
export declare function mergeFilters(originalFilters: IFilter[], addedFilters: INullableFilter[] | undefined): IFilter[];
|
29
|
+
export declare function mergeFilters(originalFilters: IFilter[], addedFilters: INullableFilter[] | undefined, commonDateFilterId?: string): IFilter[];
|
30
30
|
//# sourceMappingURL=filterMerge.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterMerge.d.ts","sourceRoot":"","sources":["../../../src/execution/filter/filterMerge.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,OAAO,EASP,eAAe,
|
1
|
+
{"version":3,"file":"filterMerge.d.ts","sourceRoot":"","sources":["../../../src/execution/filter/filterMerge.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,OAAO,EASP,eAAe,EAElB,MAAM,YAAY,CAAC;AAsCpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CACxB,eAAe,EAAE,OAAO,EAAE,EAC1B,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,EAC3C,kBAAkB,CAAC,EAAE,MAAM,GAC5B,OAAO,EAAE,CA6BX"}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
// (C) 2019-
|
1
|
+
// (C) 2019-2025 GoodData Corporation
|
2
2
|
import { objRefToString } from "../../objRef/index.js";
|
3
|
-
import { isAttributeFilter, isDateFilter, filterObjRef, isAllTimeDateFilter, isMeasureValueFilter, isRankingFilter, } from "./index.js";
|
3
|
+
import { isAttributeFilter, isDateFilter, filterObjRef, isAllTimeDateFilter, isMeasureValueFilter, isRankingFilter, filterLocalIdentifier, } from "./index.js";
|
4
4
|
import compact from "lodash/compact.js";
|
5
5
|
import groupBy from "lodash/groupBy.js";
|
6
6
|
import last from "lodash/last.js";
|
@@ -57,7 +57,7 @@ function separateFiltersByType(filters) {
|
|
57
57
|
* @param addedFilters - new filters to add on top of original
|
58
58
|
* @internal
|
59
59
|
*/
|
60
|
-
export function mergeFilters(originalFilters, addedFilters) {
|
60
|
+
export function mergeFilters(originalFilters, addedFilters, commonDateFilterId) {
|
61
61
|
invariant(originalFilters, "original filters must be specified");
|
62
62
|
const filtersToMerge = compact(addedFilters ?? []);
|
63
63
|
if (!filtersToMerge.length) {
|
@@ -71,14 +71,14 @@ export function mergeFilters(originalFilters, addedFilters) {
|
|
71
71
|
// concat attribute filters
|
72
72
|
const attributeFilters = [...original.attribute, ...added.attribute];
|
73
73
|
// merge date filters by date dataset qualifier
|
74
|
-
const dateFilters = mergeDateFilters(original.date, added.date);
|
74
|
+
const dateFilters = mergeDateFilters(original.date, added.date, commonDateFilterId);
|
75
75
|
// merge measure value filters by measure
|
76
76
|
const measureValueFilters = mergeMeasureValueFilters(original.measureValue, added.measureValue);
|
77
77
|
// concat ranking filters
|
78
78
|
const rankingFilters = [...original.ranking, ...added.ranking];
|
79
79
|
return [...attributeFilters, ...dateFilters, ...measureValueFilters, ...rankingFilters];
|
80
80
|
}
|
81
|
-
function mergeDateFilters(originalFilters, addedFilters) {
|
81
|
+
function mergeDateFilters(originalFilters, addedFilters, commonDateFilterId) {
|
82
82
|
const allFilters = [...originalFilters, ...addedFilters];
|
83
83
|
const grouped = groupBy(allFilters, (f) => objRefToString(filterObjRef(f)));
|
84
84
|
const mergedFilters = [];
|
@@ -86,6 +86,18 @@ function mergeDateFilters(originalFilters, addedFilters) {
|
|
86
86
|
// use the last filter for the dimension specified.
|
87
87
|
// this makes sure that the added filter wins if it is specified
|
88
88
|
const lastFilterForDimension = last(filtersForDimension);
|
89
|
+
const commonDateFilter = commonDateFilterId
|
90
|
+
? filtersForDimension.find((f) => filterLocalIdentifier(f) === commonDateFilterId)
|
91
|
+
: undefined;
|
92
|
+
const lastFilterIsCommon = commonDateFilterId
|
93
|
+
? filterLocalIdentifier(lastFilterForDimension) === commonDateFilterId
|
94
|
+
: false;
|
95
|
+
// Handle case, when there are 2 date filters with the same date dataset,
|
96
|
+
// and when one of them is common date filter.
|
97
|
+
// In this case, we want to use both filters.
|
98
|
+
if (!lastFilterIsCommon && commonDateFilter && !isAllTimeDateFilter(commonDateFilter)) {
|
99
|
+
mergedFilters.push(commonDateFilter);
|
100
|
+
}
|
89
101
|
// if the last filter is all time, clear filters for this dimension, otherwise use the last filter
|
90
102
|
if (!isAllTimeDateFilter(lastFilterForDimension)) {
|
91
103
|
mergedFilters.push(lastFilterForDimension);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterMerge.js","sourceRoot":"","sources":["../../../src/execution/filter/filterMerge.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAKH,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EAEnB,oBAAoB,EACpB,eAAe,
|
1
|
+
{"version":3,"file":"filterMerge.js","sourceRoot":"","sources":["../../../src/execution/filter/filterMerge.ts"],"names":[],"mappings":"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"}
|
package/esm/sdk-model.d.ts
CHANGED
@@ -11416,7 +11416,7 @@ export declare function measureValueFilterOperator(filter: IMeasureValueFilter):
|
|
11416
11416
|
* @param addedFilters - new filters to add on top of original
|
11417
11417
|
* @internal
|
11418
11418
|
*/
|
11419
|
-
export declare function mergeFilters(originalFilters: IFilter[], addedFilters: INullableFilter[] | undefined): IFilter[];
|
11419
|
+
export declare function mergeFilters(originalFilters: IFilter[], addedFilters: INullableFilter[] | undefined, commonDateFilterId?: string): IFilter[];
|
11420
11420
|
|
11421
11421
|
/**
|
11422
11422
|
* Type that represents any metadata object
|
package/package.json
CHANGED