@gooddata/sdk-ui-dashboard 11.62.0-alpha.0 → 11.62.0-alpha.2
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/NOTICE +10 -11
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/sharedHooks/useAttributes.d.ts.map +1 -1
- package/esm/_staging/sharedHooks/useAttributes.js +4 -2
- package/esm/_staging/sharedHooks/useFiltersNamings.d.ts.map +1 -1
- package/esm/_staging/sharedHooks/useFiltersNamings.js +3 -5
- package/esm/kdaDialog/composition/KdaAttributesDropdown.d.ts +2 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.js +4 -5
- package/esm/kdaDialog/composition/KeyDriversFooter.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.js +12 -4
- package/esm/kdaDialog/dialog/KdaDialog.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialog.js +0 -2
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +21 -5
- package/esm/model/events/dashboard.d.ts +17 -1
- package/esm/model/events/dashboard.d.ts.map +1 -1
- package/esm/model/events/dashboard.js +2 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.js +3 -1
- package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts.map +1 -1
- package/esm/presentation/automations/shared/hooks/useFiltersNamings.js +3 -5
- package/esm/presentation/constants/zIndex.js +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.js +4 -2
- package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.d.ts +20 -0
- package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.d.ts.map +1 -0
- package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.js +47 -0
- package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.d.ts +11 -0
- package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.d.ts.map +1 -0
- package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.js +25 -0
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +4 -2
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +7 -2
- package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.d.ts +5 -0
- package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.d.ts.map +1 -0
- package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.js +10 -0
- package/esm/presentation/widget/dashboardLayout/DashboardLayout.d.ts.map +1 -1
- package/esm/presentation/widget/dashboardLayout/DashboardLayout.js +2 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.js +0 -2
- package/esm/sdk-ui-dashboard.d.ts +16 -0
- package/package.json +21 -21
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/drillDialog.css +4 -5
- package/styles/css/drillDialog.css.map +1 -1
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/floatingToolbar.css.map +1 -1
- package/styles/css/kdaDialog.css +0 -5
- package/styles/css/kdaDialog.css.map +1 -1
- package/styles/css/kpi_alert_dialog.css.map +1 -1
- package/styles/css/layout.css.map +1 -1
- package/styles/css/main.css +16 -15
- package/styles/css/main.css.map +1 -1
- package/styles/css/notifications_channels_dialog.css.map +1 -1
- package/styles/css/resizing.css.map +1 -1
- package/styles/css/toolbar.css.map +1 -1
- package/styles/css/topBar.css.map +1 -1
- package/styles/scss/_zIndexes.scss +0 -1
- package/styles/scss/drillDialog.scss +5 -8
- package/styles/scss/kdaDialog.scss +0 -6
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts +0 -2
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts.map +0 -1
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js +0 -11
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.d.ts +0 -4
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.d.ts.map +0 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.js +0 -26
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-10-
|
|
10
|
+
Date generated: 2026-10-9
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 3ef6d105ddec892804628036fd14253a8cc9efdf
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -219,8 +219,8 @@ No first party licenses found in gooddata-ui-sdk
|
|
|
219
219
|
- array-union (2.1.0) [MIT]
|
|
220
220
|
- astral-regex (2.0.0) [MIT]
|
|
221
221
|
- asynckit (0.4.0) [MIT]
|
|
222
|
-
- axios (1.
|
|
223
|
-
- axios-cache-interceptor (1.12.
|
|
222
|
+
- axios (1.20.0) [MIT]
|
|
223
|
+
- axios-cache-interceptor (1.12.3) [MIT]
|
|
224
224
|
- babel-plugin-macros (3.1.0) [MIT]
|
|
225
225
|
- bail (2.0.2) [MIT]
|
|
226
226
|
- balanced-match (2.0.0) [MIT]
|
|
@@ -19838,9 +19838,9 @@ Dependency Path: axios > form-data > asynckit > axios-cache-interceptor > axios
|
|
|
19838
19838
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
19839
19839
|
|
|
19840
19840
|
--------------------------------------------------------------------------------
|
|
19841
|
-
Package Title: axios (1.
|
|
19841
|
+
Package Title: axios (1.20.0)
|
|
19842
19842
|
|
|
19843
|
-
Package Locator: npm+axios$1.
|
|
19843
|
+
Package Locator: npm+axios$1.20.0
|
|
19844
19844
|
|
|
19845
19845
|
Package Depth: Direct
|
|
19846
19846
|
--------------------------------------------------------------------------------
|
|
@@ -19884,14 +19884,13 @@ MIT
|
|
|
19884
19884
|
Authors: jasonsaayman@gmail.com
|
|
19885
19885
|
Package Manager: NPM
|
|
19886
19886
|
Project URL: https://axios-http.com/
|
|
19887
|
-
Package Download URL: https://registry.npmjs.org/axios/-/axios-1.18.1.tgz
|
|
19888
19887
|
Dependency Path: axios > axios-cache-interceptor > axios
|
|
19889
19888
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
19890
19889
|
|
|
19891
19890
|
--------------------------------------------------------------------------------
|
|
19892
|
-
Package Title: axios-cache-interceptor (1.12.
|
|
19891
|
+
Package Title: axios-cache-interceptor (1.12.3)
|
|
19893
19892
|
|
|
19894
|
-
Package Locator: npm+axios-cache-interceptor$1.12.
|
|
19893
|
+
Package Locator: npm+axios-cache-interceptor$1.12.3
|
|
19895
19894
|
|
|
19896
19895
|
Package Depth: Direct
|
|
19897
19896
|
--------------------------------------------------------------------------------
|
|
@@ -19959,7 +19958,7 @@ MIT
|
|
|
19959
19958
|
Authors: arthur.fiorette@gmail.com
|
|
19960
19959
|
Package Manager: NPM
|
|
19961
19960
|
Project URL: https://axios-cache-interceptor.js.org/
|
|
19962
|
-
Package Download URL: https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.12.
|
|
19961
|
+
Package Download URL: https://registry.npmjs.org/axios-cache-interceptor/-/axios-cache-interceptor-1.12.3.tgz
|
|
19963
19962
|
Dependency Path: axios-cache-interceptor
|
|
19964
19963
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
19965
19964
|
|
|
@@ -64773,4 +64772,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
|
64773
64772
|
--------------------------------------------------------------------------------
|
|
64774
64773
|
--------------------------------------------------------------------------------
|
|
64775
64774
|
|
|
64776
|
-
Report Generated by FOSSA on 2026-10-
|
|
64775
|
+
Report Generated by FOSSA on 2026-10-9
|
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.62.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.62.0-alpha.2";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
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.62.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.62.0-alpha.2";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributes.d.ts","sourceRoot":"","sources":["../../../src/_staging/sharedHooks/useAttributes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAttributes.d.ts","sourceRoot":"","sources":["../../../src/_staging/sharedHooks/useAttributes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAYjF;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE;;;;EAmCnD"}
|
|
@@ -3,6 +3,7 @@ import { useEffect, useMemo } from "react";
|
|
|
3
3
|
import { queryAttributeByDisplayForm, } from "../../model/queries/attributes.js";
|
|
4
4
|
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
5
5
|
import { useDashboardQueryProcessing } from "../../model/react/useDashboardQueryProcessing.js";
|
|
6
|
+
import { selectIsAiMode } from "../../model/store/config/configSelectors.js";
|
|
6
7
|
import { selectIsNewDashboard } from "../../model/store/meta/metaSelectors.js";
|
|
7
8
|
import { selectPreloadedAttributesWithReferences } from "../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
8
9
|
/**
|
|
@@ -15,12 +16,13 @@ export function useAttributes(displayForms) {
|
|
|
15
16
|
// First wait for preloaded filter attributes, otherwise we might be spawning lot of unnecessary requests
|
|
16
17
|
const attributesWithReferences = useDashboardSelector(selectPreloadedAttributesWithReferences);
|
|
17
18
|
const isNewDashboard = useDashboardSelector(selectIsNewDashboard);
|
|
19
|
+
const isAiMode = useDashboardSelector(selectIsAiMode);
|
|
18
20
|
useEffect(() => {
|
|
19
|
-
const shouldLoad = isNewDashboard || attributesWithReferences;
|
|
21
|
+
const shouldLoad = isNewDashboard || isAiMode || attributesWithReferences;
|
|
20
22
|
if (shouldLoad) {
|
|
21
23
|
getAttributes(displayForms);
|
|
22
24
|
}
|
|
23
|
-
}, [displayForms, getAttributes, isNewDashboard, attributesWithReferences]);
|
|
25
|
+
}, [displayForms, getAttributes, isNewDashboard, isAiMode, attributesWithReferences]);
|
|
24
26
|
const attributesLoading = useMemo(() => {
|
|
25
27
|
return attributesLoadingStatus === "pending" || attributesLoadingStatus === "running";
|
|
26
28
|
}, [attributesLoadingStatus]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFiltersNamings.d.ts","sourceRoot":"","sources":["../../../src/_staging/sharedHooks/useFiltersNamings.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,iBAAiB,EAItB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"useFiltersNamings.d.ts","sourceRoot":"","sources":["../../../src/_staging/sharedHooks/useFiltersNamings.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,iBAAiB,EAItB,KAAK,MAAM,EAiBd,MAAM,qBAAqB,CAAC;AA0B7B,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4OF,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAIrG;AAED,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,CAa9C"}
|
|
@@ -5,7 +5,7 @@ import { areObjRefsEqual, dashboardAttributeFilterItemLocalIdentifier, dashboard
|
|
|
5
5
|
import { DateFilterHelpers, getAttributeFilterSubtitle, getLocalizedIcuDateFormatPattern, getMeasureValueFilterConditionLabel, getTextFilterStateText, } from "@gooddata/sdk-ui-filters";
|
|
6
6
|
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
7
7
|
import { selectAllCatalogAttributesMap, selectCatalogMeasures, } from "../../model/store/catalog/catalogSelectors.js";
|
|
8
|
-
import { selectLocale, selectSeparators, selectSettings
|
|
8
|
+
import { selectLocale, selectSeparators, selectSettings } from "../../model/store/config/configSelectors.js";
|
|
9
9
|
import { convertDateFilterConfigToDateFilterOptions } from "../dateFilterConfig/dateFilterConfigConverters.js";
|
|
10
10
|
import { matchDateFilterToDateFilterOptionWithPreference } from "../dateFilterConfig/dateFilterOptionMapping.js";
|
|
11
11
|
import { defaultDateFilterConfig } from "../dateFilterConfig/defaultConfig.js";
|
|
@@ -35,7 +35,6 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
35
35
|
const attrMap = useDashboardSelector(selectAllCatalogAttributesMap);
|
|
36
36
|
const measures = useDashboardSelector(selectCatalogMeasures);
|
|
37
37
|
const separators = useDashboardSelector(selectSeparators);
|
|
38
|
-
const weekStart = useDashboardSelector(selectWeekStart);
|
|
39
38
|
const dateFiltersForTitles = filtersForTitles.filter(isDashboardDateFilterWithDimension);
|
|
40
39
|
const commonDateFilterTitle = useCommonDateFilterTitle(intl);
|
|
41
40
|
const allDateFiltersTitlesObj = useDateFiltersTitles(dateFiltersForTitles, intl);
|
|
@@ -43,7 +42,6 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
43
42
|
intl,
|
|
44
43
|
locale,
|
|
45
44
|
dateFormat,
|
|
46
|
-
weekStart,
|
|
47
45
|
getAttributeFilterDisplayFormFromMap,
|
|
48
46
|
attrMap,
|
|
49
47
|
measures,
|
|
@@ -57,7 +55,7 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
57
55
|
* Extracted to avoid code duplication between useFiltersNamings and useFiltersByTabNamings.
|
|
58
56
|
*/
|
|
59
57
|
function transformFiltersToNamings(filtersToDisplay, deps) {
|
|
60
|
-
const { intl, dateFormat,
|
|
58
|
+
const { intl, dateFormat, getAttributeFilterDisplayFormFromMap, attrMap, measures, separators, commonDateFilterTitle, allDateFiltersTitlesObj, } = deps;
|
|
61
59
|
// we want to show all time filter in the list of filters even if it is not stored
|
|
62
60
|
const extendedFiltersToDisplay = ensureAllTimeFilterForExport(filtersToDisplay);
|
|
63
61
|
return extendedFiltersToDisplay.map((filter) => {
|
|
@@ -90,7 +88,7 @@ function transformFiltersToNamings(filtersToDisplay, deps) {
|
|
|
90
88
|
*/
|
|
91
89
|
const dateFilterOptionInfo = matchDateFilterToDateFilterOptionWithPreference(filter, convertDateFilterConfigToDateFilterOptions(defaultDateFilterConfig), undefined);
|
|
92
90
|
const dateFilterOption = DateFilterHelpers.applyExcludeCurrentPeriod(dateFilterOptionInfo.dateFilterOption, dateFilterOptionInfo.excludeCurrentPeriod);
|
|
93
|
-
const subtitle = DateFilterHelpers.getDateFilterTitleUsingTranslator(dateFilterOption, intl, "full", dateFormat
|
|
91
|
+
const subtitle = DateFilterHelpers.getDateFilterTitleUsingTranslator(dateFilterOption, intl, "full", dateFormat);
|
|
94
92
|
const a = filter;
|
|
95
93
|
if (isDashboardDateFilterWithDimension(a)) {
|
|
96
94
|
const key = serializeObjRef(a.dateFilter.dataSet);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ICatalogAttribute } from "@gooddata/sdk-model";
|
|
2
2
|
import { type IKdaItemGroup } from "../internalTypes.js";
|
|
3
3
|
export interface IKdaAttributesDropdownProps {
|
|
4
|
+
buttonId: string;
|
|
4
5
|
buttonLabel: string;
|
|
5
6
|
attributesCount: number;
|
|
6
7
|
validAttributes: ICatalogAttribute[];
|
|
@@ -11,5 +12,5 @@ export interface IKdaAttributesDropdownProps {
|
|
|
11
12
|
onOpen: () => void;
|
|
12
13
|
onClose: () => void;
|
|
13
14
|
}
|
|
14
|
-
export declare function KdaAttributesDropdown({ buttonLabel, attributesCount, validAttributes, initialAttributes, mapAttributes, isSearchBarVisible, onApply, onOpen, onClose, }: IKdaAttributesDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function KdaAttributesDropdown({ buttonId, buttonLabel, attributesCount, validAttributes, initialAttributes, mapAttributes, isSearchBarVisible, onApply, onOpen, onClose, }: IKdaAttributesDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
//# sourceMappingURL=KdaAttributesDropdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaAttributesDropdown.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KdaAttributesDropdown.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaAttributesDropdown.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KdaAttributesDropdown.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU7D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC;IACtD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,OAAO,GACV,EAAE,2BAA2B,2CAyK7B"}
|
|
@@ -2,20 +2,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
3
|
import { useId } from "react";
|
|
4
4
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
5
|
-
import { Dropdown, InvertableSelectSearchBar, InvertableSelectVirtualised, SeparatorLine, UiButton,
|
|
5
|
+
import { Dropdown, InvertableSelectSearchBar, InvertableSelectVirtualised, SeparatorLine, UiButton, } from "@gooddata/sdk-ui-kit";
|
|
6
6
|
import { getAttributeKey, getAttributeTitle, useKdaAttributesSelection, } from "./hooks/useKdaAttributesSelection.js";
|
|
7
7
|
import { KdaAttributesSelectItem } from "./KdaAttributesSelectItem.js";
|
|
8
8
|
const ITEM_HEIGHT = 28;
|
|
9
9
|
const ALIGN_POINTS = [{ align: "tl bl" }];
|
|
10
|
-
export function KdaAttributesDropdown({ buttonLabel, attributesCount, validAttributes, initialAttributes, mapAttributes, isSearchBarVisible, onApply, onOpen, onClose, }) {
|
|
10
|
+
export function KdaAttributesDropdown({ buttonId, buttonLabel, attributesCount, validAttributes, initialAttributes, mapAttributes, isSearchBarVisible, onApply, onOpen, onClose, }) {
|
|
11
11
|
const intl = useIntl();
|
|
12
12
|
const labelKeyDriversId = useId();
|
|
13
|
-
const dropdownButtonId = useIdPrefixed("kda-attributes-dropdown-button");
|
|
14
13
|
const { searchString, setSearchString, selection, isInverted, filteredOptions, resolvedSelection, isApplyDisabled, onSelect, resetSelection, } = useKdaAttributesSelection(validAttributes, initialAttributes);
|
|
15
14
|
const popupLabel = intl.formatMessage({
|
|
16
15
|
id: "kdaDialog.dialog.keyDrives.overview.summary.drivers.popupLabel",
|
|
17
16
|
});
|
|
18
|
-
return (_jsx(Dropdown, { className: "gd-kda-attributes-dropdown", closeOnEscape: true, autofocusOnOpen: true, overlayPositionType: "sameAsTarget", alignPoints: ALIGN_POINTS, returnFocusTo:
|
|
17
|
+
return (_jsx(Dropdown, { className: "gd-kda-attributes-dropdown", closeOnEscape: true, autofocusOnOpen: true, overlayPositionType: "sameAsTarget", alignPoints: ALIGN_POINTS, returnFocusTo: buttonId, onOpenStateChanged: (isOpen) => {
|
|
19
18
|
if (isOpen) {
|
|
20
19
|
resetSelection();
|
|
21
20
|
onOpen();
|
|
@@ -23,7 +22,7 @@ export function KdaAttributesDropdown({ buttonLabel, attributesCount, validAttri
|
|
|
23
22
|
else {
|
|
24
23
|
onClose();
|
|
25
24
|
}
|
|
26
|
-
}, renderButton: ({ toggleDropdown, isOpen, buttonRef, dropdownId }) => (_jsx(UiButton, { id:
|
|
25
|
+
}, renderButton: ({ toggleDropdown, isOpen, buttonRef, dropdownId }) => (_jsx(UiButton, { id: buttonId, dataTestId: `${attributesCount}_attributes`, ref: buttonRef, variant: "tertiary", iconAfter: "settings", isSelected: isOpen, label: buttonLabel, onClick: toggleDropdown, accessibilityConfig: {
|
|
27
26
|
ariaHaspopup: "dialog",
|
|
28
27
|
ariaExpanded: isOpen,
|
|
29
28
|
ariaControls: isOpen ? dropdownId : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversFooter.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"KeyDriversFooter.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,gBAAgB,mDAqF/B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
|
-
import { useCallback } from "react";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
4
|
import { FormattedMessage } from "react-intl";
|
|
5
5
|
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
6
|
-
import { UiSkeleton } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { UiSkeleton, useIdPrefixed, useUiAutofocusConnectors } from "@gooddata/sdk-ui-kit";
|
|
7
7
|
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
8
8
|
import { selectCatalogIsLoaded } from "../../model/store/catalog/catalogSelectors.js";
|
|
9
9
|
import { useKdaState } from "../providers/KdaState.js";
|
|
@@ -11,6 +11,8 @@ import { useKdaValidAttributes } from "./hooks/useKdaValidAttributes.js";
|
|
|
11
11
|
import { KdaAttributesDropdown } from "./KdaAttributesDropdown.js";
|
|
12
12
|
export function KeyDriversFooter() {
|
|
13
13
|
const { state, setState } = useKdaState();
|
|
14
|
+
const [applyCount, setApplyCount] = useState(0);
|
|
15
|
+
const attributesButtonId = useIdPrefixed("kda-attributes-dropdown-button");
|
|
14
16
|
const isCatalogLoaded = useDashboardSelector(selectCatalogIsLoaded);
|
|
15
17
|
const isLoading = !isCatalogLoaded ||
|
|
16
18
|
state.itemsStatus === "pending" ||
|
|
@@ -20,6 +22,7 @@ export function KeyDriversFooter() {
|
|
|
20
22
|
const isError = state.itemsStatus === "error";
|
|
21
23
|
const { validAttributes, mapAttributes, initialAttributes, isSearchBarVisible } = useKdaValidAttributes();
|
|
22
24
|
const onApply = useCallback((selected) => {
|
|
25
|
+
setApplyCount((count) => count + 1);
|
|
23
26
|
setState({
|
|
24
27
|
selectedAttributes: selected.map((item) => {
|
|
25
28
|
const existingRef = state.selectedAttributes.find((ref) => item.displayForms.some((df) => areObjRefsEqual(df.ref, ref)));
|
|
@@ -34,18 +37,23 @@ export function KeyDriversFooter() {
|
|
|
34
37
|
const onClose = useCallback(() => {
|
|
35
38
|
setState({ attributesDropdownOpen: false });
|
|
36
39
|
}, [setState]);
|
|
40
|
+
const autofocus = useUiAutofocusConnectors({
|
|
41
|
+
active: applyCount > 0 && !isLoading,
|
|
42
|
+
refocusKey: `${applyCount}-${isLoading}`,
|
|
43
|
+
initialFocus: attributesButtonId,
|
|
44
|
+
});
|
|
37
45
|
//Do not show footer when kda is not loaded at all
|
|
38
46
|
if (isError) {
|
|
39
47
|
return null;
|
|
40
48
|
}
|
|
41
|
-
return (_jsx("div", { children: isLoading ? (_jsx(UiSkeleton, { itemHeight: 23, itemWidth: 300 })) : (_jsx(FormattedMessage, { id: "kdaDialog.dialog.keyDrives.overview.summary.drivers.description", values: {
|
|
49
|
+
return (_jsx("div", { ref: autofocus.ref, children: isLoading ? (_jsx(UiSkeleton, { itemHeight: 23, itemWidth: 300 })) : (_jsx(FormattedMessage, { id: "kdaDialog.dialog.keyDrives.overview.summary.drivers.description", values: {
|
|
42
50
|
combinations: state.items.length,
|
|
43
51
|
attributes: state.selectedAttributes.length,
|
|
44
52
|
button: (chunks) => {
|
|
45
53
|
const buttonLabel = chunks
|
|
46
54
|
.filter((chunk) => typeof chunk === "string")
|
|
47
55
|
.join("");
|
|
48
|
-
return (_jsx(KdaAttributesDropdown, { buttonLabel: buttonLabel, attributesCount: state.selectedAttributes.length, validAttributes: validAttributes, initialAttributes: initialAttributes, mapAttributes: mapAttributes, isSearchBarVisible: isSearchBarVisible, onApply: onApply, onOpen: onOpen, onClose: onClose }));
|
|
56
|
+
return (_jsx(KdaAttributesDropdown, { buttonId: attributesButtonId, buttonLabel: buttonLabel, attributesCount: state.selectedAttributes.length, validAttributes: validAttributes, initialAttributes: initialAttributes, mapAttributes: mapAttributes, isSearchBarVisible: isSearchBarVisible, onApply: onApply, onOpen: onOpen, onClose: onClose }));
|
|
49
57
|
},
|
|
50
58
|
} })) }));
|
|
51
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAenD;;GAEG;AACH,wBAAgB,SAAS,CAAC,EACtB,SAAS,EACT,eAAsB,EACtB,uBAAuB,EACvB,OAAO,EACP,QAAQ,EACR,cAAc,GACjB,EAAE,eAAe,2CAgHjB"}
|
|
@@ -17,7 +17,6 @@ import { useKdaState } from "../providers/KdaState.js";
|
|
|
17
17
|
import { useChangeAnalysis } from "./hooks/useChangeAnalysis.js";
|
|
18
18
|
import { useCloseOnEscape } from "./hooks/useCloseOnEscape.js";
|
|
19
19
|
import { useKdaDialogAccessibility } from "./hooks/useKdaDialogAccessibility.js";
|
|
20
|
-
import { useKdaDialogTooltipsOverride } from "./hooks/useKdaDialogTooltipsOverride.js";
|
|
21
20
|
import { useValidAttributes } from "./hooks/useValidAttributes.js";
|
|
22
21
|
import { KdaDialogControls } from "./KdaDialogControls.js";
|
|
23
22
|
import { KdaDialogFloatingStatusBar, getFloatingStatus } from "./KdaDialogFloatingStatusBar.js";
|
|
@@ -47,7 +46,6 @@ export function KdaDialog({ className, showCloseButton = true, parentOverlayCont
|
|
|
47
46
|
}, [isMinimized, onToggle]);
|
|
48
47
|
useChangeAnalysis();
|
|
49
48
|
useValidAttributes();
|
|
50
|
-
useKdaDialogTooltipsOverride();
|
|
51
49
|
const closeOnEscape = useCloseOnEscape();
|
|
52
50
|
return (_jsx(OverlayControllerProvider, { overlayController: effectiveOverlayController, children: isMinimized ? (_jsx(Dialog, { autofocusOnOpen: true, initialFocus: accessibilityConfig.descriptionElementId, className: cx(dialogBaseClassName, "gd-kda-dialog--minimized", {
|
|
53
51
|
[`gd-kda-dialog--minimized--${status}`]: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveDashboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/saveDashboardHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,EAGH,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"saveDashboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/saveDashboardHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,EAGH,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAYxB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAkChF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA2M1E,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,oBAAoB,EAC/B,gBAAgB,EAAE,OAAO,YAAO,EAChC,cAAc,EAAE,OAAO,GACxB,oBAAoB,CAkBtB;AAyED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,gBAAgB,CAEjG;AAsUD,wBAAiB,oBAAoB,CACjC,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,cAAc,GACpB,YAAY,CAAC,cAAc,GAAG,SAAS,CAAC,CA0G1C"}
|
|
@@ -3,7 +3,7 @@ import { batchActions } from "redux-batched-actions";
|
|
|
3
3
|
import { all, call, put, select, take } from "redux-saga/effects";
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
5
|
import { isUnexpectedResponseError } from "@gooddata/sdk-backend-spi";
|
|
6
|
-
import { areObjRefsEqual, insightRef, isTempFilterContext, } from "@gooddata/sdk-model";
|
|
6
|
+
import { areObjRefsEqual, insightRef, isIdentifierRef, isTempFilterContext, } from "@gooddata/sdk-model";
|
|
7
7
|
import { dashboardFilterContextIdentity } from "../../../_staging/dashboard/dashboardFilterContext.js";
|
|
8
8
|
import { dashboardLayoutRemoveIdentity, dashboardLayoutWidgetIdentityMap, } from "../../../_staging/dashboard/dashboardLayout.js";
|
|
9
9
|
import { createListedDashboard } from "../../../_staging/listedDashboard/listedDashboardUtils.js";
|
|
@@ -40,6 +40,7 @@ import { changeRenderModeHandler } from "../renderMode/changeRenderModeHandler.j
|
|
|
40
40
|
import { switchDashboardTabHandler } from "../tabs/switchDashboardTabHandler.js";
|
|
41
41
|
import { dashboardWithDrillReferences } from "./dashboardDrillReferences.js";
|
|
42
42
|
function* persistDraftInsights(ctx, cmd, insights) {
|
|
43
|
+
const savedInsights = [];
|
|
43
44
|
for (const draftInsight of insights) {
|
|
44
45
|
const persistedInsight = yield call(async () => {
|
|
45
46
|
return ctx.backend.workspace(ctx.workspace).insights().createInsight(draftInsight, false);
|
|
@@ -72,7 +73,19 @@ function* persistDraftInsights(ctx, cmd, insights) {
|
|
|
72
73
|
}));
|
|
73
74
|
}
|
|
74
75
|
yield put(insightsActions.setInsights(updatedInsights));
|
|
76
|
+
const originalInsightRef = insightRef(draftInsight);
|
|
77
|
+
const savedInsightRef = insightRef(persistedInsight);
|
|
78
|
+
const originalInsightId = isIdentifierRef(originalInsightRef)
|
|
79
|
+
? originalInsightRef.identifier
|
|
80
|
+
: draftInsight.insight.identifier;
|
|
81
|
+
const savedInsightId = isIdentifierRef(savedInsightRef)
|
|
82
|
+
? savedInsightRef.identifier
|
|
83
|
+
: persistedInsight.insight.identifier;
|
|
84
|
+
if (originalInsightId && savedInsightId) {
|
|
85
|
+
savedInsights.push({ originalInsightId, savedInsightId });
|
|
86
|
+
}
|
|
75
87
|
}
|
|
88
|
+
return savedInsights;
|
|
76
89
|
}
|
|
77
90
|
async function draftInsightExistsOnBackend(ctx, draftInsight) {
|
|
78
91
|
const ref = insightRef(draftInsight);
|
|
@@ -431,9 +444,9 @@ export function* saveDashboardHandler(ctx, cmd) {
|
|
|
431
444
|
if (isInsightNotSavedDialogOpen) {
|
|
432
445
|
yield put(uiActions.closeInsightNotSavedDialog());
|
|
433
446
|
}
|
|
434
|
-
|
|
435
|
-
yield call(persistDraftInsights, ctx, cmd, draftInsightsToPersist)
|
|
436
|
-
|
|
447
|
+
const savedInsights = shouldPersistDraftInsights && draftInsightsToPersist.length > 0
|
|
448
|
+
? yield call(persistDraftInsights, ctx, cmd, draftInsightsToPersist)
|
|
449
|
+
: [];
|
|
437
450
|
const persistedDashboard = yield select(selectPersistedDashboard);
|
|
438
451
|
const isNewDashboard = persistedDashboard === undefined;
|
|
439
452
|
const isAiBuilder = ctx.config?.isAiMode;
|
|
@@ -470,7 +483,10 @@ export function* saveDashboardHandler(ctx, cmd) {
|
|
|
470
483
|
yield dispatchDashboardEvent(switchedEvent);
|
|
471
484
|
}
|
|
472
485
|
yield put(savingActions.setSavingSuccess());
|
|
473
|
-
return dashboardSaved(ctx, dashboard, created, cmd.correlationId
|
|
486
|
+
return dashboardSaved(ctx, dashboard, created, cmd.correlationId, {
|
|
487
|
+
...(isAiBuilder ? { originalDashboardId: saveCtx.dashboardFromState.identifier } : {}),
|
|
488
|
+
...(savedInsights.length > 0 ? { savedInsights } : {}),
|
|
489
|
+
});
|
|
474
490
|
}
|
|
475
491
|
catch (e) {
|
|
476
492
|
yield put(savingActions.setSavingError(e));
|
|
@@ -108,6 +108,22 @@ export type DashboardSavedPayload = {
|
|
|
108
108
|
* If false, an existing dashboard was updated.
|
|
109
109
|
*/
|
|
110
110
|
readonly newDashboard: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Identifier of the dashboard definition before it was persisted. This is present when an AI
|
|
113
|
+
* dashboard draft was saved and can differ from the identifier of dashboard.
|
|
114
|
+
*
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
readonly originalDashboardId?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Draft insights persisted as part of the dashboard save.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
readonly savedInsights?: ReadonlyArray<{
|
|
124
|
+
readonly originalInsightId: string;
|
|
125
|
+
readonly savedInsightId: string;
|
|
126
|
+
}>;
|
|
111
127
|
};
|
|
112
128
|
/**
|
|
113
129
|
* This event is emitted at the end of successful dashboard save command processing. At this point, the
|
|
@@ -119,7 +135,7 @@ export type DashboardSaved = IDashboardEvent & {
|
|
|
119
135
|
readonly type: "GDC.DASH/EVT.SAVED";
|
|
120
136
|
readonly payload: DashboardSavedPayload;
|
|
121
137
|
};
|
|
122
|
-
export declare function dashboardSaved(ctx: DashboardContext, dashboard: IDashboard, newDashboard: boolean, correlationId?: string): DashboardSaved;
|
|
138
|
+
export declare function dashboardSaved(ctx: DashboardContext, dashboard: IDashboard, newDashboard: boolean, correlationId?: string, savedObjects?: Pick<DashboardSavedPayload, "originalDashboardId" | "savedInsights">): DashboardSaved;
|
|
123
139
|
/**
|
|
124
140
|
* Tests whether the provided object is an instance of {@link DashboardSaved}.
|
|
125
141
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/model/events/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAOjD;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACtC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG;IACjD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,QAAQ,EAAE,QAAQ,EAAE,EACpB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,qBAAqB,EAClC,aAAa,CAAC,EAAE,MAAM,GACvB,oBAAoB,CAYtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,+CAA+D,CAAC;AAMnG;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG;IACxC;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACnD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;CACnD,CAAC;AAEF,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,CAAC,EAAE,MAAM,GACvB,sBAAsB,CASxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,iDAAmE,CAAC;AAMzG;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/model/events/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export function dashboardDeinitialized(ctx, dashboard, correlationId) {
|
|
|
37
37
|
* @public
|
|
38
38
|
*/
|
|
39
39
|
export const isDashboardDeinitialized = eventGuard("GDC.DASH/EVT.DEINITIALIZED");
|
|
40
|
-
export function dashboardSaved(ctx, dashboard, newDashboard, correlationId) {
|
|
40
|
+
export function dashboardSaved(ctx, dashboard, newDashboard, correlationId, savedObjects) {
|
|
41
41
|
return {
|
|
42
42
|
type: "GDC.DASH/EVT.SAVED",
|
|
43
43
|
ctx,
|
|
@@ -45,6 +45,7 @@ export function dashboardSaved(ctx, dashboard, newDashboard, correlationId) {
|
|
|
45
45
|
payload: {
|
|
46
46
|
dashboard,
|
|
47
47
|
newDashboard,
|
|
48
|
+
...savedObjects,
|
|
48
49
|
},
|
|
49
50
|
};
|
|
50
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationDateFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationDateFilter.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAE5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,mBAAmB,EAAoC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"AutomationDateFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationDateFilter.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAE5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,mBAAmB,EAAoC,MAAM,sBAAsB,CAAC;AAsGlG,wBAAgB,oBAAoB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACR,EAAE;IACC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,2CAoEA"}
|
package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.js
CHANGED
|
@@ -5,6 +5,7 @@ import { useIntl } from "react-intl";
|
|
|
5
5
|
import { areObjRefsEqual, } from "@gooddata/sdk-model";
|
|
6
6
|
import { UiChip, UiTooltip, useIdPrefixed } from "@gooddata/sdk-ui-kit";
|
|
7
7
|
import { DefaultDashboardDateFilter } from "../../../../filterBar/dateFilter/DefaultDashboardDateFilter.js";
|
|
8
|
+
import { useDateFilterConfigNarrowedToDimension } from "../../../../filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.js";
|
|
8
9
|
import { useAutomationsContext } from "../../../contexts/AutomationsContext.js";
|
|
9
10
|
import { AutomationDateFilterProvider, useAutomationDateFilterContext, } from "./AutomationDateFilterContext.js";
|
|
10
11
|
function AutomationDateFilterButton(props) {
|
|
@@ -64,11 +65,12 @@ export function AutomationDateFilter({ filter, onChange, onDelete, isLocked, isC
|
|
|
64
65
|
availableGranularities,
|
|
65
66
|
dateFilterOptions,
|
|
66
67
|
};
|
|
68
|
+
const dateFilterConfigNarrowedToDimension = useDateFilterConfigNarrowedToDimension(commonDateFilterComponentConfig, allDateDatasets, isCommonDateFilter ? undefined : filter.dateFilter.dataSet);
|
|
67
69
|
const defaultDateFilterName = allDateDatasets.find((ds) => areObjRefsEqual(ds.dataSet.ref, filter.dateFilter.dataSet))?.dataSet?.title;
|
|
68
70
|
const filterConfig = isCommonDateFilter
|
|
69
71
|
? commonDateFilterComponentConfig
|
|
70
72
|
: {
|
|
71
|
-
...
|
|
73
|
+
...dateFilterConfigNarrowedToDimension,
|
|
72
74
|
customFilterName: defaultDateFilterName,
|
|
73
75
|
};
|
|
74
76
|
return (_jsx(AutomationDateFilterProvider, { filter: filter, onDelete: onDelete, isLocked: isLocked, isCommonDateFilter: isCommonDateFilter, deleteAriaLabel: deleteAriaLabel, deleteTooltipContent: deleteTooltipContent, lockedTooltipContent: lockedTooltipContent, children: _jsx(DefaultDashboardDateFilter, { filter: filter, workingFilter: filter, onFilterChanged: handleFilterChanged, readonly: readonly || isLocked, config: filterConfig, overlayPositionType: overlayPositionType, ButtonComponent: AutomationDateFilterButton, tabId: tabId }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFiltersNamings.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/hooks/useFiltersNamings.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EAItB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"useFiltersNamings.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/hooks/useFiltersNamings.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EAItB,KAAK,MAAM,EAgBd,MAAM,qBAAqB,CAAC;AAqB7B,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA8PF,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAIrG;AAED,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,CAe9C"}
|
|
@@ -24,7 +24,7 @@ function isPercentageFormat(format) {
|
|
|
24
24
|
*/
|
|
25
25
|
function useFilterNamingDependencies(filtersForTitles) {
|
|
26
26
|
const intl = useIntl();
|
|
27
|
-
const { locale, settings, catalogMeasures: measures, separators,
|
|
27
|
+
const { locale, settings, catalogMeasures: measures, separators, getCatalogAttributeByRef, } = useAutomationsContext();
|
|
28
28
|
const dateFormat = settings?.formatLocale
|
|
29
29
|
? getLocalizedIcuDateFormatPattern(settings.formatLocale)
|
|
30
30
|
: settings?.responsiveUiDateFormat;
|
|
@@ -36,7 +36,6 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
36
36
|
intl,
|
|
37
37
|
locale,
|
|
38
38
|
dateFormat,
|
|
39
|
-
weekStart,
|
|
40
39
|
getAttributeFilterDisplayFormFromMap,
|
|
41
40
|
getCatalogAttributeByRef,
|
|
42
41
|
measures,
|
|
@@ -47,7 +46,6 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
47
46
|
intl,
|
|
48
47
|
locale,
|
|
49
48
|
dateFormat,
|
|
50
|
-
weekStart,
|
|
51
49
|
getAttributeFilterDisplayFormFromMap,
|
|
52
50
|
getCatalogAttributeByRef,
|
|
53
51
|
measures,
|
|
@@ -61,7 +59,7 @@ function useFilterNamingDependencies(filtersForTitles) {
|
|
|
61
59
|
* Extracted to avoid code duplication between useFiltersNamings and useFiltersByTabNamings.
|
|
62
60
|
*/
|
|
63
61
|
function transformFiltersToNamings(filtersToDisplay, deps) {
|
|
64
|
-
const { intl, dateFormat,
|
|
62
|
+
const { intl, dateFormat, getAttributeFilterDisplayFormFromMap, getCatalogAttributeByRef, measures, separators, commonDateFilterTitle, allDateFiltersTitlesObj, } = deps;
|
|
65
63
|
// we want to show all time filter in the list of filters even if it is not stored
|
|
66
64
|
const extendedFiltersToDisplay = ensureAllTimeFilterForExport(filtersToDisplay);
|
|
67
65
|
return extendedFiltersToDisplay.map((filter) => {
|
|
@@ -94,7 +92,7 @@ function transformFiltersToNamings(filtersToDisplay, deps) {
|
|
|
94
92
|
*/
|
|
95
93
|
const dateFilterOptionInfo = matchDateFilterToDateFilterOptionWithPreference(filter, convertDateFilterConfigToDateFilterOptions(defaultDateFilterConfig), undefined);
|
|
96
94
|
const dateFilterOption = DateFilterHelpers.applyExcludeCurrentPeriod(dateFilterOptionInfo.dateFilterOption, dateFilterOptionInfo.excludeCurrentPeriod);
|
|
97
|
-
const subtitle = DateFilterHelpers.getDateFilterTitleUsingTranslator(dateFilterOption, intl, "full", dateFormat
|
|
95
|
+
const subtitle = DateFilterHelpers.getDateFilterTitleUsingTranslator(dateFilterOption, intl, "full", dateFormat);
|
|
98
96
|
const a = filter;
|
|
99
97
|
if (isDashboardDateFilterWithDimension(a)) {
|
|
100
98
|
const key = serializeObjRef(a.dateFilter.dataSet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributeDataSet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAttributeDataSet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,UAAO;;;;EAmCxE"}
|
|
@@ -3,6 +3,7 @@ import { useEffect, useMemo } from "react";
|
|
|
3
3
|
import { queryAttributeDataSet, } from "../../../../../../model/queries/attributeDataSet.js";
|
|
4
4
|
import { useDashboardSelector } from "../../../../../../model/react/DashboardStoreProvider.js";
|
|
5
5
|
import { useDashboardQueryProcessing } from "../../../../../../model/react/useDashboardQueryProcessing.js";
|
|
6
|
+
import { selectIsAiMode } from "../../../../../../model/store/config/configSelectors.js";
|
|
6
7
|
import { selectIsNewDashboard } from "../../../../../../model/store/meta/metaSelectors.js";
|
|
7
8
|
import { selectPreloadedAttributesWithReferences } from "../../../../../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
8
9
|
/**
|
|
@@ -15,12 +16,13 @@ export function useAttributeDataSet(displayForm, loadQuery = true) {
|
|
|
15
16
|
// First wait for preloaded filter attributes, otherwise we might be spawning lot of unnecessary requests
|
|
16
17
|
const attributesWithReferences = useDashboardSelector(selectPreloadedAttributesWithReferences);
|
|
17
18
|
const isNewDashboard = useDashboardSelector(selectIsNewDashboard);
|
|
19
|
+
const isAiMode = useDashboardSelector(selectIsAiMode);
|
|
18
20
|
useEffect(() => {
|
|
19
|
-
const shouldLoad = isNewDashboard || attributesWithReferences;
|
|
21
|
+
const shouldLoad = isNewDashboard || isAiMode || attributesWithReferences;
|
|
20
22
|
if (loadQuery && shouldLoad) {
|
|
21
23
|
getAttributeDataSet(displayForm);
|
|
22
24
|
}
|
|
23
|
-
}, [displayForm, isNewDashboard, loadQuery, getAttributeDataSet, attributesWithReferences]);
|
|
25
|
+
}, [displayForm, isNewDashboard, isAiMode, loadQuery, getAttributeDataSet, attributesWithReferences]);
|
|
24
26
|
const attributesDataSetLoading = useMemo(() => {
|
|
25
27
|
return attributesDataSetLoadingStatus === "pending" || attributesDataSetLoadingStatus === "running";
|
|
26
28
|
}, [attributesDataSetLoadingStatus]);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type DateFilterGranularity, type ICatalogDateDataset, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IDateFilterOptionsByType } from "@gooddata/sdk-ui-filters";
|
|
3
|
+
/**
|
|
4
|
+
* Date filter granularities exposed by the date dimension the filter is bound to.
|
|
5
|
+
*
|
|
6
|
+
* Returns undefined when the filter is not bound to a dimension (the common date filter) or when the dimension
|
|
7
|
+
* is not in the catalog - in both cases the granularities must not be narrowed.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDateDimensionGranularities(dateDatasets: ICatalogDateDataset[], dataSetRef: ObjRef | undefined): DateFilterGranularity[] | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Keeps only the relative presets and the relative/absolute form granularities supported by the dimension.
|
|
12
|
+
* A stored filter whose granularity is dropped is reconstructed as a form and the date filter body moves it
|
|
13
|
+
* to the first available granularity once the form is opened.
|
|
14
|
+
*/
|
|
15
|
+
export declare function narrowDateFilterOptionsToGranularities(dateFilterOptions: IDateFilterOptionsByType, granularities: DateFilterGranularity[]): IDateFilterOptionsByType;
|
|
16
|
+
/**
|
|
17
|
+
* Keeps only the available granularities the dimension exposes, preserving their original order.
|
|
18
|
+
*/
|
|
19
|
+
export declare function narrowGranularities(availableGranularities: DateFilterGranularity[], granularities: DateFilterGranularity[]): DateFilterGranularity[];
|
|
20
|
+
//# sourceMappingURL=dateDimensionGranularities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateDimensionGranularities.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/dateFilter/dateDimensionGranularities.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,mBAAmB,EAAE,EACnC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,qBAAqB,EAAE,GAAG,SAAS,CAUrC;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAClD,iBAAiB,EAAE,wBAAwB,EAC3C,aAAa,EAAE,qBAAqB,EAAE,GACvC,wBAAwB,CA0B1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,sBAAsB,EAAE,qBAAqB,EAAE,EAC/C,aAAa,EAAE,qBAAqB,EAAE,GACvC,qBAAqB,EAAE,CAEzB"}
|