@gooddata/sdk-ui-dashboard 11.37.0-alpha.1 → 11.37.0-alpha.3
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/kdaDialog/components/items/TrendItem.js +3 -1
- package/esm/kdaDialog/hooks/useDriversList.js +9 -9
- package/esm/presentation/filterBar/attributeFilter/types.d.ts +4 -1
- package/esm/presentation/filterBar/filterBar/DefaultDashboardFilterGroup.js +54 -14
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +1 -1
- package/esm/presentation/filterBar/filterBar/filterGroupUtils.js +4 -1
- package/esm/presentation/filterBar/measureValueFilter/DefaultDashboardMeasureValueFilter.js +5 -4
- package/esm/presentation/filterBar/measureValueFilter/types.d.ts +14 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +1 -1
- package/esm/sdk-ui-dashboard.d.ts +16 -0
- package/package.json +20 -20
- package/styles/css/kdaDialog.css +19 -5
- package/styles/css/kdaDialog.css.map +1 -1
- package/styles/css/main.css +19 -5
- package/styles/css/main.css.map +1 -1
- package/styles/scss/kdaDialog.scss +23 -5
package/esm/__version.d.ts
CHANGED
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.37.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.37.0-alpha.3";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
import { FormattedMessage } from "react-intl";
|
|
4
4
|
export function TrendItem({ item, onSelect, isSelected, isFocused, }) {
|
|
5
|
+
const isDisabled = !!item.isDisabled;
|
|
5
6
|
return (_jsxs("div", { className: cx("gd-kda-trend-item", {
|
|
6
7
|
"gd-kda-trend-item-selected": isSelected,
|
|
7
8
|
"gd-kda-trend-item-focused": isFocused,
|
|
8
|
-
|
|
9
|
+
"gd-kda-trend-item-disabled": isDisabled,
|
|
10
|
+
}), onClick: isDisabled ? undefined : onSelect, children: [
|
|
9
11
|
_jsx("div", { className: cx("gd-kda-trend-item-text"), children: item.stringTitle }), _jsx("div", { className: cx("gd-kda-trend-item-drivers"), children: _jsx(FormattedMessage, { id: "kdaDialog.dialog.keyDrives.drivers", values: {
|
|
10
12
|
count: item.data.driver,
|
|
11
13
|
} }) })
|
|
@@ -9,6 +9,15 @@ export function useSignificantDrives() {
|
|
|
9
9
|
const { trendUp, trendDown } = useTrendDrivers();
|
|
10
10
|
const trends = useMemo(() => {
|
|
11
11
|
const list = [
|
|
12
|
+
{
|
|
13
|
+
type: "interactive",
|
|
14
|
+
id: "all",
|
|
15
|
+
stringTitle: intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.button.trendAll" }),
|
|
16
|
+
data: {
|
|
17
|
+
trend: "all",
|
|
18
|
+
driver: trendUp.length + trendDown.length,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
12
21
|
{
|
|
13
22
|
type: "interactive",
|
|
14
23
|
id: "up",
|
|
@@ -29,15 +38,6 @@ export function useSignificantDrives() {
|
|
|
29
38
|
},
|
|
30
39
|
isDisabled: trendDown.length === 0,
|
|
31
40
|
},
|
|
32
|
-
{
|
|
33
|
-
type: "interactive",
|
|
34
|
-
id: "all",
|
|
35
|
-
stringTitle: intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.button.trendAll" }),
|
|
36
|
-
data: {
|
|
37
|
-
trend: "all",
|
|
38
|
-
driver: trendUp.length + trendDown.length,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
41
|
];
|
|
42
42
|
return list;
|
|
43
43
|
}, [trendUp, trendDown, intl]);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type ComponentType, type ReactNode, type RefObject } from "react";
|
|
2
|
-
import { type DashboardAttributeFilterItem, type ICatalogAttribute, type ICatalogDateDataset, type ICatalogMeasure, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type DashboardAttributeFilterItem, type ICatalogAttribute, type ICatalogDateDataset, type ICatalogMeasure, type IDashboardMeasureValueFilter, type MeasureValueFilterCondition, type ObjRef } from "@gooddata/sdk-model";
|
|
3
3
|
import type { IAttributeFilterButtonProps } from "@gooddata/sdk-ui-filters";
|
|
4
4
|
import { type IDropdownListNoDataRenderProps, type OverlayPositionType } from "@gooddata/sdk-ui-kit";
|
|
5
5
|
import { type IDashboardAttributeFilterParentItem } from "../../../model/types/attributeFilterTypes.js";
|
|
6
6
|
import { type IDashboardDependentDateFilter } from "../../../model/types/dateFilterTypes.js";
|
|
7
7
|
import type { IFilterBarFilterGroupItem } from "../filterBar/useFiltersWithAddedPlaceholder.js";
|
|
8
8
|
import { type DashboardFilterSelectionType } from "../filterSelectionTypes.js";
|
|
9
|
+
import type { CustomDashboardMeasureValueFilterComponent } from "../measureValueFilter/types.js";
|
|
9
10
|
import { type IAddAttributeFilterButtonProps } from "./addAttributeFilter/AddAttributeFilterButton.js";
|
|
10
11
|
/**
|
|
11
12
|
* @public
|
|
@@ -112,7 +113,9 @@ export type CustomDashboardAttributeFilterComponent = ComponentType<IDashboardAt
|
|
|
112
113
|
export interface IDashboardFilterGroupProps {
|
|
113
114
|
groupItem: IFilterBarFilterGroupItem;
|
|
114
115
|
onAttributeFilterChanged: (filter: DashboardAttributeFilterItem) => void;
|
|
116
|
+
onMeasureValueFilterChanged?: (filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, isWorkingSelectionChange?: boolean) => void;
|
|
115
117
|
DashboardAttributeFilterComponent?: CustomDashboardAttributeFilterComponent;
|
|
118
|
+
DashboardMeasureValueFilterComponent?: CustomDashboardMeasureValueFilterComponent;
|
|
116
119
|
}
|
|
117
120
|
/**
|
|
118
121
|
* @public
|
|
@@ -3,45 +3,65 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { isEmpty } from "lodash-es";
|
|
5
5
|
import { useIntl } from "react-intl";
|
|
6
|
-
import { DashboardAttributeFilterConfigModeValues, dashboardAttributeFilterItemFilterElementsBy, dashboardAttributeFilterItemFilterElementsByDate, dashboardAttributeFilterItemLocalIdentifier, dashboardFilterLocalIdentifier, getSelectedElementsCount, isDashboardArbitraryAttributeFilter, isDashboardAttributeFilter, isDashboardMatchAttributeFilter, } from "@gooddata/sdk-model";
|
|
6
|
+
import { DashboardAttributeFilterConfigModeValues, dashboardAttributeFilterItemFilterElementsBy, dashboardAttributeFilterItemFilterElementsByDate, dashboardAttributeFilterItemLocalIdentifier, dashboardFilterLocalIdentifier, getSelectedElementsCount, isAllDashboardMeasureValueFilter, isDashboardArbitraryAttributeFilter, isDashboardAttributeFilter, isDashboardMatchAttributeFilter, isDashboardMeasureValueFilter, } from "@gooddata/sdk-model";
|
|
7
7
|
import { AttributeFilterDependencyTooltip, FilterGroup, useDeepEqualRefStablizer, } from "@gooddata/sdk-ui-filters";
|
|
8
8
|
import { convertDashboardAttributeFilterElementsUrisToValues } from "../../../_staging/dashboard/legacyFilterConvertors.js";
|
|
9
9
|
import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
10
10
|
import { selectBackendCapabilities, selectSupportsElementUris, } from "../../../model/store/backendCapabilities/backendCapabilitiesSelectors.js";
|
|
11
11
|
import { selectEnableArbitraryFilterKD, selectEnableMatchFilterKD, selectIsApplyFiltersAllAtOnceEnabledAndSet, } from "../../../model/store/config/configSelectors.js";
|
|
12
12
|
import { selectAttributeFilterConfigsDisplayAsLabelMap, selectEffectiveAttributeFiltersModeMap, } from "../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
13
|
+
import { selectEffectiveMeasureValueFiltersModeMap } from "../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
|
|
14
|
+
import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
|
|
13
15
|
import { DefaultDashboardAttributeFilter } from "../attributeFilter/DefaultDashboardAttributeFilter.js";
|
|
14
|
-
import {
|
|
16
|
+
import { DefaultDashboardMeasureValueFilter } from "../measureValueFilter/DefaultDashboardMeasureValueFilter.js";
|
|
17
|
+
import { isFilterBarAttributeFilter, isFilterBarMeasureValueFilter, } from "./useFiltersWithAddedPlaceholder.js";
|
|
15
18
|
/**
|
|
16
19
|
* @alpha
|
|
17
20
|
*/
|
|
18
21
|
export function DefaultDashboardFilterGroup(props) {
|
|
19
|
-
const { groupItem, onAttributeFilterChanged, DashboardAttributeFilterComponent: CustomDashboardAttributeFilterComponent, } = props;
|
|
22
|
+
const { groupItem, onAttributeFilterChanged, onMeasureValueFilterChanged, DashboardAttributeFilterComponent: CustomDashboardAttributeFilterComponent, DashboardMeasureValueFilterComponent: CustomDashboardMeasureValueFilterComponent, } = props;
|
|
20
23
|
const intl = useIntl();
|
|
24
|
+
const { DashboardMeasureValueFilterComponentProvider } = useDashboardComponentsContext();
|
|
21
25
|
const supportElementUris = useDashboardSelector(selectSupportsElementUris);
|
|
22
26
|
const isApplyAllAtOnceEnabledAndSet = useDashboardSelector(selectIsApplyFiltersAllAtOnceEnabledAndSet);
|
|
23
27
|
const capabilities = useDashboardSelector(selectBackendCapabilities);
|
|
24
28
|
const attributeFiltersDisplayAsLabelMap = useDashboardSelector(selectAttributeFilterConfigsDisplayAsLabelMap);
|
|
25
29
|
const attributeFiltersModeMap = useDashboardSelector(selectEffectiveAttributeFiltersModeMap);
|
|
30
|
+
const measureValueFiltersModeMap = useDashboardSelector(selectEffectiveMeasureValueFiltersModeMap);
|
|
26
31
|
const enableArbitraryFilter = useDashboardSelector(selectEnableArbitraryFilterKD);
|
|
27
32
|
const enableMatchFilter = useDashboardSelector(selectEnableMatchFilterKD);
|
|
28
33
|
const getFilterIdentifier = useCallback((filter) => {
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
if (isFilterBarAttributeFilter(filter)) {
|
|
35
|
+
return dashboardAttributeFilterItemLocalIdentifier(filter.filter);
|
|
36
|
+
}
|
|
37
|
+
return dashboardFilterLocalIdentifier(filter.filter);
|
|
31
38
|
}, []);
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
-
return
|
|
39
|
+
const isFilterActive = useCallback((filter) => {
|
|
40
|
+
if (isFilterBarMeasureValueFilter(filter)) {
|
|
41
|
+
return !isAllDashboardMeasureValueFilter(filter.filter);
|
|
42
|
+
}
|
|
43
|
+
const dashboardFilter = filter.filter;
|
|
44
|
+
if (isDashboardAttributeFilter(dashboardFilter)) {
|
|
45
|
+
return getSelectedElementsCount(dashboardFilter) > 0;
|
|
35
46
|
}
|
|
36
|
-
if (isDashboardArbitraryAttributeFilter(
|
|
37
|
-
return
|
|
47
|
+
if (isDashboardArbitraryAttributeFilter(dashboardFilter)) {
|
|
48
|
+
return dashboardFilter.arbitraryAttributeFilter.values.length > 0;
|
|
38
49
|
}
|
|
39
|
-
if (isDashboardMatchAttributeFilter(
|
|
40
|
-
return
|
|
50
|
+
if (isDashboardMatchAttributeFilter(dashboardFilter)) {
|
|
51
|
+
return dashboardFilter.matchAttributeFilter.literal.length > 0;
|
|
41
52
|
}
|
|
42
53
|
return true;
|
|
43
54
|
}, []);
|
|
44
|
-
const renderFilter = useCallback((filter, AttributeFilterComponent) => {
|
|
55
|
+
const renderFilter = useCallback((filter, AttributeFilterComponent, MeasureValueFilterComponent) => {
|
|
56
|
+
if (isFilterBarMeasureValueFilter(filter)) {
|
|
57
|
+
const localId = dashboardFilterLocalIdentifier(filter.filter);
|
|
58
|
+
const measureValueFilterMode = measureValueFiltersModeMap.get(localId) ??
|
|
59
|
+
DashboardAttributeFilterConfigModeValues.ACTIVE;
|
|
60
|
+
const DashboardMeasureValueFilterComponent = CustomDashboardMeasureValueFilterComponent ??
|
|
61
|
+
DashboardMeasureValueFilterComponentProvider(filter.filter) ??
|
|
62
|
+
DefaultDashboardMeasureValueFilter;
|
|
63
|
+
return (_jsx(DashboardMeasureValueFilterComponent, { filter: filter.filter, filterIndex: filter.filterIndex, readonly: measureValueFilterMode === DashboardAttributeFilterConfigModeValues.READONLY, onMeasureValueFilterChanged: onMeasureValueFilterChanged, MeasureValueFilterComponent: MeasureValueFilterComponent, passDropdownButton: false }));
|
|
64
|
+
}
|
|
45
65
|
const localId = dashboardAttributeFilterItemLocalIdentifier(filter.filter);
|
|
46
66
|
const displayAsLabel = attributeFiltersDisplayAsLabelMap.get(localId);
|
|
47
67
|
const attributeFilterMode = attributeFiltersModeMap.get(localId);
|
|
@@ -53,10 +73,17 @@ export function DefaultDashboardFilterGroup(props) {
|
|
|
53
73
|
attributeFiltersDisplayAsLabelMap,
|
|
54
74
|
attributeFiltersModeMap,
|
|
55
75
|
CustomDashboardAttributeFilterComponent,
|
|
76
|
+
CustomDashboardMeasureValueFilterComponent,
|
|
77
|
+
DashboardMeasureValueFilterComponentProvider,
|
|
78
|
+
measureValueFiltersModeMap,
|
|
79
|
+
onMeasureValueFilterChanged,
|
|
56
80
|
]);
|
|
57
81
|
const itemFilters = useMemo(() => {
|
|
58
82
|
return groupItem.filters
|
|
59
83
|
.map((filter) => {
|
|
84
|
+
if (isFilterBarMeasureValueFilter(filter)) {
|
|
85
|
+
return filter;
|
|
86
|
+
}
|
|
60
87
|
if (!isFilterBarAttributeFilter(filter)) {
|
|
61
88
|
return undefined;
|
|
62
89
|
}
|
|
@@ -74,6 +101,14 @@ export function DefaultDashboardFilterGroup(props) {
|
|
|
74
101
|
})
|
|
75
102
|
.filter((filter) => filter !== undefined)
|
|
76
103
|
.filter((filter) => {
|
|
104
|
+
if (isDashboardMeasureValueFilter(filter.filter)) {
|
|
105
|
+
if (!onMeasureValueFilterChanged) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const localId = dashboardFilterLocalIdentifier(filter.filter);
|
|
109
|
+
return (measureValueFiltersModeMap.get(localId) !==
|
|
110
|
+
DashboardAttributeFilterConfigModeValues.HIDDEN);
|
|
111
|
+
}
|
|
77
112
|
const localId = dashboardAttributeFilterItemLocalIdentifier(filter.filter);
|
|
78
113
|
return (attributeFiltersModeMap.get(localId) !== DashboardAttributeFilterConfigModeValues.HIDDEN);
|
|
79
114
|
})
|
|
@@ -91,11 +126,16 @@ export function DefaultDashboardFilterGroup(props) {
|
|
|
91
126
|
groupItem.filters,
|
|
92
127
|
supportElementUris,
|
|
93
128
|
attributeFiltersModeMap,
|
|
129
|
+
measureValueFiltersModeMap,
|
|
94
130
|
enableArbitraryFilter,
|
|
95
131
|
enableMatchFilter,
|
|
132
|
+
onMeasureValueFilterChanged,
|
|
96
133
|
]);
|
|
97
134
|
const filterDependenciesByLocalIdUnstable = useMemo(() => {
|
|
98
135
|
return new Map(itemFilters.map((filter) => {
|
|
136
|
+
if (isFilterBarMeasureValueFilter(filter)) {
|
|
137
|
+
return [dashboardFilterLocalIdentifier(filter.filter), false];
|
|
138
|
+
}
|
|
99
139
|
const localId = dashboardAttributeFilterItemLocalIdentifier(filter.filter);
|
|
100
140
|
// Match filter type has no parent filter dependencies by design
|
|
101
141
|
if (isDashboardMatchAttributeFilter(filter.filter)) {
|
|
@@ -125,5 +165,5 @@ export function DefaultDashboardFilterGroup(props) {
|
|
|
125
165
|
});
|
|
126
166
|
return (_jsx(AttributeFilterDependencyTooltip, { tooltipContent: filterDependencyIconTooltip, ariaLabel: filterDependencyIconAriaLabel }));
|
|
127
167
|
}, [capabilities.supportsKeepingDependentFiltersSelection, filterDependenciesByLocalId, intl]);
|
|
128
|
-
return (_jsx(FilterGroup, { title: groupItem.groupConfig.title, filters: itemFilters, getFilterIdentifier: getFilterIdentifier,
|
|
168
|
+
return (_jsx(FilterGroup, { title: groupItem.groupConfig.title, filters: itemFilters, getFilterIdentifier: getFilterIdentifier, isFilterActive: isFilterActive, renderFilter: renderFilter, getTitleExtension: getTitleExtension }));
|
|
129
169
|
}
|
|
@@ -52,7 +52,7 @@ export function DefaultFilterBarItem(props) {
|
|
|
52
52
|
return null;
|
|
53
53
|
}
|
|
54
54
|
const CustomFilterGroupComponent = DashboardFilterGroupComponentProvider?.(item.groupConfig) ?? DefaultDashboardFilterGroup;
|
|
55
|
-
return (_jsx(CustomFilterGroupComponent, { groupItem: item, onAttributeFilterChanged: onAttributeFilterChanged }));
|
|
55
|
+
return (_jsx(CustomFilterGroupComponent, { groupItem: item, onAttributeFilterChanged: onAttributeFilterChanged, onMeasureValueFilterChanged: onMeasureValueFilterChanged }));
|
|
56
56
|
}
|
|
57
57
|
if (isFilterBarAttributeFilter(item)) {
|
|
58
58
|
const { filter, filterIndex, workingFilter } = item;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021-2026 GoodData Corporation
|
|
2
|
-
import { dashboardAttributeFilterItemLocalIdentifier, isDashboardAttributeFilterItem, isDashboardDateFilter, } from "@gooddata/sdk-model";
|
|
2
|
+
import { dashboardAttributeFilterItemLocalIdentifier, dashboardFilterLocalIdentifier, isDashboardAttributeFilterItem, isDashboardDateFilter, isDashboardMeasureValueFilter, } from "@gooddata/sdk-model";
|
|
3
3
|
import { isFilterBarFilterGroupItem, isFilterBarFilterPlaceholder, } from "./useFiltersWithAddedPlaceholder.js";
|
|
4
4
|
function findGroupForFilter(item, filterGroupsConfig) {
|
|
5
5
|
return filterGroupsConfig?.groups.find((group) => group.filters.some((filter) => {
|
|
@@ -9,6 +9,9 @@ function findGroupForFilter(item, filterGroupsConfig) {
|
|
|
9
9
|
if (isDashboardDateFilter(item)) {
|
|
10
10
|
return filter.filterLocalIdentifier === item.dateFilter.localIdentifier;
|
|
11
11
|
}
|
|
12
|
+
if (isDashboardMeasureValueFilter(item)) {
|
|
13
|
+
return filter.filterLocalIdentifier === dashboardFilterLocalIdentifier(item);
|
|
14
|
+
}
|
|
12
15
|
return false;
|
|
13
16
|
}));
|
|
14
17
|
}
|
|
@@ -36,7 +36,7 @@ function MeasureValueFilterVisibilityIcon({ visibilityIcon, disabled, }) {
|
|
|
36
36
|
* @alpha
|
|
37
37
|
*/
|
|
38
38
|
export function DefaultDashboardMeasureValueFilter(props) {
|
|
39
|
-
const { filter, readonly, autoOpen, onMeasureValueFilterChanged, onMeasureValueFilterClose } = props;
|
|
39
|
+
const { filter, readonly, autoOpen, onMeasureValueFilterChanged, onMeasureValueFilterClose, MeasureValueFilterComponent: CustomMeasureValueFilterComponent, passDropdownButton = true, } = props;
|
|
40
40
|
const intl = useIntl();
|
|
41
41
|
const isEditMode = useDashboardSelector(selectIsInEditMode);
|
|
42
42
|
const isApplyAllAtOnceEnabledAndSet = useDashboardSelector(selectIsApplyFiltersAllAtOnceEnabledAndSet);
|
|
@@ -146,8 +146,8 @@ export function DefaultDashboardMeasureValueFilter(props) {
|
|
|
146
146
|
}, []);
|
|
147
147
|
const BodyComponent = isConfigurationOpen ? ConfigurationBodyComponent : undefined;
|
|
148
148
|
const DropdownButtonComponent = useMemo(() => {
|
|
149
|
-
function DashboardMeasureValueFilterDropdownButton({ isActive, buttonTitle, onClick, }) {
|
|
150
|
-
return (_jsx(UiControlButton, { title: buttonTitle, titleClassName: "s-mvf-button-title", subtitle: _jsx("span", { className: "gd-measure-value-filter-dropdown-button-selected-items__next s-mvf-button-subtitle", children: conditionLabel }), titleExtension: _jsx(MeasureValueFilterVisibilityIcon, { visibilityIcon: visibilityIcon, disabled: readonly }), isOpen: isActive, isDraggable: isEditMode, disabled: readonly, disabledTooltip: readonly ? intl.formatMessage({ id: "filters.locked.filter.tooltip" }) : undefined, onClick: onClick, className: cx("gd-mvf-dashboard-filter-button__next", "s-dashboard-mvf-button", {
|
|
149
|
+
function DashboardMeasureValueFilterDropdownButton({ isActive, buttonTitle, buttonSubtitle, buttonTitleExtension, disabled, onClick, }) {
|
|
150
|
+
return (_jsx(UiControlButton, { title: buttonTitle, titleClassName: "s-mvf-button-title", subtitle: _jsx("span", { className: "gd-measure-value-filter-dropdown-button-selected-items__next s-mvf-button-subtitle", children: buttonSubtitle ?? conditionLabel }), titleExtension: buttonTitleExtension ?? (_jsx(MeasureValueFilterVisibilityIcon, { visibilityIcon: visibilityIcon, disabled: readonly })), isOpen: isActive, isDraggable: isEditMode, disabled: disabled ?? readonly, disabledTooltip: readonly ? intl.formatMessage({ id: "filters.locked.filter.tooltip" }) : undefined, onClick: onClick, className: cx("gd-mvf-dashboard-filter-button__next", "s-dashboard-mvf-button", {
|
|
151
151
|
"gd-is-active": isActive,
|
|
152
152
|
"gd-is-draggable": isEditMode,
|
|
153
153
|
disabled: readonly,
|
|
@@ -155,5 +155,6 @@ export function DefaultDashboardMeasureValueFilter(props) {
|
|
|
155
155
|
}
|
|
156
156
|
return DashboardMeasureValueFilterDropdownButton;
|
|
157
157
|
}, [conditionLabel, intl, isEditMode, readonly, visibilityIcon]);
|
|
158
|
-
|
|
158
|
+
const MeasureValueFilterComponent = CustomMeasureValueFilterComponent ?? MeasureValueFilter;
|
|
159
|
+
return (_jsx(MeasureValueFilterComponent, { ...getSharedDashboardMvfProps(mvfData), onApply: handleApply, buttonSubtitle: conditionLabel, buttonTitleExtension: _jsx(MeasureValueFilterVisibilityIcon, { visibilityIcon: visibilityIcon, disabled: readonly }), buttonDisabled: readonly, onChange: isApplyAllAtOnceEnabledAndSet ? handleChange : undefined, withoutApply: isApplyAllAtOnceEnabledAndSet, BodyComponent: BodyComponent, DropdownActionsComponent: DropdownActionsComponent, DropdownButtonComponent: passDropdownButton ? DropdownButtonComponent : undefined, onCancel: handleClose, autoOpen: autoOpen }));
|
|
159
160
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ComponentType } from "react";
|
|
2
2
|
import { type IDashboardMeasureValueFilter, type MeasureValueFilterCondition } from "@gooddata/sdk-model";
|
|
3
|
+
import { type IMeasureValueFilterProps } from "@gooddata/sdk-ui-filters";
|
|
3
4
|
/**
|
|
4
5
|
* @alpha
|
|
5
6
|
*/
|
|
@@ -39,6 +40,19 @@ export interface IDashboardMeasureValueFilterProps {
|
|
|
39
40
|
* undefined, the active tab's state is used.
|
|
40
41
|
*/
|
|
41
42
|
tabId?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Optional custom measure value filter component to change or extend the default rendered one.
|
|
45
|
+
*
|
|
46
|
+
* @alpha
|
|
47
|
+
*/
|
|
48
|
+
MeasureValueFilterComponent?: ComponentType<IMeasureValueFilterProps>;
|
|
49
|
+
/**
|
|
50
|
+
* Controls whether the internal dashboard dropdown button should be passed to the SDK component.
|
|
51
|
+
* When false, the SDK component can inject its own button, for example when rendered in a filter group.
|
|
52
|
+
*
|
|
53
|
+
* @alpha
|
|
54
|
+
*/
|
|
55
|
+
passDropdownButton?: boolean;
|
|
42
56
|
}
|
|
43
57
|
/**
|
|
44
58
|
* @alpha
|
|
@@ -812,7 +812,7 @@ export const en_AU = {
|
|
|
812
812
|
"kdaDialog.dialog.keyDrives.button.trendDown": "Decrease",
|
|
813
813
|
"kdaDialog.dialog.keyDrives.button.trendAll": "All",
|
|
814
814
|
"kdaDialog.dialog.keyDrives.drivers": "{count} {count, plural, one {driver} other {drivers}}",
|
|
815
|
-
"kdaDialog.dialog.keyDrives.overview.summary.home": "
|
|
815
|
+
"kdaDialog.dialog.keyDrives.overview.summary.home": "Home",
|
|
816
816
|
"kdaDialog.dialog.keyDrives.overview.summary.home.tooltip": "Go to Analysis summary",
|
|
817
817
|
"kdaDialog.dialog.keyDrives.overview.summary.breadcrumb.label": "Key driver analysis navigation",
|
|
818
818
|
"kdaDialog.dialog.keyDrives.overview.summary.title": "Analysis summary",
|
|
@@ -812,7 +812,7 @@ export const en_GB = {
|
|
|
812
812
|
"kdaDialog.dialog.keyDrives.button.trendDown": "Decrease",
|
|
813
813
|
"kdaDialog.dialog.keyDrives.button.trendAll": "All",
|
|
814
814
|
"kdaDialog.dialog.keyDrives.drivers": "{count} {count, plural, one {driver} other {drivers}}",
|
|
815
|
-
"kdaDialog.dialog.keyDrives.overview.summary.home": "
|
|
815
|
+
"kdaDialog.dialog.keyDrives.overview.summary.home": "Home",
|
|
816
816
|
"kdaDialog.dialog.keyDrives.overview.summary.home.tooltip": "Go to Analysis summary",
|
|
817
817
|
"kdaDialog.dialog.keyDrives.overview.summary.breadcrumb.label": "Key driver analysis navigation",
|
|
818
818
|
"kdaDialog.dialog.keyDrives.overview.summary.title": "Analysis summary",
|
|
@@ -3246,7 +3246,7 @@ export const en_US = {
|
|
|
3246
3246
|
"crowdinContext": "Used to show the number of key drivers in the dialog. Example: '2 drivers'."
|
|
3247
3247
|
},
|
|
3248
3248
|
"kdaDialog.dialog.keyDrives.overview.summary.home": {
|
|
3249
|
-
"text": "
|
|
3249
|
+
"text": "Home",
|
|
3250
3250
|
"crowdinContext": "Home button in the Key Driver Analysis dialog overview section"
|
|
3251
3251
|
},
|
|
3252
3252
|
"kdaDialog.dialog.keyDrives.overview.summary.home.tooltip": {
|
|
@@ -154,6 +154,7 @@ import { IMeasure } from '@gooddata/sdk-model';
|
|
|
154
154
|
import { IMeasureDescriptor } from '@gooddata/sdk-model';
|
|
155
155
|
import { IMeasureMetadataObject } from '@gooddata/sdk-model';
|
|
156
156
|
import { IMeasureValueFilter } from '@gooddata/sdk-model';
|
|
157
|
+
import { IMeasureValueFilterProps } from '@gooddata/sdk-ui-filters';
|
|
157
158
|
import { INegativeAttributeFilter } from '@gooddata/sdk-model';
|
|
158
159
|
import { INotificationChannelIdentifier } from '@gooddata/sdk-model';
|
|
159
160
|
import { INotificationChannelMetadataObject } from '@gooddata/sdk-model';
|
|
@@ -9071,7 +9072,9 @@ export declare interface IDashboardFilterContextWorkingSelectionApplied extends
|
|
|
9071
9072
|
export declare interface IDashboardFilterGroupProps {
|
|
9072
9073
|
groupItem: IFilterBarFilterGroupItem;
|
|
9073
9074
|
onAttributeFilterChanged: (filter: DashboardAttributeFilterItem) => void;
|
|
9075
|
+
onMeasureValueFilterChanged?: (filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, isWorkingSelectionChange?: boolean) => void;
|
|
9074
9076
|
DashboardAttributeFilterComponent?: CustomDashboardAttributeFilterComponent;
|
|
9077
|
+
DashboardMeasureValueFilterComponent?: CustomDashboardMeasureValueFilterComponent;
|
|
9075
9078
|
}
|
|
9076
9079
|
|
|
9077
9080
|
/**
|
|
@@ -10927,6 +10930,19 @@ export declare interface IDashboardMeasureValueFilterProps {
|
|
|
10927
10930
|
* undefined, the active tab's state is used.
|
|
10928
10931
|
*/
|
|
10929
10932
|
tabId?: string;
|
|
10933
|
+
/**
|
|
10934
|
+
* Optional custom measure value filter component to change or extend the default rendered one.
|
|
10935
|
+
*
|
|
10936
|
+
* @alpha
|
|
10937
|
+
*/
|
|
10938
|
+
MeasureValueFilterComponent?: ComponentType<IMeasureValueFilterProps>;
|
|
10939
|
+
/**
|
|
10940
|
+
* Controls whether the internal dashboard dropdown button should be passed to the SDK component.
|
|
10941
|
+
* When false, the SDK component can inject its own button, for example when rendered in a filter group.
|
|
10942
|
+
*
|
|
10943
|
+
* @alpha
|
|
10944
|
+
*/
|
|
10945
|
+
passDropdownButton?: boolean;
|
|
10930
10946
|
}
|
|
10931
10947
|
|
|
10932
10948
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-dashboard",
|
|
3
|
-
"version": "11.37.0-alpha.
|
|
3
|
+
"version": "11.37.0-alpha.3",
|
|
4
4
|
"description": "GoodData SDK - Dashboard Component",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -60,19 +60,19 @@
|
|
|
60
60
|
"ts-invariant": "0.10.3",
|
|
61
61
|
"tslib": "2.8.1",
|
|
62
62
|
"uuid": "11.1.0",
|
|
63
|
-
"@gooddata/sdk-backend-base": "11.37.0-alpha.
|
|
64
|
-
"@gooddata/sdk-
|
|
65
|
-
"@gooddata/sdk-
|
|
66
|
-
"@gooddata/sdk-
|
|
67
|
-
"@gooddata/sdk-ui-charts": "11.37.0-alpha.
|
|
68
|
-
"@gooddata/sdk-ui-ext": "11.37.0-alpha.
|
|
69
|
-
"@gooddata/sdk-ui-filters": "11.37.0-alpha.
|
|
70
|
-
"@gooddata/sdk-ui-geo": "11.37.0-alpha.
|
|
71
|
-
"@gooddata/sdk-ui-kit": "11.37.0-alpha.
|
|
72
|
-
"@gooddata/sdk-ui-pivot": "11.37.0-alpha.
|
|
73
|
-
"@gooddata/sdk-ui-theme-provider": "11.37.0-alpha.
|
|
74
|
-
"@gooddata/sdk-ui-vis-commons": "11.37.0-alpha.
|
|
75
|
-
"@gooddata/util": "11.37.0-alpha.
|
|
63
|
+
"@gooddata/sdk-backend-base": "11.37.0-alpha.3",
|
|
64
|
+
"@gooddata/sdk-backend-spi": "11.37.0-alpha.3",
|
|
65
|
+
"@gooddata/sdk-model": "11.37.0-alpha.3",
|
|
66
|
+
"@gooddata/sdk-ui": "11.37.0-alpha.3",
|
|
67
|
+
"@gooddata/sdk-ui-charts": "11.37.0-alpha.3",
|
|
68
|
+
"@gooddata/sdk-ui-ext": "11.37.0-alpha.3",
|
|
69
|
+
"@gooddata/sdk-ui-filters": "11.37.0-alpha.3",
|
|
70
|
+
"@gooddata/sdk-ui-geo": "11.37.0-alpha.3",
|
|
71
|
+
"@gooddata/sdk-ui-kit": "11.37.0-alpha.3",
|
|
72
|
+
"@gooddata/sdk-ui-pivot": "11.37.0-alpha.3",
|
|
73
|
+
"@gooddata/sdk-ui-theme-provider": "11.37.0-alpha.3",
|
|
74
|
+
"@gooddata/sdk-ui-vis-commons": "11.37.0-alpha.3",
|
|
75
|
+
"@gooddata/util": "11.37.0-alpha.3"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -118,12 +118,12 @@
|
|
|
118
118
|
"typescript": "5.9.3",
|
|
119
119
|
"vitest": "4.1.0",
|
|
120
120
|
"vitest-dom": "0.1.1",
|
|
121
|
-
"@gooddata/eslint-config": "11.37.0-alpha.
|
|
122
|
-
"@gooddata/i18n-toolkit": "11.37.0-alpha.
|
|
123
|
-
"@gooddata/oxlint-config": "11.37.0-alpha.
|
|
124
|
-
"@gooddata/reference-workspace": "11.37.0-alpha.
|
|
125
|
-
"@gooddata/sdk-backend-mockingbird": "11.37.0-alpha.
|
|
126
|
-
"@gooddata/stylelint-config": "11.37.0-alpha.
|
|
121
|
+
"@gooddata/eslint-config": "11.37.0-alpha.3",
|
|
122
|
+
"@gooddata/i18n-toolkit": "11.37.0-alpha.3",
|
|
123
|
+
"@gooddata/oxlint-config": "11.37.0-alpha.3",
|
|
124
|
+
"@gooddata/reference-workspace": "11.37.0-alpha.3",
|
|
125
|
+
"@gooddata/sdk-backend-mockingbird": "11.37.0-alpha.3",
|
|
126
|
+
"@gooddata/stylelint-config": "11.37.0-alpha.3"
|
|
127
127
|
},
|
|
128
128
|
"peerDependencies": {
|
|
129
129
|
"react": "^18.0.0 || ^19.0.0",
|
package/styles/css/kdaDialog.css
CHANGED
|
@@ -220,18 +220,18 @@
|
|
|
220
220
|
}
|
|
221
221
|
.gd-kda-dialog .gd-kda-dialog-bar__metric {
|
|
222
222
|
display: flex;
|
|
223
|
-
max-width:
|
|
223
|
+
max-width: 320px;
|
|
224
224
|
}
|
|
225
225
|
.gd-kda-dialog .gd-kda-dialog-bar__metric svg.gd-ui-kit-icon {
|
|
226
226
|
fill: #00c18d;
|
|
227
227
|
}
|
|
228
228
|
.gd-kda-dialog .gd-kda-dialog-bar__date {
|
|
229
229
|
display: flex;
|
|
230
|
-
max-width:
|
|
230
|
+
max-width: 320px;
|
|
231
231
|
}
|
|
232
232
|
.gd-kda-dialog .gd-kda-dialog-bar__attribute {
|
|
233
233
|
display: flex;
|
|
234
|
-
max-width:
|
|
234
|
+
max-width: 320px;
|
|
235
235
|
}
|
|
236
236
|
.gd-kda-dialog .gd-kda-attribute-add-dropdown > div {
|
|
237
237
|
margin: 0;
|
|
@@ -771,9 +771,9 @@
|
|
|
771
771
|
flex-direction: row;
|
|
772
772
|
gap: 5px;
|
|
773
773
|
padding: 5px 10px;
|
|
774
|
-
align-items:
|
|
774
|
+
align-items: center;
|
|
775
775
|
justify-content: space-between;
|
|
776
|
-
width: 100
|
|
776
|
+
width: calc(100% - 20px);
|
|
777
777
|
height: 32px;
|
|
778
778
|
cursor: pointer;
|
|
779
779
|
}
|
|
@@ -804,6 +804,20 @@
|
|
|
804
804
|
.gd-kda-trend-item.gd-kda-trend-item-selected:hover .gd-kda-trend-item-drivers {
|
|
805
805
|
color: var(--gd-palette-primary-base);
|
|
806
806
|
}
|
|
807
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled {
|
|
808
|
+
cursor: default;
|
|
809
|
+
}
|
|
810
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled .gd-kda-trend-item-text,
|
|
811
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled .gd-kda-trend-item-drivers {
|
|
812
|
+
color: var(--gd-palette-complementary-5);
|
|
813
|
+
}
|
|
814
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover {
|
|
815
|
+
background-color: transparent;
|
|
816
|
+
}
|
|
817
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover .gd-kda-trend-item-text,
|
|
818
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover .gd-kda-trend-item-drivers {
|
|
819
|
+
color: var(--gd-palette-complementary-5);
|
|
820
|
+
}
|
|
807
821
|
|
|
808
822
|
/* stylelint-disable declaration-no-important */
|
|
809
823
|
body.gd-kda-dialog-opened .highcharts-tooltip-container {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../scss/kdaDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AAIA;EACI;IACI;IACA;;EAGJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAGJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;;AAIR;EACI;EACA;EAEA;EACA;;AAII;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EAEI;;AAMJ;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EAEI;;AAIR;EACI;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAIR;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAIA;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACI;EACA;;AAMZ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,MCvRI;;AD2RZ;EACI;EACA;;AAGJ;EACI;EACA;;AAMJ;EACI;;AAKR;EACI;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;;AAEA;EAEI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAQR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;;AAMZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAMA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAMZ;EACI;;AAIJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA,uBACI;EAEJ;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMhB;EAEQ;IACI;IACA;;EAKJ;IACI;;;AAMZ;EACI;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKA;AAAA;EAEI;;AAIR;EACI;;AAEA;AAAA;EAEI;;AAKJ;AAAA;EAEI;;;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/kdaDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AAIA;EACI;IACI;IACA;;EAGJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAGJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;;AAIR;EACI;EACA;EAEA;EACA;;AAII;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EAEI;;AAMJ;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EAEI;;AAIR;EACI;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAIR;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAIA;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACI;EACA;;AAMZ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,MCvRI;;AD2RZ;EACI;EACA;;AAGJ;EACI;EACA;;AAMJ;EACI;;AAKR;EACI;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;;AAEA;EAEI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAQR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;;AAMZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAMA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAMZ;EACI;;AAIJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA,uBACI;EAEJ;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMhB;EAEQ;IACI;IACA;;EAKJ;IACI;;;AAMZ;EACI;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKA;AAAA;EAEI;;AAIR;EACI;;AAEA;AAAA;EAEI;;AAKJ;AAAA;EAEI;;AAIR;EACI;;AAEA;AAAA;EAEI;;AAGJ;EACI;;AAEA;AAAA;EAEI;;;AAOhB;AACA;EACI","file":"kdaDialog.css"}
|
package/styles/css/main.css
CHANGED
|
@@ -34211,18 +34211,18 @@ figure {
|
|
|
34211
34211
|
}
|
|
34212
34212
|
.gd-kda-dialog .gd-kda-dialog-bar__metric {
|
|
34213
34213
|
display: flex;
|
|
34214
|
-
max-width:
|
|
34214
|
+
max-width: 320px;
|
|
34215
34215
|
}
|
|
34216
34216
|
.gd-kda-dialog .gd-kda-dialog-bar__metric svg.gd-ui-kit-icon {
|
|
34217
34217
|
fill: #00c18d;
|
|
34218
34218
|
}
|
|
34219
34219
|
.gd-kda-dialog .gd-kda-dialog-bar__date {
|
|
34220
34220
|
display: flex;
|
|
34221
|
-
max-width:
|
|
34221
|
+
max-width: 320px;
|
|
34222
34222
|
}
|
|
34223
34223
|
.gd-kda-dialog .gd-kda-dialog-bar__attribute {
|
|
34224
34224
|
display: flex;
|
|
34225
|
-
max-width:
|
|
34225
|
+
max-width: 320px;
|
|
34226
34226
|
}
|
|
34227
34227
|
.gd-kda-dialog .gd-kda-attribute-add-dropdown > div {
|
|
34228
34228
|
margin: 0;
|
|
@@ -34762,9 +34762,9 @@ figure {
|
|
|
34762
34762
|
flex-direction: row;
|
|
34763
34763
|
gap: 5px;
|
|
34764
34764
|
padding: 5px 10px;
|
|
34765
|
-
align-items:
|
|
34765
|
+
align-items: center;
|
|
34766
34766
|
justify-content: space-between;
|
|
34767
|
-
width: 100
|
|
34767
|
+
width: calc(100% - 20px);
|
|
34768
34768
|
height: 32px;
|
|
34769
34769
|
cursor: pointer;
|
|
34770
34770
|
}
|
|
@@ -34795,6 +34795,20 @@ figure {
|
|
|
34795
34795
|
.gd-kda-trend-item.gd-kda-trend-item-selected:hover .gd-kda-trend-item-drivers {
|
|
34796
34796
|
color: var(--gd-palette-primary-base);
|
|
34797
34797
|
}
|
|
34798
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled {
|
|
34799
|
+
cursor: default;
|
|
34800
|
+
}
|
|
34801
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled .gd-kda-trend-item-text,
|
|
34802
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled .gd-kda-trend-item-drivers {
|
|
34803
|
+
color: var(--gd-palette-complementary-5);
|
|
34804
|
+
}
|
|
34805
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover {
|
|
34806
|
+
background-color: transparent;
|
|
34807
|
+
}
|
|
34808
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover .gd-kda-trend-item-text,
|
|
34809
|
+
.gd-kda-trend-item.gd-kda-trend-item-disabled:hover .gd-kda-trend-item-drivers {
|
|
34810
|
+
color: var(--gd-palette-complementary-5);
|
|
34811
|
+
}
|
|
34798
34812
|
|
|
34799
34813
|
/* stylelint-disable declaration-no-important */
|
|
34800
34814
|
body.gd-kda-dialog-opened .highcharts-tooltip-container {
|