@gooddata/sdk-ui-dashboard 11.26.0-alpha.1 → 11.26.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.
Files changed (116) hide show
  1. package/NOTICE +6 -6
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/_staging/drills/drillingUtils.d.ts +2 -2
  5. package/esm/_staging/drills/drillingUtils.d.ts.map +1 -1
  6. package/esm/_staging/drills/drillingUtils.js.map +1 -1
  7. package/esm/model/commandHandlers/drill/common/sourceDrillFilters.d.ts +7 -0
  8. package/esm/model/commandHandlers/drill/common/sourceDrillFilters.d.ts.map +1 -0
  9. package/esm/model/commandHandlers/drill/common/sourceDrillFilters.js +33 -0
  10. package/esm/model/commandHandlers/drill/common/sourceDrillFilters.js.map +1 -0
  11. package/esm/model/commandHandlers/drill/drillToDashboardHandler.d.ts.map +1 -1
  12. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +23 -5
  13. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js.map +1 -1
  14. package/esm/model/commandHandlers/drill/drillToInsightUtils.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/drill/drillToInsightUtils.js +6 -18
  16. package/esm/model/commandHandlers/drill/drillToInsightUtils.js.map +1 -1
  17. package/esm/model/commandHandlers/widgets/validation/insightDrillDefinitionUtils.d.ts.map +1 -1
  18. package/esm/model/commandHandlers/widgets/validation/insightDrillDefinitionUtils.js +25 -28
  19. package/esm/model/commandHandlers/widgets/validation/insightDrillDefinitionUtils.js.map +1 -1
  20. package/esm/model/utils/filterContextUtils.d.ts +10 -0
  21. package/esm/model/utils/filterContextUtils.d.ts.map +1 -0
  22. package/esm/model/utils/filterContextUtils.js +29 -0
  23. package/esm/model/utils/filterContextUtils.js.map +1 -0
  24. package/esm/presentation/drill/types.d.ts +1 -1
  25. package/esm/presentation/drill/types.d.ts.map +1 -1
  26. package/esm/presentation/drill/types.js.map +1 -1
  27. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +24 -0
  28. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  29. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +24 -0
  30. package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
  31. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  32. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +9 -2
  33. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js.map +1 -1
  34. package/esm/presentation/widget/common/useInsightExport.d.ts.map +1 -1
  35. package/esm/presentation/widget/common/useInsightExport.js +8 -3
  36. package/esm/presentation/widget/common/useInsightExport.js.map +1 -1
  37. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfig.d.ts.map +1 -1
  38. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfig.js +2 -2
  39. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfig.js.map +1 -1
  40. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigInner.d.ts +1 -2
  41. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigInner.d.ts.map +1 -1
  42. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigInner.js +5 -14
  43. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigInner.js.map +1 -1
  44. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigSection.d.ts.map +1 -1
  45. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigSection.js +5 -5
  46. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersConfigSection.js.map +1 -1
  47. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersTrigger.d.ts +8 -0
  48. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersTrigger.d.ts.map +1 -0
  49. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersTrigger.js +7 -0
  50. package/esm/presentation/widget/insight/configuration/DrillFilters/DrillFiltersTrigger.js.map +1 -0
  51. package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.d.ts +24 -0
  52. package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.d.ts.map +1 -0
  53. package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.js +93 -0
  54. package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.js.map +1 -0
  55. package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts +15 -12
  56. package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts.map +1 -1
  57. package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.js +46 -7
  58. package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.js.map +1 -1
  59. package/esm/presentation/widget/insight/configuration/DrillFilters/messages.d.ts +51 -0
  60. package/esm/presentation/widget/insight/configuration/DrillFilters/messages.d.ts.map +1 -0
  61. package/esm/presentation/widget/insight/configuration/DrillFilters/messages.js +53 -0
  62. package/esm/presentation/widget/insight/configuration/DrillFilters/messages.js.map +1 -0
  63. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.d.ts +26 -0
  64. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.d.ts.map +1 -0
  65. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.js +62 -0
  66. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.js.map +1 -0
  67. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.d.ts +17 -0
  68. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.d.ts.map +1 -0
  69. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.js +15 -0
  70. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.js.map +1 -0
  71. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.d.ts +24 -0
  72. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.d.ts.map +1 -0
  73. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.js +82 -0
  74. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.js.map +1 -0
  75. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.d.ts +21 -0
  76. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.d.ts.map +1 -0
  77. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.js +45 -0
  78. package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.js.map +1 -0
  79. package/esm/presentation/widget/insight/configuration/DrillFilters/types.d.ts +6 -0
  80. package/esm/presentation/widget/insight/configuration/DrillFilters/types.d.ts.map +1 -1
  81. package/esm/presentation/widget/insight/configuration/DrillFilters/types.js +3 -1
  82. package/esm/presentation/widget/insight/configuration/DrillFilters/types.js.map +1 -1
  83. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.d.ts +3 -2
  84. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.d.ts.map +1 -1
  85. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.js +90 -191
  86. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.js.map +1 -1
  87. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfigInner.d.ts +1 -2
  88. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfigInner.d.ts.map +1 -1
  89. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfigInner.js +2 -5
  90. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfigInner.js.map +1 -1
  91. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersCount.d.ts +5 -1
  92. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersCount.d.ts.map +1 -1
  93. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersCount.js +19 -6
  94. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersCount.js.map +1 -1
  95. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersSubview.d.ts.map +1 -1
  96. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersSubview.js +3 -6
  97. package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersSubview.js.map +1 -1
  98. package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.d.ts +11 -0
  99. package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.d.ts.map +1 -0
  100. package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.js +66 -0
  101. package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.js.map +1 -0
  102. package/esm/presentation/widget/insight/configuration/InsightDrillConfigItem.d.ts.map +1 -1
  103. package/esm/presentation/widget/insight/configuration/InsightDrillConfigItem.js +3 -3
  104. package/esm/presentation/widget/insight/configuration/InsightDrillConfigItem.js.map +1 -1
  105. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/drillConfigMapper.d.ts.map +1 -1
  106. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/drillConfigMapper.js +3 -0
  107. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/drillConfigMapper.js.map +1 -1
  108. package/esm/presentation/widget/insight/configuration/InsightInteractions.d.ts.map +1 -1
  109. package/esm/presentation/widget/insight/configuration/InsightInteractions.js +2 -1
  110. package/esm/presentation/widget/insight/configuration/InsightInteractions.js.map +1 -1
  111. package/package.json +20 -20
  112. package/styles/css/drillConfigPanel.css +8 -0
  113. package/styles/css/drillConfigPanel.css.map +1 -1
  114. package/styles/css/main.css +8 -0
  115. package/styles/css/main.css.map +1 -1
  116. package/styles/scss/drillConfigPanel.scss +10 -1
