@gooddata/sdk-ui-dashboard 11.61.0 → 11.62.0-alpha.1

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.
Files changed (58) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.d.ts.map +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/_staging/sharedHooks/useAttributes.d.ts.map +1 -1
  5. package/esm/_staging/sharedHooks/useAttributes.js +4 -2
  6. package/esm/_staging/sharedHooks/useFiltersNamings.d.ts.map +1 -1
  7. package/esm/_staging/sharedHooks/useFiltersNamings.js +3 -5
  8. package/esm/kdaDialog/dialog/KdaDialog.d.ts.map +1 -1
  9. package/esm/kdaDialog/dialog/KdaDialog.js +0 -2
  10. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.d.ts.map +1 -1
  11. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.js +3 -1
  12. package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts.map +1 -1
  13. package/esm/presentation/automations/shared/hooks/useFiltersNamings.js +3 -5
  14. package/esm/presentation/constants/zIndex.js +1 -1
  15. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.d.ts.map +1 -1
  16. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAttributeDataSet.js +4 -2
  17. package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.d.ts +20 -0
  18. package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.d.ts.map +1 -0
  19. package/esm/presentation/filterBar/dateFilter/dateDimensionGranularities.js +47 -0
  20. package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.d.ts +11 -0
  21. package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.d.ts.map +1 -0
  22. package/esm/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.js +25 -0
  23. package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.d.ts.map +1 -1
  24. package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +4 -2
  25. package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts.map +1 -1
  26. package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +7 -2
  27. package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.d.ts +5 -0
  28. package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.d.ts.map +1 -0
  29. package/esm/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.js +10 -0
  30. package/esm/presentation/widget/dashboardLayout/DashboardLayout.d.ts.map +1 -1
  31. package/esm/presentation/widget/dashboardLayout/DashboardLayout.js +2 -1
  32. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.d.ts.map +1 -1
  33. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.js +0 -2
  34. package/package.json +21 -21
  35. package/styles/css/dashboard.css.map +1 -1
  36. package/styles/css/drillDialog.css +0 -5
  37. package/styles/css/drillDialog.css.map +1 -1
  38. package/styles/css/filterBar.css.map +1 -1
  39. package/styles/css/floatingToolbar.css.map +1 -1
  40. package/styles/css/kdaDialog.css +0 -5
  41. package/styles/css/kdaDialog.css.map +1 -1
  42. package/styles/css/kpi_alert_dialog.css.map +1 -1
  43. package/styles/css/layout.css.map +1 -1
  44. package/styles/css/main.css +12 -15
  45. package/styles/css/main.css.map +1 -1
  46. package/styles/css/notifications_channels_dialog.css.map +1 -1
  47. package/styles/css/resizing.css.map +1 -1
  48. package/styles/css/toolbar.css.map +1 -1
  49. package/styles/css/topBar.css.map +1 -1
  50. package/styles/scss/_zIndexes.scss +0 -1
  51. package/styles/scss/drillDialog.scss +0 -8
  52. package/styles/scss/kdaDialog.scss +0 -6
  53. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts +0 -2
  54. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts.map +0 -1
  55. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js +0 -11
  56. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.d.ts +0 -4
  57. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.d.ts.map +0 -1
  58. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/useDrillDialogTooltipsOverride.js +0 -26
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.61.0";
1
+ export declare const LIB_VERSION = "11.62.0-alpha.1";
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
@@ -1 +1 @@
1
- {"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,eAAe,uCAAuC,CAAC;AAEpE,eAAO,MAAM,QAAQ,+BAA+B,CAAC"}
1
+ {"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,eAAO,MAAM,eAAe,uCAAuC,CAAC;AAEpE,eAAO,MAAM,QAAQ,+BAA+B,CAAC"}
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.61.0";
3
+ export const LIB_VERSION = "11.62.0-alpha.1";
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;AAWjF;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE;;;;EAkCnD"}
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,EAkBd,MAAM,qBAAqB,CAAC;AA+B7B,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;AAiPF,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"}
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, selectWeekStart, } from "../../model/store/config/configSelectors.js";
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, weekStart, getAttributeFilterDisplayFormFromMap, attrMap, measures, separators, commonDateFilterTitle, allDateFiltersTitlesObj, } = deps;
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, weekStart);
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 +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;AAgBnD;;GAEG;AACH,wBAAgB,SAAS,CAAC,EACtB,SAAS,EACT,eAAsB,EACtB,uBAAuB,EACvB,OAAO,EACP,QAAQ,EACR,cAAc,GACjB,EAAE,eAAe,2CAiHjB"}
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":"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;AAqGlG,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,2CA8DA"}
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"}
@@ -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
- ...commonDateFilterComponentConfig,
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,EAiBd,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;AAoQF,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"}
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, weekStart, getCatalogAttributeByRef, } = useAutomationsContext();
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, weekStart, getAttributeFilterDisplayFormFromMap, getCatalogAttributeByRef, measures, separators, commonDateFilterTitle, allDateFiltersTitlesObj, } = deps;
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, weekStart);
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,4 +1,4 @@
1
- // (C) 2020-2025 GoodData Corporation
1
+ // (C) 2020-2026 GoodData Corporation
2
2
  // Z index of all overlays in Dashboard component
