@gooddata/sdk-ui-dashboard 11.37.0-alpha.2 → 11.37.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.
@@ -1,3 +1,3 @@
1
- export declare const LIB_VERSION = "11.37.0-alpha.2";
1
+ export declare const LIB_VERSION = "11.37.0-alpha.4";
2
2
  export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
3
3
  export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
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.2";
3
+ export const LIB_VERSION = "11.37.0-alpha.4";
4
4
  export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
5
5
  export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
@@ -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 { isFilterBarAttributeFilter, } from "./useFiltersWithAddedPlaceholder.js";
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
- return (dashboardAttributeFilterItemLocalIdentifier(filter.filter) ??
30
- dashboardFilterLocalIdentifier(filter.filter));
34
+ if (isFilterBarAttributeFilter(filter)) {
35
+ return dashboardAttributeFilterItemLocalIdentifier(filter.filter);
36
+ }
37
+ return dashboardFilterLocalIdentifier(filter.filter);
31
38
  }, []);
32
- const hasSelectedElements = useCallback((filter) => {
33
- if (isDashboardAttributeFilter(filter.filter)) {
34
- return getSelectedElementsCount(filter.filter) > 0;
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(filter.filter)) {
37
- return filter.filter.arbitraryAttributeFilter.values.length > 0;
47
+ if (isDashboardArbitraryAttributeFilter(dashboardFilter)) {
48
+ return dashboardFilter.arbitraryAttributeFilter.values.length > 0;
38
49
  }
39
- if (isDashboardMatchAttributeFilter(filter.filter)) {
40
- return filter.filter.matchAttributeFilter.literal.length > 0;
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, hasSelectedElements: hasSelectedElements, renderFilter: renderFilter, getTitleExtension: getTitleExtension }));
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
- return (_jsx(MeasureValueFilter, { ...getSharedDashboardMvfProps(mvfData), onApply: handleApply, onChange: isApplyAllAtOnceEnabledAndSet ? handleChange : undefined, withoutApply: isApplyAllAtOnceEnabledAndSet, BodyComponent: BodyComponent, DropdownActionsComponent: DropdownActionsComponent, DropdownButtonComponent: DropdownButtonComponent, onCancel: handleClose, autoOpen: autoOpen }));
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
@@ -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.2",
3
+ "version": "11.37.0-alpha.4",
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.2",
64
- "@gooddata/sdk-backend-spi": "11.37.0-alpha.2",
65
- "@gooddata/sdk-ui": "11.37.0-alpha.2",
66
- "@gooddata/sdk-ui-charts": "11.37.0-alpha.2",
67
- "@gooddata/sdk-ui-ext": "11.37.0-alpha.2",
68
- "@gooddata/sdk-model": "11.37.0-alpha.2",
69
- "@gooddata/sdk-ui-filters": "11.37.0-alpha.2",
70
- "@gooddata/sdk-ui-pivot": "11.37.0-alpha.2",
71
- "@gooddata/sdk-ui-theme-provider": "11.37.0-alpha.2",
72
- "@gooddata/sdk-ui-kit": "11.37.0-alpha.2",
73
- "@gooddata/sdk-ui-vis-commons": "11.37.0-alpha.2",
74
- "@gooddata/util": "11.37.0-alpha.2",
75
- "@gooddata/sdk-ui-geo": "11.37.0-alpha.2"
63
+ "@gooddata/sdk-backend-base": "11.37.0-alpha.4",
64
+ "@gooddata/sdk-ui": "11.37.0-alpha.4",
65
+ "@gooddata/sdk-model": "11.37.0-alpha.4",
66
+ "@gooddata/sdk-backend-spi": "11.37.0-alpha.4",
67
+ "@gooddata/sdk-ui-charts": "11.37.0-alpha.4",
68
+ "@gooddata/sdk-ui-filters": "11.37.0-alpha.4",
69
+ "@gooddata/sdk-ui-geo": "11.37.0-alpha.4",
70
+ "@gooddata/sdk-ui-ext": "11.37.0-alpha.4",
71
+ "@gooddata/sdk-ui-kit": "11.37.0-alpha.4",
72
+ "@gooddata/sdk-ui-pivot": "11.37.0-alpha.4",
73
+ "@gooddata/sdk-ui-vis-commons": "11.37.0-alpha.4",
74
+ "@gooddata/util": "11.37.0-alpha.4",
75
+ "@gooddata/sdk-ui-theme-provider": "11.37.0-alpha.4"
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.2",
122
- "@gooddata/i18n-toolkit": "11.37.0-alpha.2",
123
- "@gooddata/oxlint-config": "11.37.0-alpha.2",
124
- "@gooddata/reference-workspace": "11.37.0-alpha.2",
125
- "@gooddata/stylelint-config": "11.37.0-alpha.2",
126
- "@gooddata/sdk-backend-mockingbird": "11.37.0-alpha.2"
121
+ "@gooddata/eslint-config": "11.37.0-alpha.4",
122
+ "@gooddata/i18n-toolkit": "11.37.0-alpha.4",
123
+ "@gooddata/oxlint-config": "11.37.0-alpha.4",
124
+ "@gooddata/reference-workspace": "11.37.0-alpha.4",
125
+ "@gooddata/sdk-backend-mockingbird": "11.37.0-alpha.4",
126
+ "@gooddata/stylelint-config": "11.37.0-alpha.4"
127
127
  },
128
128
  "peerDependencies": {
129
129
  "react": "^18.0.0 || ^19.0.0",