@@ -0,0 +1,53 @@
1
+ // (C) 2020-2026 GoodData Corporation
2
+ import { defineMessages } from "react-intl";
3
+ export const messages = defineMessages({
4
+ commonDateFilterTitle: {
5
+ id: "dateFilterDropdown.title",
6
+ },
7
+ drillFiltersDashboardSectionTitle: {
8
+ id: "configurationPanel.drillConfig.filterSelection.section.dashboard",
9
+ },
10
+ drillFiltersDrilledDataPointSectionTitle: {
11
+ id: "configurationPanel.drillConfig.filterSelection.section.drilledDataPoint",
12
+ },
13
+ drillFiltersMetricSectionTitle: {
14
+ id: "configurationPanel.drillConfig.filterSelection.section.metric",
15
+ },
16
+ drillFiltersSubviewTitle: {
17
+ id: "configurationPanel.drillConfig.filterSelection.subview.title",
18
+ },
19
+ drillFiltersSubviewTooltip: {
20
+ id: "configurationPanel.drillConfig.filterSelection.subview.tooltip",
21
+ },
22
+ drillFiltersVisualizationSectionTitle: {
23
+ id: "configurationPanel.drillConfig.filterSelection.section.visualization",
24
+ },
25
+ drillDownDashboardFilterTooltip: {
26
+ id: "configurationPanel.drillConfig.filterSelection.drillDownDashboardFilter.tooltip",
27
+ },
28
+ drillDownInsightFilterTooltip: {
29
+ id: "configurationPanel.drillConfig.filterSelection.drillDownInsightFilter.tooltip",
30
+ },
31
+ rankingFilterTooltip: {
32
+ id: "configurationPanel.drillConfig.filterSelection.rankingFilter.tooltip",
33
+ },
34
+ drillToDashboardDateIntersectionTooltip: {
35
+ id: "configurationPanel.drillConfig.filterSelection.drillToDashboardDateIntersection.tooltip",
36
+ },
37
+ drillToDashboardDashboardFilterTooltip: {
38
+ id: "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip",
39
+ },
40
+ drillToDashboardMetricFilterTooltip: {
41
+ id: "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip",
42
+ },
43
+ drillToDashboardRankingFilterTooltip: {
44
+ id: "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip",
45
+ },
46
+ rankingFilterPreviewTopWithoutAttributePlain: {
47
+ id: "rankingFilter.preview.top_without_attribute_plain",
48
+ },
49
+ rankingFilterPreviewBottomWithoutAttributePlain: {
50
+ id: "rankingFilter.preview.bottom_without_attribute_plain",
51
+ },
52
+ });
53
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/messages.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;IACnC,qBAAqB,EAAE;QACnB,EAAE,EAAE,0BAA0B;KACjC;IACD,iCAAiC,EAAE;QAC/B,EAAE,EAAE,kEAAkE;KACzE;IACD,wCAAwC,EAAE;QACtC,EAAE,EAAE,yEAAyE;KAChF;IACD,8BAA8B,EAAE;QAC5B,EAAE,EAAE,+DAA+D;KACtE;IACD,wBAAwB,EAAE;QACtB,EAAE,EAAE,8DAA8D;KACrE;IACD,0BAA0B,EAAE;QACxB,EAAE,EAAE,gEAAgE;KACvE;IACD,qCAAqC,EAAE;QACnC,EAAE,EAAE,sEAAsE;KAC7E;IACD,+BAA+B,EAAE;QAC7B,EAAE,EAAE,iFAAiF;KACxF;IACD,6BAA6B,EAAE;QAC3B,EAAE,EAAE,+EAA+E;KACtF;IACD,oBAAoB,EAAE;QAClB,EAAE,EAAE,sEAAsE;KAC7E;IACD,uCAAuC,EAAE;QACrC,EAAE,EAAE,yFAAyF;KAChG;IACD,sCAAsC,EAAE;QACpC,EAAE,EAAE,wFAAwF;KAC/F;IACD,mCAAmC,EAAE;QACjC,EAAE,EAAE,qFAAqF;KAC5F;IACD,oCAAoC,EAAE;QAClC,EAAE,EAAE,sFAAsF;KAC7F;IACD,4CAA4C,EAAE;QAC1C,EAAE,EAAE,mDAAmD;KAC1D;IACD,+CAA+C,EAAE;QAC7C,EAAE,EAAE,sDAAsD;KAC7D;CACJ,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type IntlShape } from "react-intl";
2
+ import { type FilterContextItem, type IAttributeDisplayFormMetadataObject, type IDashboardAttributeFilter, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type ObjRef } from "@gooddata/sdk-model";
3
+ import { type ObjRefMap } from "../../../../../../_staging/metadata/objRefMap.js";
4
+ import { type IDrillFiltersConfigOption } from "../types.js";
5
+ interface IMapDashboardFilterToOptionParams {
6
+ dashboardFilter: FilterContextItem;
7
+ allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
8
+ allCatalogDateDatasets: Array<{
9
+ dataSet: {
10
+ ref: ObjRef;
11
+ title?: string;
12
+ };
13
+ }>;
14
+ dateFilterConfigOverride: IDashboardDateFilterConfig | undefined;
15
+ allDateFilterConfigsOverrides: IDashboardDateFilterConfigItem[];
16
+ sourceDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[];
17
+ targetDashboardFilters: FilterContextItem[];
18
+ targetDashboardAttributeFilters: IDashboardAttributeFilter[];
19
+ targetDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[];
20
+ isDrillDown: boolean;
21
+ isDrillToDashboard: boolean;
22
+ intl: IntlShape;
23
+ }
24
+ export declare function mapDashboardFilterToOption({ dashboardFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, dateFilterConfigOverride, allDateFilterConfigsOverrides, sourceDashboardAttributeFilterConfigs, targetDashboardFilters, targetDashboardAttributeFilters, targetDashboardAttributeFilterConfigs, isDrillDown, isDrillToDashboard, intl }: IMapDashboardFilterToOptionParams): IDrillFiltersConfigOption | undefined;
25
+ export {};
26
+ //# sourceMappingURL=mapDashboardFilterToOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapDashboardFilterToOption.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAUlF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,UAAU,iCAAiC;IACvC,eAAe,EAAE,iBAAiB,CAAC;IACnC,yBAAyB,EAAE,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC1E,sBAAsB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC5E,wBAAwB,EAAE,0BAA0B,GAAG,SAAS,CAAC;IACjE,6BAA6B,EAAE,8BAA8B,EAAE,CAAC;IAChE,qCAAqC,EAAE,+BAA+B,EAAE,CAAC;IACzE,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,+BAA+B,EAAE,yBAAyB,EAAE,CAAC;IAC7D,qCAAqC,EAAE,+BAA+B,EAAE,CAAC;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,0BAA0B,CAAC,EACvC,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,sBAAsB,EACtB,+BAA+B,EAC/B,qCAAqC,EACrC,WAAW,EACX,kBAAkB,EAClB,IAAI,EACP,EAAE,iCAAiC,GAAG,yBAAyB,GAAG,SAAS,CA2F3E"}
@@ -0,0 +1,62 @@
1
+ // (C) 2020-2026 GoodData Corporation
2
+ import { isDashboardAttributeFilter, isDashboardDateFilter, } from "@gooddata/sdk-model";
3
+ import { getDashboardDateFilterCustomTitle, getDateDatasetTitle, getDisabledOptionProps, getDisplayFormTitle, hasMatchingTargetDashboardAttributeFilter, hasMatchingTargetDashboardDateFilter, } from "../drillFiltersConfigUtils.js";
4
+ import { messages } from "../messages.js";
5
+ export function mapDashboardFilterToOption({ dashboardFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, dateFilterConfigOverride, allDateFilterConfigsOverrides, sourceDashboardAttributeFilterConfigs, targetDashboardFilters, targetDashboardAttributeFilters, targetDashboardAttributeFilterConfigs, isDrillDown, isDrillToDashboard, intl, }) {
6
+ const disabled = getDisabledOptionProps(isDrillDown, intl.formatMessage(messages.drillDownDashboardFilterTooltip), true);
7
+ if (isDashboardAttributeFilter(dashboardFilter)) {
8
+ const displayFormRef = dashboardFilter.attributeFilter.displayForm;
9
+ const localIdentifier = dashboardFilter.attributeFilter.localIdentifier;
10
+ const customTitle = dashboardFilter.attributeFilter.title;
11
+ if (!localIdentifier) {
12
+ return undefined;
13
+ }
14
+ // In case of drill to dashboard, we need to check if the attribute filter is available
15
+ // on the target dashboard. Otherwise disable the option.
16
+ const hasMatchingTargetAttributeFilter = hasMatchingTargetDashboardAttributeFilter(dashboardFilter, sourceDashboardAttributeFilterConfigs, targetDashboardAttributeFilters, targetDashboardAttributeFilterConfigs, allCatalogDisplayFormsMap);
17
+ return {
18
+ id: localIdentifier,
19
+ title: customTitle ??
20
+ getDisplayFormTitle({
21
+ displayFormRef,
22
+ allCatalogDisplayFormsMap,
23
+ }),
24
+ ...disabled,
25
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetAttributeFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
26
+ };
27
+ }
28
+ if (isDashboardDateFilter(dashboardFilter)) {
29
+ const localIdentifier = dashboardFilter.dateFilter.localIdentifier;
30
+ if (!localIdentifier) {
31
+ return undefined;
32
+ }
33
+ const datasetRef = dashboardFilter.dateFilter.dataSet;
34
+ // common date filter
35
+ if (!datasetRef) {
36
+ return {
37
+ id: localIdentifier,
38
+ title: dateFilterConfigOverride?.filterName ??
39
+ intl.formatMessage(messages.commonDateFilterTitle),
40
+ ...disabled,
41
+ };
42
+ }
43
+ // date filter with dimension
44
+ const customTitle = getDashboardDateFilterCustomTitle({
45
+ datasetRef,
46
+ allDateFilterConfigsOverrides,
47
+ });
48
+ const hasMatchingTargetDateFilter = hasMatchingTargetDashboardDateFilter(datasetRef, targetDashboardFilters);
49
+ return {
50
+ id: localIdentifier,
51
+ title: customTitle ??
52
+ getDateDatasetTitle({
53
+ datasetRef,
54
+ allCatalogDateDatasets,
55
+ }),
56
+ ...disabled,
57
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetDateFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
58
+ };
59
+ }
60
+ return undefined;
61
+ }
62
+ //# sourceMappingURL=mapDashboardFilterToOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapDashboardFilterToOption.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAIrC,OAAO,EAQH,0BAA0B,EAC1B,qBAAqB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACH,iCAAiC,EACjC,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yCAAyC,EACzC,oCAAoC,GACvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkB1C,MAAM,UAAU,0BAA0B,CAAC,EACvC,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,sBAAsB,EACtB,+BAA+B,EAC/B,qCAAqC,EACrC,WAAW,EACX,kBAAkB,EAClB,IAAI,GAC4B,EAAyC;IACzE,MAAM,QAAQ,GAAG,sBAAsB,CACnC,WAAW,EACX,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAC5D,IAAI,CACP,CAAC;IAEF,IAAI,0BAA0B,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC;QACnE,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,eAAe,CAAC;QACxE,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC;QAE1D,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,uFAAuF;QACvF,yDAAyD;QACzD,MAAM,gCAAgC,GAAG,yCAAyC,CAC9E,eAAe,EACf,qCAAqC,EACrC,+BAA+B,EAC/B,qCAAqC,EACrC,yBAAyB,CAC5B,CAAC;QAEF,OAAO;YACH,EAAE,EAAE,eAAe;YACnB,KAAK,EACD,WAAW;gBACX,mBAAmB,CAAC;oBAChB,cAAc;oBACd,yBAAyB;iBAC5B,CAAC;YACN,GAAG,QAAQ;YACX,GAAG,sBAAsB,CACrB,kBAAkB,IAAI,CAAC,gCAAgC,EACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EACnE,KAAK,CACR;SACJ,CAAC;IACN,CAAC;IAED,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC;QAEnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;QAEtD,qBAAqB;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;gBACH,EAAE,EAAE,eAAe;gBACnB,KAAK,EACD,wBAAwB,EAAE,UAAU;oBACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACtD,GAAG,QAAQ;aACd,CAAC;QACN,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,iCAAiC,CAAC;YAClD,UAAU;YACV,6BAA6B;SAChC,CAAC,CAAC;QACH,MAAM,2BAA2B,GAAG,oCAAoC,CACpE,UAAU,EACV,sBAAsB,CACzB,CAAC;QAEF,OAAO;YACH,EAAE,EAAE,eAAe;YACnB,KAAK,EACD,WAAW;gBACX,mBAAmB,CAAC;oBAChB,UAAU;oBACV,sBAAsB;iBACzB,CAAC;YACN,GAAG,QAAQ;YACX,GAAG,sBAAsB,CACrB,kBAAkB,IAAI,CAAC,2BAA2B,EAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EACnE,KAAK,CACR;SACJ,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AAAA,CACpB"}
@@ -0,0 +1,17 @@
1
+ import { type IntlShape } from "react-intl";
2
+ import { type IAttributeDisplayFormMetadataObject, type ObjRef, type bucketsAttributes } from "@gooddata/sdk-model";
3
+ import { type ObjRefMap } from "../../../../../../_staging/metadata/objRefMap.js";
4
+ import { type IDrillFiltersConfigOption } from "../types.js";
5
+ interface IMapIntersectionAttributeToOptionParams {
6
+ insightAttribute: ReturnType<typeof bucketsAttributes>[number];
7
+ allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
8
+ allCatalogDateAttributeDisplayForms: Array<{
9
+ ref: ObjRef;
10
+ title?: string;
11
+ }>;
12
+ isDrillToDashboard: boolean;
13
+ intl: IntlShape;
14
+ }
15
+ export declare function mapIntersectionAttributeToOption({ insightAttribute, allCatalogDisplayFormsMap, allCatalogDateAttributeDisplayForms, isDrillToDashboard, intl }: IMapIntersectionAttributeToOptionParams): IDrillFiltersConfigOption;
16
+ export {};
17
+ //# sourceMappingURL=mapIntersectionAttributeToOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapIntersectionAttributeToOption.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,MAAM,EACX,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAOlF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,UAAU,uCAAuC;IAC7C,gBAAgB,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,yBAAyB,EAAE,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC1E,mCAAmC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,gCAAgC,CAAC,EAC7C,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,kBAAkB,EAClB,IAAI,EACP,EAAE,uCAAuC,GAAG,yBAAyB,CAkBrE"}
@@ -0,0 +1,15 @@
1
+ // (C) 2020-2026 GoodData Corporation
2
+ import { getDisabledOptionProps, getDisplayFormTitle, isDateIntersectionAttribute, } from "../drillFiltersConfigUtils.js";
3
+ import { messages } from "../messages.js";
4
+ export function mapIntersectionAttributeToOption({ insightAttribute, allCatalogDisplayFormsMap, allCatalogDateAttributeDisplayForms, isDrillToDashboard, intl, }) {
5
+ const isDateAttribute = isDateIntersectionAttribute(insightAttribute.attribute.displayForm, allCatalogDateAttributeDisplayForms);
6
+ return {
7
+ id: insightAttribute.attribute.localIdentifier,
8
+ title: getDisplayFormTitle({
9
+ displayFormRef: insightAttribute.attribute.displayForm,
10
+ allCatalogDisplayFormsMap,
11
+ }),
12
+ ...getDisabledOptionProps(isDrillToDashboard && isDateAttribute, intl.formatMessage(messages.drillToDashboardDateIntersectionTooltip), false),
13
+ };
14
+ }
15
+ //# sourceMappingURL=mapIntersectionAttributeToOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapIntersectionAttributeToOption.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapIntersectionAttributeToOption.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAWrC,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW1C,MAAM,UAAU,gCAAgC,CAAC,EAC7C,gBAAgB,EAChB,yBAAyB,EACzB,mCAAmC,EACnC,kBAAkB,EAClB,IAAI,GACkC,EAA6B;IACnE,MAAM,eAAe,GAAG,2BAA2B,CAC/C,gBAAgB,CAAC,SAAS,CAAC,WAAW,EACtC,mCAAmC,CACtC,CAAC;IAEF,OAAO;QACH,EAAE,EAAE,gBAAgB,CAAC,SAAS,CAAC,eAAe;QAC9C,KAAK,EAAE,mBAAmB,CAAC;YACvB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAC,WAAW;YACtD,yBAAyB;SAC5B,CAAC;QACF,GAAG,sBAAsB,CACrB,kBAAkB,IAAI,eAAe,EACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EACpE,KAAK,CACR;KACJ,CAAC;AAAA,CACL"}
@@ -0,0 +1,24 @@
1
+ import { type IntlShape } from "react-intl";
2
+ import { type FilterContextItem, type IAttributeDisplayFormMetadataObject, type ICatalogMeasure, type IDashboardAttributeFilter, type IFilter, type IMeasure, type ObjRef } from "@gooddata/sdk-model";
3
+ import { type ObjRefMap } from "../../../../../../_staging/metadata/objRefMap.js";
4
+ import { type IDrillFiltersConfigOption } from "../types.js";
5
+ interface IMapSourceInsightFilterToOptionParams {
6
+ sourceInsightFilter: IFilter;
7
+ allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
8
+ allCatalogDateDatasets: Array<{
9
+ dataSet: {
10
+ ref: ObjRef;
11
+ title?: string;
12
+ };
13
+ }>;
14
+ sourceInsightMeasures: IMeasure[];
15
+ allCatalogMeasures: ICatalogMeasure[];
16
+ targetDashboardFilters: FilterContextItem[];
17
+ targetDashboardAttributeFilters: IDashboardAttributeFilter[];
18
+ isDrillDown: boolean;
19
+ isDrillToDashboard: boolean;
20
+ intl: IntlShape;
21
+ }
22
+ export declare function mapSourceInsightFilterToOption({ sourceInsightFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, sourceInsightMeasures, allCatalogMeasures, targetDashboardFilters, targetDashboardAttributeFilters, isDrillDown, isDrillToDashboard, intl }: IMapSourceInsightFilterToOptionParams): IDrillFiltersConfigOption | undefined;
23
+ export {};
24
+ //# sourceMappingURL=mapSourceInsightFilterToOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSourceInsightFilterToOption.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACxC,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAWlF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,UAAU,qCAAqC;IAC3C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,yBAAyB,EAAE,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC1E,sBAAsB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC5E,qBAAqB,EAAE,QAAQ,EAAE,CAAC;IAClC,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,+BAA+B,EAAE,yBAAyB,EAAE,CAAC;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,8BAA8B,CAAC,EAC3C,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,kBAAkB,EAClB,IAAI,EACP,EAAE,qCAAqC,GAAG,yBAAyB,GAAG,SAAS,CA4H/E"}
@@ -0,0 +1,82 @@
1
+ // (C) 2020-2026 GoodData Corporation
2
+ import { isLocalIdRef, isRankingFilter, } from "@gooddata/sdk-model";
3
+ import { sourceInsightFilterObjRef as getSourceInsightFilterObjRef } from "../../../../../../_staging/drills/drillingUtils.js";
4
+ import { getDateDatasetTitle, getDisabledOptionProps, getDisplayFormTitle, getMeasureTitleFromSourceInsightMeasures, hasMatchingTargetDashboardAttributeFilterDisplayForm, hasMatchingTargetDashboardDateFilter, sourceFilterOptionId, } from "../drillFiltersConfigUtils.js";
5
+ import { messages } from "../messages.js";
6
+ export function mapSourceInsightFilterToOption({ sourceInsightFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, sourceInsightMeasures, allCatalogMeasures, targetDashboardFilters, targetDashboardAttributeFilters, isDrillDown, isDrillToDashboard, intl, }) {
7
+ const sourceFilterObjRef = getSourceInsightFilterObjRef(sourceInsightFilter);
8
+ if (!sourceFilterObjRef) {
9
+ return undefined;
10
+ }
11
+ const disabled = getDisabledOptionProps(isDrillDown, intl.formatMessage(messages.drillDownInsightFilterTooltip), true);
12
+ const rankingFilterDisabled = isDrillDown
13
+ ? disabled
14
+ : getDisabledOptionProps(true, isDrillToDashboard
15
+ ? intl.formatMessage(messages.drillToDashboardRankingFilterTooltip)
16
+ : intl.formatMessage(messages.rankingFilterTooltip), false);
17
+ if (sourceFilterObjRef.type === "attributeFilter") {
18
+ const displayFormRef = sourceFilterObjRef.label;
19
+ if (isLocalIdRef(displayFormRef)) {
20
+ return undefined;
21
+ }
22
+ const hasMatchingTargetAttributeFilter = hasMatchingTargetDashboardAttributeFilterDisplayForm(displayFormRef, targetDashboardAttributeFilters);
23
+ return {
24
+ id: sourceFilterOptionId(sourceFilterObjRef),
25
+ title: getDisplayFormTitle({
26
+ displayFormRef,
27
+ allCatalogDisplayFormsMap,
28
+ }),
29
+ ...disabled,
30
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetAttributeFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
31
+ sourceInsightFilterObjRef: sourceFilterObjRef,
32
+ };
33
+ }
34
+ if (sourceFilterObjRef.type === "dateFilter") {
35
+ const dateDatasetRef = sourceFilterObjRef.dataSet;
36
+ if (isLocalIdRef(dateDatasetRef)) {
37
+ return undefined;
38
+ }
39
+ const hasMatchingTargetDateFilter = hasMatchingTargetDashboardDateFilter(dateDatasetRef, targetDashboardFilters);
40
+ return {
41
+ id: sourceFilterOptionId(sourceFilterObjRef),
42
+ title: getDateDatasetTitle({
43
+ datasetRef: dateDatasetRef,
44
+ allCatalogDateDatasets,
45
+ }),
46
+ ...disabled,
47
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetDateFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
48
+ sourceInsightFilterObjRef: sourceFilterObjRef,
49
+ };
50
+ }
51
+ if (sourceFilterObjRef.type === "measureValueFilter") {
52
+ const measureRef = sourceFilterObjRef.measure;
53
+ const measureTitleFromInsight = getMeasureTitleFromSourceInsightMeasures(sourceInsightMeasures, measureRef, allCatalogMeasures);
54
+ return {
55
+ id: sourceFilterOptionId(sourceFilterObjRef),
56
+ title: measureTitleFromInsight ?? "",
57
+ ...(isDrillToDashboard
58
+ ? getDisabledOptionProps(true, intl.formatMessage(messages.drillToDashboardMetricFilterTooltip), false)
59
+ : disabled),
60
+ sourceInsightFilterObjRef: sourceFilterObjRef,
61
+ };
62
+ }
63
+ if (sourceFilterObjRef.type === "rankingFilter" && isRankingFilter(sourceInsightFilter)) {
64
+ const measureRef = sourceFilterObjRef.measure;
65
+ const measureTitleFromInsight = getMeasureTitleFromSourceInsightMeasures(sourceInsightMeasures, measureRef, allCatalogMeasures);
66
+ const rankingPreviewMessage = sourceInsightFilter.rankingFilter.operator === "TOP"
67
+ ? messages.rankingFilterPreviewTopWithoutAttributePlain
68
+ : messages.rankingFilterPreviewBottomWithoutAttributePlain;
69
+ const title = intl.formatMessage(rankingPreviewMessage, {
70
+ value: sourceInsightFilter.rankingFilter.value,
71
+ measure: measureTitleFromInsight ?? "",
72
+ });
73
+ return {
74
+ id: sourceFilterOptionId(sourceFilterObjRef),
75
+ title,
76
+ ...rankingFilterDisabled,
77
+ sourceInsightFilterObjRef: sourceFilterObjRef,
78
+ };
79
+ }
80
+ return undefined;
81
+ }
82
+ //# sourceMappingURL=mapSourceInsightFilterToOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSourceInsightFilterToOption.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type IntlShape } from "react-intl";
2
+ import { type FilterContextItem, type IAttributeDisplayFormMetadataObject, type IDashboardAttributeFilter, type IFilter, type ObjRef } from "@gooddata/sdk-model";
3
+ import { type ObjRefMap } from "../../../../../../_staging/metadata/objRefMap.js";
4
+ import { type IDrillFiltersConfigOption } from "../types.js";
5
+ interface IMapSourceMeasureFilterToOptionParams {
6
+ sourceMeasureFilter: IFilter;
7
+ allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
8
+ allCatalogDateDatasets: Array<{
9
+ dataSet: {
10
+ ref: ObjRef;
11
+ title?: string;
12
+ };
13
+ }>;
14
+ targetDashboardFilters: FilterContextItem[];
15
+ targetDashboardAttributeFilters: IDashboardAttributeFilter[];
16
+ isDrillToDashboard: boolean;
17
+ intl: IntlShape;
18
+ }
19
+ export declare function mapSourceMeasureFilterToOption({ sourceMeasureFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, targetDashboardFilters, targetDashboardAttributeFilters, isDrillToDashboard, intl }: IMapSourceMeasureFilterToOptionParams): IDrillFiltersConfigOption | undefined;
20
+ export {};
21
+ //# sourceMappingURL=mapSourceMeasureFilterToOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSourceMeasureFilterToOption.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,OAAO,EACZ,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAUlF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,UAAU,qCAAqC;IAC3C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,yBAAyB,EAAE,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC1E,sBAAsB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC5E,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,+BAA+B,EAAE,yBAAyB,EAAE,CAAC;IAC7D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,8BAA8B,CAAC,EAC3C,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,IAAI,EACP,EAAE,qCAAqC,GAAG,yBAAyB,GAAG,SAAS,CA2D/E"}
@@ -0,0 +1,45 @@
1
+ // (C) 2020-2026 GoodData Corporation
2
+ import { isLocalIdRef, } from "@gooddata/sdk-model";
3
+ import { sourceInsightFilterObjRef as getSourceInsightFilterObjRef } from "../../../../../../_staging/drills/drillingUtils.js";
4
+ import { getDateDatasetTitle, getDisabledOptionProps, getDisplayFormTitle, hasMatchingTargetDashboardAttributeFilterDisplayForm, hasMatchingTargetDashboardDateFilter, sourceFilterOptionId, } from "../drillFiltersConfigUtils.js";
5
+ import { messages } from "../messages.js";
6
+ export function mapSourceMeasureFilterToOption({ sourceMeasureFilter, allCatalogDisplayFormsMap, allCatalogDateDatasets, targetDashboardFilters, targetDashboardAttributeFilters, isDrillToDashboard, intl, }) {
7
+ const sourceFilterObjRef = getSourceInsightFilterObjRef(sourceMeasureFilter);
8
+ if (!sourceFilterObjRef) {
9
+ return undefined;
10
+ }
11
+ if (sourceFilterObjRef.type === "attributeFilter") {
12
+ const displayFormRef = sourceFilterObjRef.label;
13
+ if (isLocalIdRef(displayFormRef)) {
14
+ return undefined;
15
+ }
16
+ const hasMatchingTargetAttributeFilter = hasMatchingTargetDashboardAttributeFilterDisplayForm(displayFormRef, targetDashboardAttributeFilters);
17
+ return {
18
+ id: sourceFilterOptionId(sourceFilterObjRef),
19
+ title: getDisplayFormTitle({
20
+ displayFormRef,
21
+ allCatalogDisplayFormsMap,
22
+ }),
23
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetAttributeFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
24
+ sourceMeasureFilterObjRef: sourceFilterObjRef,
25
+ };
26
+ }
27
+ if (sourceFilterObjRef.type === "dateFilter") {
28
+ const dateDatasetRef = sourceFilterObjRef.dataSet;
29
+ if (isLocalIdRef(dateDatasetRef)) {
30
+ return undefined;
31
+ }
32
+ const hasMatchingTargetDateFilter = hasMatchingTargetDashboardDateFilter(dateDatasetRef, targetDashboardFilters);
33
+ return {
34
+ id: sourceFilterOptionId(sourceFilterObjRef),
35
+ title: getDateDatasetTitle({
36
+ datasetRef: dateDatasetRef,
37
+ allCatalogDateDatasets,
38
+ }),
39
+ ...getDisabledOptionProps(isDrillToDashboard && !hasMatchingTargetDateFilter, intl.formatMessage(messages.drillToDashboardDashboardFilterTooltip), false),
40
+ sourceMeasureFilterObjRef: sourceFilterObjRef,
41
+ };
42
+ }
43
+ return undefined;
44
+ }
45
+ //# sourceMappingURL=mapSourceMeasureFilterToOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSourceMeasureFilterToOption.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAIrC,OAAO,EAOH,YAAY,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,yBAAyB,IAAI,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAE/H,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,oDAAoD,EACpD,oCAAoC,EACpC,oBAAoB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa1C,MAAM,UAAU,8BAA8B,CAAC,EAC3C,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,IAAI,GACgC,EAAyC;IAC7E,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAChD,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,gCAAgC,GAAG,oDAAoD,CACzF,cAAc,EACd,+BAA+B,CAClC,CAAC;QAEF,OAAO;YACH,EAAE,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;YAC5C,KAAK,EAAE,mBAAmB,CAAC;gBACvB,cAAc;gBACd,yBAAyB;aAC5B,CAAC;YACF,GAAG,sBAAsB,CACrB,kBAAkB,IAAI,CAAC,gCAAgC,EACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EACnE,KAAK,CACR;YACD,yBAAyB,EAAE,kBAA+C;SAC7E,CAAC;IACN,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC;QAElD,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,2BAA2B,GAAG,oCAAoC,CACpE,cAAc,EACd,sBAAsB,CACzB,CAAC;QAEF,OAAO;YACH,EAAE,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;YAC5C,KAAK,EAAE,mBAAmB,CAAC;gBACvB,UAAU,EAAE,cAAc;gBAC1B,sBAAsB;aACzB,CAAC;YACF,GAAG,sBAAsB,CACrB,kBAAkB,IAAI,CAAC,2BAA2B,EAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EACnE,KAAK,CACR;YACD,yBAAyB,EAAE,kBAA+C;SAC7E,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AAAA,CACpB"}
@@ -1,8 +1,14 @@
1
1
  import { type SourceInsightFilterObjRef, type SourceMeasureFilterObjRef } from "@gooddata/sdk-model";