3
3
  export const DASHBOARD_OVERLAYS_Z_INDEX = 5000;
4
4
  // Z index of all overlays in Dashboard header component
@@ -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;AAW/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,UAAO;;;;EAkCxE"}
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"}
@@ -0,0 +1,47 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { areObjRefsEqual, isDateFilterGranularity, } from "@gooddata/sdk-model";
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 function getDateDimensionGranularities(dateDatasets, dataSetRef) {
10
+ if (!dataSetRef) {
11
+ return undefined;
12
+ }
13
+ const dateDataset = dateDatasets.find((ds) => areObjRefsEqual(ds.dataSet.ref, dataSetRef));
14
+ return dateDataset?.dateAttributes
15
+ .map((attribute) => attribute.granularity)
16
+ .filter(isDateFilterGranularity);
17
+ }
18
+ /**
19
+ * Keeps only the relative presets and the relative/absolute form granularities supported by the dimension.
20
+ * A stored filter whose granularity is dropped is reconstructed as a form and the date filter body moves it
21
+ * to the first available granularity once the form is opened.
22
+ */
23
+ export function narrowDateFilterOptionsToGranularities(dateFilterOptions, granularities) {
24
+ const { relativePreset, absoluteForm } = dateFilterOptions;
25
+ return {
26
+ ...dateFilterOptions,
27
+ ...(relativePreset
28
+ ? {
29
+ relativePreset: Object.fromEntries(Object.entries(relativePreset).filter(([granularity]) => granularities.includes(granularity))),
30
+ }
31
+ : {}),
32
+ ...(absoluteForm?.availableGranularities
33
+ ? {
34
+ absoluteForm: {
35
+ ...absoluteForm,
36
+ availableGranularities: narrowGranularities(absoluteForm.availableGranularities, granularities),
37
+ },
38
+ }
39
+ : {}),
40
+ };
41
+ }
42
+ /**
43
+ * Keeps only the available granularities the dimension exposes, preserving their original order.
44
+ */
45
+ export function narrowGranularities(availableGranularities, granularities) {
46
+ return availableGranularities.filter((granularity) => granularities.includes(granularity));
47
+ }
@@ -0,0 +1,11 @@
1
+ import { type ICatalogDateDataset, type ObjRef } from "@gooddata/sdk-model";
2
+ import { type IDashboardDateFilterConfig } from "./types.js";
3
+ /**
4
+ * Narrows the date filter config to the granularities exposed by the date dimension the filter is bound to,
5
+ * so the date filter component (default or custom) offers only presets and granularities the dimension has.
6
+ *
7
+ * The config is returned with the original granularities and options when there is no dimension (the common
8
+ * date filter) or the dimension is not in the catalog.
9
+ */
10
+ export declare function useDateFilterConfigNarrowedToDimension(config: IDashboardDateFilterConfig, dateDatasets: ICatalogDateDataset[], dataSetRef: ObjRef | undefined): IDashboardDateFilterConfig;
11
+ //# sourceMappingURL=useDateFilterConfigNarrowedToDimension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDateFilterConfigNarrowedToDimension.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/dateFilter/useDateFilterConfigNarrowedToDimension.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO5E,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,MAAM,EAAE,0BAA0B,EAClC,YAAY,EAAE,mBAAmB,EAAE,EACnC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,0BAA0B,CA6B5B"}
@@ -0,0 +1,25 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useMemo } from "react";
3
+ import { getDateDimensionGranularities, narrowDateFilterOptionsToGranularities, narrowGranularities, } from "./dateDimensionGranularities.js";
4
+ /**
5
+ * Narrows the date filter config to the granularities exposed by the date dimension the filter is bound to,
6
+ * so the date filter component (default or custom) offers only presets and granularities the dimension has.
7
+ *
8
+ * The config is returned with the original granularities and options when there is no dimension (the common
9
+ * date filter) or the dimension is not in the catalog.
10
+ */
11
+ export function useDateFilterConfigNarrowedToDimension(config, dateDatasets, dataSetRef) {
12
+ const { availableGranularities, dateFilterOptions } = config;
13
+ const dimensionGranularities = useMemo(() => getDateDimensionGranularities(dateDatasets, dataSetRef), [dateDatasets, dataSetRef]);
14
+ const narrowedOptions = useMemo(() => dimensionGranularities
15
+ ? narrowDateFilterOptionsToGranularities(dateFilterOptions, dimensionGranularities)
16
+ : dateFilterOptions, [dateFilterOptions, dimensionGranularities]);
17
+ const narrowedGranularities = useMemo(() => dimensionGranularities
18
+ ? narrowGranularities(availableGranularities, dimensionGranularities)
19
+ : availableGranularities, [availableGranularities, dimensionGranularities]);
20
+ return {
21
+ ...config,
22
+ availableGranularities: narrowedGranularities,
23
+ dateFilterOptions: narrowedOptions,
24
+ };
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultFilterBarItem.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAGH,KAAK,MAAM,EAQd,MAAM,qBAAqB,CAAC;AAmC7B,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAG/E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACH,KAAK,aAAa,EAKrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC3F,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAmN1E"}
1
+ {"version":3,"file":"DefaultFilterBarItem.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAGH,KAAK,MAAM,EAQd,MAAM,qBAAqB,CAAC;AAoC7B,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAG/E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACH,KAAK,aAAa,EAMrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC3F,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAwN1E"}
@@ -17,8 +17,9 @@ import { useDashboardComponentsContext } from "../../dashboardContexts/Dashboard
17
17
  import { DraggableAttributeFilter } from "../../dragAndDrop/draggableAttributeFilter/DraggableAttributeFilter.js";
18
18
  import { DraggableDateFilter } from "../../dragAndDrop/draggableDateFilter/DraggableDateFilter.js";
19
19
  import { DraggableMeasureValueFilter } from "../../dragAndDrop/draggableMeasureValueFilter/DraggableMeasureValueFilter.js";
20
+ import { useDateFilterConfigNarrowedToDimension } from "../dateFilter/useDateFilterConfigNarrowedToDimension.js";
20
21
  import { DefaultDashboardFilterGroup } from "./DefaultDashboardFilterGroup.js";
21
- import { isFilterBarAttributeFilter, isFilterBarFilterGroupItem, isFilterBarFilterPlaceholder, isFilterBarMeasureValueFilter, } from "./useFiltersWithAddedPlaceholder.js";
22
+ import { isFilterBarAttributeFilter, isFilterBarDateFilterWithDimension, isFilterBarFilterGroupItem, isFilterBarFilterPlaceholder, isFilterBarMeasureValueFilter, } from "./useFiltersWithAddedPlaceholder.js";
22
23
  /**
23
24
  * @alpha
24
25
  */
@@ -45,6 +46,7 @@ export function DefaultFilterBarItem(props) {
45
46
  availableGranularities,
46
47
  dateFilterOptions,
47
48
  };
49
+ const dateFilterConfigNarrowedToDimension = useDateFilterConfigNarrowedToDimension(commonDateFilterComponentConfig, allDateDatasets, isFilterBarDateFilterWithDimension(item) ? item.filter.dateFilter.dataSet : undefined);
48
50
  if (isFilterBarFilterPlaceholder(item)) {
49
51
  const CreatingPlaceholderComponent = AttributeFilterComponentSet.creating.CreatingPlaceholderComponent;
50
52
  return (_jsx(CreatingPlaceholderComponent, { onClose: closeAttributeSelection, onSelect: selectDraggableFilter, attributes: attributes, dateDatasets: allDateDatasets, measures: measures }, item.filterIndex));
@@ -117,7 +119,7 @@ export function DefaultFilterBarItem(props) {
117
119
  }
118
120
  const defaultDateFilterName = allDateDatasets.find((ds) => areObjRefsEqual(ds.dataSet.ref, filter.dateFilter.dataSet))?.dataSet?.title;
119
121
  return (_jsx(DraggableDateFilter, { autoOpen: areObjRefsEqual(item.filter.dateFilter.dataSet, autoOpenFilter), filter: filter, workingFilter: isApplyAllAtOnceEnabledAndSet ? workingFilter : undefined, filterIndex: filterIndex, config: {
120
- ...commonDateFilterComponentConfig,
122
+ ...dateFilterConfigNarrowedToDimension,
121
123
  customFilterName: defaultDateFilterName,
122
124
  }, readonly: dateFilterMode === DashboardDateFilterConfigModeValues.READONLY, FilterComponent: CustomDateFilterComponent, onDateFilterChanged: onDateFilterChanged, onDateFilterAdded: addDraggableFilterPlaceholder, onDateFilterClose: onCloseAttributeFilter }, objRefToString(item.filter.dateFilter.dataSet)));
123
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterViews.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViews.tsx"],"names":[],"mappings":"AAkHA,wBAAgB,WAAW,mDA6G1B"}
1
+ {"version":3,"file":"FilterViews.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViews.tsx"],"names":[],"mappings":"AAmHA,wBAAgB,WAAW,mDAkH1B"}
@@ -7,7 +7,7 @@ import { v4 as uuid } from "uuid";
7
7
  import { UiButton, UiReturnFocusOnUnmount, useIdPrefixed, useMediaQuery, } from "@gooddata/sdk-ui-kit";
8
8
  import { useDashboardDispatch, useDashboardSelector, } from "../../../../model/react/DashboardStoreProvider.js";
9
9
  import { useDashboardUserInteraction } from "../../../../model/react/useDashboardUserInteraction.js";
10
- import { selectIsApplyFiltersAllAtOnceEnabledAndSet, selectIsReadOnly, } from "../../../../model/store/config/configSelectors.js";
10
+ import { selectIsAiMode, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectIsReadOnly, } from "../../../../model/store/config/configSelectors.js";
11
11
  import { selectFilterViews } from "../../../../model/store/filterViews/filterViewsReducersSelectors.js";
12
12
  import { selectDisableFilterViews, selectIsNewDashboard, } from "../../../../model/store/meta/metaSelectors.js";
13
13
  import { selectCanCreateFilterView } from "../../../../model/store/permissions/permissionsSelectors.js";
@@ -68,6 +68,7 @@ export function FilterViews() {
68
68
  const filterViews = useDashboardSelector(selectFilterViews);
69
69
  const isFilterViewsEnabledForDashboard = !useDashboardSelector(selectDisableFilterViews);
70
70
  const isNewDashboard = useDashboardSelector(selectIsNewDashboard);
71
+ const isAiMode = useDashboardSelector(selectIsAiMode);
71
72
  const canCreateFilterView = useDashboardSelector(selectCanCreateFilterView);
72
73
  const isMobile = useMediaQuery("mobileDevice");
73
74
  const isApplyAllAtOnceEnabledAndSet = useDashboardSelector(selectIsApplyFiltersAllAtOnceEnabledAndSet);
@@ -82,7 +83,11 @@ export function FilterViews() {
82
83
  // The dropdown body must still be rendered so the body can be opened when user uses the menu.
83
84
  // Also, the menu is not available for new dashboard as new filter view can be saved only for an existing
84
85
  // dashboard with ref id.
85
- const showDropdownButton = isFilterViewsEnabledForDashboard && isUserPermittedToSeeDropdown && !isNewDashboard && !isMobile;
86
+ const showDropdownButton = isFilterViewsEnabledForDashboard &&
87
+ isUserPermittedToSeeDropdown &&
88
+ !isNewDashboard &&
89
+ !isAiMode &&
90
+ !isMobile;
86
91
  // generate unique anchor class name to open dropdown next to the correct button if app uses multiple
87
92
  // dashboard components
88
93
  const dropdownAnchorClassName = useMemo(() => `gd-filter-views__dropdown-anchor-${uuid()}`, []);
@@ -0,0 +1,5 @@
1
+ import { type ReactNode } from "react";
2
+ export declare function DashboardCanvasOverlayZIndex({ children }: {
3
+ children: ReactNode;
4
+ }): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
5
+ //# sourceMappingURL=DashboardCanvasOverlayZIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardCanvasOverlayZIndex.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/dashboardLayout/DashboardCanvasOverlayZIndex.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,wBAAgB,4BAA4B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2UAUjF"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { OverlayZIndexContext, useContainingOverlayZIndex } from "@gooddata/sdk-ui-kit";
3
+ import { DASHBOARD_OVERLAYS_FILTER_Z_INDEX } from "../../constants/zIndex.js";
4
+ export function DashboardCanvasOverlayZIndex({ children }) {
5
+ const containingOverlayZIndex = useContainingOverlayZIndex();
6
+ if (containingOverlayZIndex !== undefined) {
7
+ return children;
8
+ }
9
+ return (_jsx(OverlayZIndexContext.Provider, { value: DASHBOARD_OVERLAYS_FILTER_Z_INDEX, children: children }));
10
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardLayout.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/dashboardLayout/DashboardLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAI1E"}
1
+ {"version":3,"file":"DashboardLayout.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/dashboardLayout/DashboardLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAQ1E"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
3
+ import { DashboardCanvasOverlayZIndex } from "./DashboardCanvasOverlayZIndex.js";
3
4
  /**
4
5
  * @internal
5
6
  */
6
7
  export function DashboardLayout(props) {
7
8
  const { LayoutComponent } = useDashboardComponentsContext();
8
- return _jsx(LayoutComponent, { ...props });
9
+ return (_jsx(DashboardCanvasOverlayZIndex, { children: _jsx(LayoutComponent, { ...props }) }));
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InsightDrillDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAyB,MAAM,OAAO,CAAC;AAKrF,OAAO,EAEH,KAAK,QAAQ,EACb,KAAK,cAAc,EAMtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAwBvE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAgB7G;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,sBAAsB,EAAE,OAAO,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAmCD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CA+MhF"}
1
+ {"version":3,"file":"InsightDrillDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAyB,MAAM,OAAO,CAAC;AAKrF,OAAO,EAEH,KAAK,QAAQ,EACb,KAAK,cAAc,EAMtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAwBvE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAe7G;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,sBAAsB,EAAE,OAAO,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAmCD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CA6MhF"}
@@ -22,7 +22,6 @@ import { InsightWidgetWarningPartialResult } from "../../../widget/warningPartia
22
22
  import { DrillDialog } from "./DrillDialog.js";
23
23
  import { DrillDialogInsight } from "./DrillDialogInsight.js";
24
24
  import { getTitleWithBreadcrumbs } from "./getTitleWithBreadcrumbs.js";
25
- import { useDrillDialogTooltipsOverride } from "./useDrillDialogTooltipsOverride.js";
26
25
  // Header z-index start at 6000 so we need force all overlays z-indexes start at 6000 to be above header
27
26
  const overlayController = OverlayController.getInstance(DASHBOARD_HEADER_OVERLAYS_Z_INDEX);
28
27
  const overlayIgnoredClasses = [
@@ -54,7 +53,6 @@ const getInsightWidgetDescription = (descriptionConfig, widget, insight) => {
54
53
  export function InsightDrillDialog(props) {
55
54
  const { widget, locale, breadcrumbs, insight, enableDrillDescription, drillStep, returnFocusToInsight, onClose, onBackButtonClick, onDrillDown, onDrillStart, } = props;
56
55
  const isMobileDevice = useMediaQuery("mobileDevice");
57
- useDrillDialogTooltipsOverride();
58
56
  const [isLoading, setIsLoading] = useState(false);
59
57
  const executionsHandler = useWidgetExecutionsHandler(DRILL_MODAL_EXECUTION_PSEUDO_REF);
60
58
  const { ErrorComponent, LoadingComponent } = useDashboardComponentsContext({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-dashboard",
3
- "version": "11.61.0",
3
+ "version": "11.62.0-alpha.1",
4
4
  "description": "GoodData SDK - Dashboard Component",
5
5
  "license": "LicenseRef-LICENSE",
6
6
  "author": "GoodData Corporation",
@@ -60,20 +60,20 @@
60
60
  "ts-invariant": "0.10.3",
61
61
  "tslib": "2.8.1",
62
62
  "uuid": "11.1.1",
63
- "@gooddata/sdk-backend-base": "11.61.0",
64
- "@gooddata/sdk-backend-spi": "11.61.0",
65
- "@gooddata/sdk-model": "11.61.0",
66
- "@gooddata/sdk-ui": "11.61.0",
67
- "@gooddata/sdk-ui-charts": "11.61.0",
68
- "@gooddata/sdk-ui-ext": "11.61.0",
69
- "@gooddata/sdk-ui-filters": "11.61.0",
70
- "@gooddata/sdk-ui-geo": "11.61.0",
71
- "@gooddata/sdk-ui-kit": "11.61.0",
72
- "@gooddata/sdk-ui-pivot": "11.61.0",
73
- "@gooddata/sdk-ui-semantic-search": "11.61.0",
74
- "@gooddata/sdk-ui-theme-provider": "11.61.0",
75
- "@gooddata/sdk-ui-vis-commons": "11.61.0",
76
- "@gooddata/util": "11.61.0"
63
+ "@gooddata/sdk-backend-base": "11.62.0-alpha.1",
64
+ "@gooddata/sdk-backend-spi": "11.62.0-alpha.1",
65
+ "@gooddata/sdk-model": "11.62.0-alpha.1",
66
+ "@gooddata/sdk-ui": "11.62.0-alpha.1",
67
+ "@gooddata/sdk-ui-charts": "11.62.0-alpha.1",
68
+ "@gooddata/sdk-ui-ext": "11.62.0-alpha.1",
69
+ "@gooddata/sdk-ui-filters": "11.62.0-alpha.1",
70
+ "@gooddata/sdk-ui-geo": "11.62.0-alpha.1",
71
+ "@gooddata/sdk-ui-pivot": "11.62.0-alpha.1",
72
+ "@gooddata/sdk-ui-semantic-search": "11.62.0-alpha.1",
73
+ "@gooddata/sdk-ui-kit": "11.62.0-alpha.1",
74
+ "@gooddata/sdk-ui-theme-provider": "11.62.0-alpha.1",
75
+ "@gooddata/util": "11.62.0-alpha.1",
76
+ "@gooddata/sdk-ui-vis-commons": "11.62.0-alpha.1"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@microsoft/api-documenter": "7.30.16",
@@ -115,12 +115,12 @@
115
115
  "typescript": "7.0.2",
116
116
  "vitest": "4.1.11",
117
117
  "vitest-dom": "0.1.1",
118
- "@gooddata/i18n-toolkit": "11.61.0",
119
- "@gooddata/eslint-config": "11.61.0",
120
- "@gooddata/sdk-backend-mockingbird": "11.61.0",
121
- "@gooddata/oxlint-config": "11.61.0",
122
- "@gooddata/reference-workspace": "11.61.0",
123
- "@gooddata/stylelint-config": "11.61.0"
118
+ "@gooddata/i18n-toolkit": "11.62.0-alpha.1",
119
+ "@gooddata/eslint-config": "11.62.0-alpha.1",
120
+ "@gooddata/oxlint-config": "11.62.0-alpha.1",
121
+ "@gooddata/sdk-backend-mockingbird": "11.62.0-alpha.1",
122
+ "@gooddata/reference-workspace": "11.62.0-alpha.1",
123
+ "@gooddata/stylelint-config": "11.62.0-alpha.1"
124
124
  },
125
125
  "peerDependencies": {
126
126
  "react": "^18.0.0 || ^19.0.0",