@gooddata/sdk-ui-dashboard 11.51.0-alpha.3 → 11.51.0-alpha.4
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/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFormState.js +1 -1
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +1 -1
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +2 -1
- package/esm/presentation/automations/shared/automationFilters/utils.d.ts +1 -32
- package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/utils.js +2 -177
- package/esm/presentation/automations/shared/filters/conversions.d.ts +36 -0
- package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -0
- package/esm/presentation/automations/shared/filters/conversions.js +242 -0
- package/esm/presentation/automations/shared/filters/index.d.ts +2 -0
- package/esm/presentation/automations/shared/filters/index.d.ts.map +1 -0
- package/esm/presentation/automations/shared/filters/index.js +3 -0
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js +2 -2
- package/package.json +21 -21
- package/styles/css/filterBar.css +1 -0
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +1 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/filterBar.scss +7 -0
- package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts +0 -3
- package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/utils/filters.js +0 -5
- package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts +0 -4
- package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts.map +0 -1
- package/esm/presentation/automations/shared/utils/filterContextUtils.js +0 -67
|
@@ -10,6 +10,13 @@ $attribute-filter-drag-handle-left: 10px;
|
|
|
10
10
|
|
|
11
11
|
.dash-filters-wrapper {
|
|
12
12
|
position: relative;
|
|
13
|
+
// The ".show-all" row below is in the flow, so it adds a full-width band to this wrapper that
|
|
14
|
+
// only the centred button paints on. The wrapper sits in the sticky/fixed dashboard header, so
|
|
15
|
+
// without a background of its own that band is see-through and the dashboard content scrolling
|
|
16
|
+
// underneath shows through either side of the button (EB-872). Paint the content background
|
|
17
|
+
// here rather than on ".show-all": as the parent, it lands *below* the filter rows' bottom
|
|
18
|
+
// border in paint order, so the border still shows through.
|
|
19
|
+
background-color: variables.$gd-dashboards-content-backgroundColor;
|
|
13
20
|
|
|
14
21
|
.show-all {
|
|
15
22
|
position: relative;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { type FilterContextItem } from "@gooddata/sdk-model";
|
|
2
|
-
export declare function getAppliedDashboardFilters(selectedAutomationFilters: FilterContextItem[], dashboardHiddenFilters: FilterContextItem[], storeFilters?: boolean): FilterContextItem[] | undefined;
|
|
3
|
-
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/filters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,wBAAgB,0BAA0B,CACtC,yBAAyB,EAAE,iBAAiB,EAAE,EAC9C,sBAAsB,EAAE,iBAAiB,EAAE,EAC3C,YAAY,CAAC,EAAE,OAAO,mCAOzB"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { getAppliedDashboardFilters as getAppliedDashboardFiltersFromAutomationFilters } from "../../shared/automationFilters/utils.js";
|
|
3
|
-
export function getAppliedDashboardFilters(selectedAutomationFilters, dashboardHiddenFilters, storeFilters) {
|
|
4
|
-
return getAppliedDashboardFiltersFromAutomationFilters(selectedAutomationFilters, dashboardHiddenFilters, storeFilters);
|
|
5
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type FilterContextItem } from "@gooddata/sdk-model";
|
|
2
|
-
import { type IDashboardFilter } from "../../../../types.js";
|
|
3
|
-
export declare function dashboardFilterToFilterContextItem(filter: IDashboardFilter, keepDatasets: boolean): FilterContextItem | undefined;
|
|
4
|
-
//# sourceMappingURL=filterContextUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filterContextUtils.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/utils/filterContextUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,KAAK,iBAAiB,EAmBzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,OAAO,GACtB,iBAAiB,GAAG,SAAS,CA8E/B"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// (C) 2021-2026 GoodData Corporation
|
|
2
|
-
// Derived from _staging/dashboard/dashboardFilterContext.ts
|
|
3
|
-
import { NotSupported } from "@gooddata/sdk-backend-spi";
|
|
4
|
-
import { filterAttributeElements, filterLocalIdentifier, filterObjRef, isAbsoluteDateFilter, isAllTimeDateFilter, isArbitraryAttributeFilter, isAttributeFilterWithSelection, isMatchAttributeFilter, isMeasureValueFilter, isNegativeAttributeFilter, isObjRef, isRelativeBoundedDateFilter, isRelativeDateFilter, measureValueFilterConditions, measureValueFilterMeasure, newAbsoluteDashboardDateFilter, newAllTimeDashboardDateFilter, newRelativeDashboardDateFilter, } from "@gooddata/sdk-model";
|
|
5
|
-
export function dashboardFilterToFilterContextItem(filter, keepDatasets) {
|
|
6
|
-
if (isAttributeFilterWithSelection(filter)) {
|
|
7
|
-
return {
|
|
8
|
-
attributeFilter: {
|
|
9
|
-
negativeSelection: isNegativeAttributeFilter(filter),
|
|
10
|
-
displayForm: filterObjRef(filter),
|
|
11
|
-
attributeElements: filterAttributeElements(filter),
|
|
12
|
-
selectionMode: "multi",
|
|
13
|
-
localIdentifier: filterLocalIdentifier(filter),
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
else if (isArbitraryAttributeFilter(filter)) {
|
|
18
|
-
return {
|
|
19
|
-
arbitraryAttributeFilter: {
|
|
20
|
-
displayForm: filterObjRef(filter),
|
|
21
|
-
values: filter.arbitraryAttributeFilter.values,
|
|
22
|
-
negativeSelection: filter.arbitraryAttributeFilter.negativeSelection ?? false,
|
|
23
|
-
localIdentifier: filterLocalIdentifier(filter),
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else if (isMatchAttributeFilter(filter)) {
|
|
28
|
-
return {
|
|
29
|
-
matchAttributeFilter: {
|
|
30
|
-
displayForm: filterObjRef(filter),
|
|
31
|
-
operator: filter.matchAttributeFilter.operator,
|
|
32
|
-
literal: filter.matchAttributeFilter.literal,
|
|
33
|
-
caseSensitive: filter.matchAttributeFilter.caseSensitive,
|
|
34
|
-
negativeSelection: filter.matchAttributeFilter.negativeSelection,
|
|
35
|
-
localIdentifier: filterLocalIdentifier(filter),
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
else if (isAbsoluteDateFilter(filter)) {
|
|
40
|
-
return newAbsoluteDashboardDateFilter(filter.absoluteDateFilter.from, filter.absoluteDateFilter.to, keepDatasets ? filter.absoluteDateFilter.dataSet : undefined, filter.absoluteDateFilter.localIdentifier, filter.absoluteDateFilter.emptyValueHandling);
|
|
41
|
-
}
|
|
42
|
-
else if (isAllTimeDateFilter(filter)) {
|
|
43
|
-
return newAllTimeDashboardDateFilter(keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, filter.relativeDateFilter.emptyValueHandling);
|
|
44
|
-
}
|
|
45
|
-
else if (isRelativeDateFilter(filter)) {
|
|
46
|
-
return newRelativeDashboardDateFilter(filter.relativeDateFilter.granularity, filter.relativeDateFilter.from, filter.relativeDateFilter.to, keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, isRelativeBoundedDateFilter(filter) ? filter.relativeDateFilter.boundedFilter : undefined, filter.relativeDateFilter.emptyValueHandling);
|
|
47
|
-
}
|
|
48
|
-
else if (isMeasureValueFilter(filter)) {
|
|
49
|
-
const measure = measureValueFilterMeasure(filter);
|
|
50
|
-
// Dashboard MVFs always reference the measure by ObjRef. Insight MVFs use LocalIdRef
|
|
51
|
-
// (bucket localId) and have no honest representation in the dashboard filter context —
|
|
52
|
-
// they reach this converter only because automation execution filters mix dashboard and
|
|
53
|
-
// insight filters. Caller is responsible for dropping these undefined entries.
|
|
54
|
-
if (!isObjRef(measure)) {
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
const conditions = measureValueFilterConditions(filter);
|
|
58
|
-
return {
|
|
59
|
-
dashboardMeasureValueFilter: {
|
|
60
|
-
measure,
|
|
61
|
-
localIdentifier: filter.measureValueFilter.localIdentifier ?? `mvf:${JSON.stringify(measure)}`,
|
|
62
|
-
...(conditions ? { conditions } : {}),
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
throw new NotSupported(`Unsupported filter type! Please provide valid dashboard filter. Filter: ${JSON.stringify(filter)}`);
|
|
67
|
-
}
|