2
+ export interface IDrillFiltersConfigOptionDisabled {
3
+ message: string;
4
+ selected: boolean;
5
+ }
2
6
  export interface IDrillFiltersConfigOption {
3
7
  id: string;
4
8
  title: string;
9
+ disabled?: IDrillFiltersConfigOptionDisabled;
5
10
  sourceInsightFilterObjRef?: SourceInsightFilterObjRef;
6
11
  sourceMeasureFilterObjRef?: SourceMeasureFilterObjRef;
7
12
  }
13
+ export declare function isDrillFiltersConfigOptionSelected(option: IDrillFiltersConfigOption, selectedIds: string[]): boolean;
8
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;CACzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,WAAW,iCAAiC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,iCAAiC,CAAC;IAC7C,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED,wBAAgB,kCAAkC,CAC9C,MAAM,EAAE,yBAAyB,EACjC,WAAW,EAAE,MAAM,EAAE,GACtB,OAAO,CAET"}
@@ -1,3 +1,5 @@
1
1
  // (C) 2020-2026 GoodData Corporation
2
- export {};
2
+ export function isDrillFiltersConfigOptionSelected(option, selectedIds) {
3
+ return option.disabled?.selected ?? selectedIds.includes(option.id);
4
+ }
3
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/types.ts"],"names":[],"mappings":"AAAA,qCAAqC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAiBrC,MAAM,UAAU,kCAAkC,CAC9C,MAAiC,EACjC,WAAqB,EACd;IACP,OAAO,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAAA,CACvE"}
@@ -1,4 +1,4 @@
1
- import { type InsightDrillDefinition, type SourceMeasureFilterObjRef } from "@gooddata/sdk-model";
1
+ import { type InsightDrillDefinition } from "@gooddata/sdk-model";
2
2
  import { type IDrillFiltersConfigOption } from "./types.js";
3
3
  import { type IDrillConfigItem, type IDrillDownAttributeHierarchyDefinition } from "../../../../drill/types.js";
4
4
  interface IUseDrillFiltersConfigParams {
@@ -6,6 +6,7 @@ interface IUseDrillFiltersConfigParams {
6
6
  onUpdateDrillItem: (drill: InsightDrillDefinition | IDrillDownAttributeHierarchyDefinition, changedItem: IDrillConfigItem) => void;
7
7
  }
8
8
  export declare function useDrillFiltersConfig({ item, onUpdateDrillItem }: IUseDrillFiltersConfigParams): {
9
+ isLoading: boolean;
9
10
  supportsExtendedFiltersConfig: boolean;
10
11
  intersectionAttributesOptions: IDrillFiltersConfigOption[];
11
12
  sourceInsightFiltersOptions: IDrillFiltersConfigOption[];
@@ -14,7 +15,7 @@ export declare function useDrillFiltersConfig({ item, onUpdateDrillItem }: IUseD
14
15
  drillIntersectionIgnoredAttributes: string[];
15
16
  includedSourceInsightFiltersObjRefs: import("@gooddata/sdk-model").SourceInsightFilterObjRef[];
16
17
  ignoredDashboardFilters: string[];
17
- includedSourceMeasureFiltersObjRefs: SourceMeasureFilterObjRef[];
18
+ includedSourceMeasureFiltersObjRefs: import("@gooddata/sdk-model").SourceMeasureFilterObjRef[];
18
19
  onDrillFiltersChange: (selection: Partial<import("../../../../drill/types.js").IDrillFiltersConfigExtended & {
19
20
  drillIntersectionIgnoredAttributes: string[];
20
21
  }>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useDrillFiltersConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EASH,KAAK,sBAAsB,EAE3B,KAAK,yBAAyB,EAUjC,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAc5D,OAAO,EAEH,KAAK,gBAAgB,EAErB,KAAK,sCAAsC,EAG9C,MAAM,4BAA4B,CAAC;AAEpC,UAAU,4BAA4B;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,iBAAiB,EAAE,CACf,KAAK,EAAE,sBAAsB,GAAG,sCAAsC,EACtE,WAAW,EAAE,gBAAgB,KAC5B,IAAI,CAAC;CACb;AAgPD,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,4BAA4B;;;;;;;;;;;;;EAgO9F"}
1
+ {"version":3,"file":"useDrillFiltersConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAGH,KAAK,sBAAsB,EAO9B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAe5D,OAAO,EAEH,KAAK,gBAAgB,EAErB,KAAK,sCAAsC,EAK9C,MAAM,4BAA4B,CAAC;AAEpC,UAAU,4BAA4B;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,iBAAiB,EAAE,CACf,KAAK,EAAE,sBAAsB,GAAG,sCAAsC,EACtE,WAAW,EAAE,gBAAgB,KAC5B,IAAI,CAAC;CACb;AAED,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,4BAA4B;;;;;;;;;;;;;;EAuR9F"}