@gooddata/sdk-ui-dashboard 11.27.0 → 11.28.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 (94) hide show
  1. package/NOTICE +16 -3
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.d.ts.map +1 -1
  4. package/esm/__version.js +1 -1
  5. package/esm/__version.js.map +1 -1
  6. package/esm/index.d.ts +1 -1
  7. package/esm/index.d.ts.map +1 -1
  8. package/esm/index.js +1 -1
  9. package/esm/index.js.map +1 -1
  10. package/esm/model/commandHandlers/dashboard/changeAttributeFilterSelectionTypeHandler.d.ts +5 -0
  11. package/esm/model/commandHandlers/dashboard/changeAttributeFilterSelectionTypeHandler.d.ts.map +1 -0
  12. package/esm/model/commandHandlers/dashboard/changeAttributeFilterSelectionTypeHandler.js +20 -0
  13. package/esm/model/commandHandlers/dashboard/changeAttributeFilterSelectionTypeHandler.js.map +1 -0
  14. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js +6 -1
  16. package/esm/model/commandHandlers/filterContext/attributeFilter/addAttributeFilterHandler.js.map +1 -1
  17. package/esm/model/commandHandlers/index.d.ts.map +1 -1
  18. package/esm/model/commandHandlers/index.js +2 -0
  19. package/esm/model/commandHandlers/index.js.map +1 -1
  20. package/esm/model/commands/base.d.ts +1 -1
  21. package/esm/model/commands/base.d.ts.map +1 -1
  22. package/esm/model/commands/dashboard.d.ts +33 -1
  23. package/esm/model/commands/dashboard.d.ts.map +1 -1
  24. package/esm/model/commands/dashboard.js +17 -0
  25. package/esm/model/commands/dashboard.js.map +1 -1
  26. package/esm/model/commands/index.d.ts +2 -2
  27. package/esm/model/commands/index.d.ts.map +1 -1
  28. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts +5 -1
  29. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.d.ts.map +1 -1
  30. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.js +27 -0
  31. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsReducers.js.map +1 -1
  32. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.d.ts +17 -1
  33. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.d.ts.map +1 -1
  34. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js +30 -0
  35. package/esm/model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js.map +1 -1
  36. package/esm/model/store/tabs/index.d.ts +4 -0
  37. package/esm/model/store/tabs/index.d.ts.map +1 -1
  38. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.d.ts +5 -4
  39. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.d.ts.map +1 -1
  40. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.js +93 -2
  41. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.js.map +1 -1
  42. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts.map +1 -1
  43. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +55 -107
  44. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js.map +1 -1
  45. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.d.ts +11 -1
  46. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.d.ts.map +1 -1
  47. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.js +21 -4
  48. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.js.map +1 -1
  49. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.d.ts +9 -0
  50. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.d.ts.map +1 -0
  51. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.js +42 -0
  52. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.js.map +1 -0
  53. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.d.ts +2 -1
  54. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.d.ts.map +1 -1
  55. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.js +3 -3
  56. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.js.map +1 -1
  57. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.d.ts +2 -1
  58. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.d.ts.map +1 -1
  59. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.js +7 -9
  60. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.js.map +1 -1
  61. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.d.ts +17 -0
  62. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.d.ts.map +1 -0
  63. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.js +40 -0
  64. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.js.map +1 -0
  65. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.d.ts +8 -0
  66. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.d.ts.map +1 -0
  67. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.js +13 -0
  68. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.js.map +1 -0
  69. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.d.ts +13 -0
  70. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.d.ts.map +1 -0
  71. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.js +17 -0
  72. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.js.map +1 -0
  73. package/esm/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.d.ts +13 -0
  74. package/esm/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.d.ts.map +1 -0
  75. package/esm/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.js +34 -0
  76. package/esm/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.js.map +1 -0
  77. package/esm/presentation/filterBar/attributeFilter/useAttributeFilterConfigTexts.d.ts +26 -0
  78. package/esm/presentation/filterBar/attributeFilter/useAttributeFilterConfigTexts.d.ts.map +1 -0
  79. package/esm/presentation/filterBar/attributeFilter/useAttributeFilterConfigTexts.js +67 -0
  80. package/esm/presentation/filterBar/attributeFilter/useAttributeFilterConfigTexts.js.map +1 -0
  81. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +36 -0
  82. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  83. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +36 -0
  84. package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
  85. package/esm/presentation/widget/common/useInsightExport.d.ts.map +1 -1
  86. package/esm/presentation/widget/common/useInsightExport.js +0 -2
  87. package/esm/presentation/widget/common/useInsightExport.js.map +1 -1
  88. package/esm/sdk-ui-dashboard.d.ts +42 -2
  89. package/package.json +20 -20
  90. package/styles/css/attributeFilterConfig.css +37 -0
  91. package/styles/css/attributeFilterConfig.css.map +1 -1
  92. package/styles/css/main.css +95 -36
  93. package/styles/css/main.css.map +1 -1
  94. package/styles/scss/attributeFilterConfig.scss +44 -0
@@ -1,6 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2022-2026 GoodData Corporation
3
- import { useCallback, useEffect, useMemo } from "react";
3
+ import { useCallback, useEffect, useMemo, useRef } from "react";
4
4
  import { invariant } from "ts-invariant";
5
5
  import { DashboardAttributeFilterConfigModeValues, dashboardAttributeFilterItemDisplayForm, dashboardAttributeFilterItemLocalIdentifier, isDashboardAttributeFilter, } from "@gooddata/sdk-model";
6
6
  import { LoadingSpinner } from "@gooddata/sdk-ui-kit";
@@ -14,6 +14,7 @@ import { useValidNeighbourAttributes } from "./hooks/useValidNeighbourAttributes
14
14
  import { LocalizedLimitValuesConfiguration } from "./limitValues/LimitValuesConfiguration.js";
15
15
  import { ParentFiltersList } from "./parentFilters/ParentFiltersList.js";
16
16
  import { SelectionMode } from "./selectionMode/SelectionMode.js";
17
+ import { SelectionType } from "./selectionType/SelectionType.js";
17
18
  import { useAttributes } from "../../../../../_staging/sharedHooks/useAttributes.js";
18
19
  import { useMetricsAndFacts } from "../../../../../_staging/sharedHooks/useMetricsAndFacts.js";
19
20
  import { useDashboardSelector } from "../../../../../model/react/DashboardStoreProvider.js";
@@ -22,7 +23,7 @@ import { selectFilterContextAttributeFilterItems, selectOtherContextAttributeFil
22
23
  import { ConfigModeSelect } from "../../../configuration/ConfigurationModeSelect.js";
23
24
  import { AttributeTitleRenaming } from "../../../configuration/title/AttributeTitleRenaming.js";
24
25
  import { useAttributeFilterParentFiltering } from "../../AttributeFilterParentFilteringContext.js";
25
- export function AttributeFilterConfiguration({ filterRef, filterByText, displayValuesAsText, titleText, resetTitleText, selectionTitleText, multiSelectionOptionText, singleSelectionOptionText, singleSelectionDisabledTooltip, parentFiltersDisabledTooltip, closeHandler, intl, modeCategoryTitleText, showConfigModeSection, }) {
26
+ export function AttributeFilterConfiguration({ filterRef, filterByText, displayValuesAsText, titleText, resetTitleText, selectionTitleText, multiSelectionOptionText, multiSelectionOptionTooltip, singleSelectionOptionText, singleSelectionDisabledTooltip, parentFiltersDisabledTooltip, closeHandler, intl, modeCategoryTitleText, showConfigModeSection, showSelectionTypeSection, selectionTypeAsText, selectionTypeListAndTextText, selectionTypeListAndTextTooltip, selectionTypeListText, selectionTypeListTooltip, selectionTypeTextText, selectionTypeTextTooltip, selectionTypeSingleDisabledTooltip, }) {
26
27
  const theme = useTheme();
27
28
  useEffect(() => {
28
29
  return () => {
@@ -41,7 +42,7 @@ export function AttributeFilterConfiguration({ filterRef, filterByText, displayV
41
42
  const currentFilterItem = useDashboardSelector(selectFilterContextAttributeFilterItems).find((filter) => neighborFilters.every((neighborFilter) => dashboardAttributeFilterItemLocalIdentifier(filter) !==
42
43
  dashboardAttributeFilterItemLocalIdentifier(neighborFilter)));
43
44
  invariant(currentFilterItem, "Cannot find current filter in the filter context store.");
44
- const { title, defaultAttributeFilterTitle, parents, onParentSelect, onConnectingAttributeChanged, showDisplayFormPicker, filterDisplayForms, onDisplayFormSelect, showResetTitle, onTitleUpdate, onTitleReset, selectionMode, onSelectionModeUpdate, mode, onModeUpdate, limitingItems, onLimitingItemsUpdate, availableDatasetsForFilter, dependentDateFilters, dependentCommonDateFilter, onDependentDateFiltersSelect, } = useAttributeFilterParentFiltering();
45
+ const { title, defaultAttributeFilterTitle, parents, onParentSelect, onConnectingAttributeChanged, showDisplayFormPicker, filterDisplayForms, onDisplayFormSelect, showResetTitle, onTitleUpdate, onTitleReset, selectionMode, onSelectionModeUpdate, mode, onModeUpdate, selectionType, onSelectionTypeUpdate, limitingItems, onLimitingItemsUpdate, availableDatasetsForFilter, dependentDateFilters, dependentCommonDateFilter, onDependentDateFiltersSelect, } = useAttributeFilterParentFiltering();
45
46
  const disableParentFiltersList = selectionMode === "single" && !supportsSingleSelectDependentFilters;
46
47
  const { connectingAttributesLoading, connectingAttributes } = useConnectingAttributes(dashboardAttributeFilterItemDisplayForm(currentFilterItem), neighborFilterDisplayForms);
47
48
  const { availableDatasetsForItemsLoading, availableDatasetForItems } = useAvailableDatasetsForItems(availableDatasetsForFilter);
@@ -54,6 +55,22 @@ export function AttributeFilterConfiguration({ filterRef, filterByText, displayV
54
55
  }
55
56
  return parents.filter((parent) => parent.isSelected).length > 0;
56
57
  }, [parents, supportsSingleSelectDependentFilters]);
58
+ /** Preserves selection type across a temporary switch to single mode (single mode forces "list"). */
59
+ const selectionTypeBeforeSingleModeRef = useRef(null);
60
+ const handleSelectionModeChange = useCallback((value) => {
61
+ onSelectionModeUpdate(value);
62
+ if (value === "single") {
63
+ selectionTypeBeforeSingleModeRef.current = selectionType;
64
+ onSelectionTypeUpdate("list");
65
+ }
66
+ else if (value === "multi") {
67
+ const previousSelectionType = selectionTypeBeforeSingleModeRef.current;
68
+ selectionTypeBeforeSingleModeRef.current = null;
69
+ if (previousSelectionType !== null) {
70
+ onSelectionTypeUpdate(previousSelectionType);
71
+ }
72
+ }
73
+ }, [onSelectionModeUpdate, onSelectionTypeUpdate, selectionType]);
57
74
  if (connectingAttributesLoading ||
58
75
  attributesLoading ||
59
76
  validNeighbourAttributesLoading ||
@@ -72,7 +89,7 @@ export function AttributeFilterConfiguration({ filterRef, filterByText, displayV
72
89
  onModeUpdate(value);
73
90
  };
74
91
  return (_jsxs("div", { className: "s-attribute-filter-dropdown-configuration attribute-filter-dropdown-configuration sdk-edit-mode-on", children: [
75
- _jsx(ConfigurationPanelHeader, {}), _jsx(AttributeTitleRenaming, { categoryTitle: titleText, resetTitleText: resetTitleText, onClick: onTitleReset, onChange: onTitleUpdate, showResetTitle: showResetTitle, attributeTitle: title ?? defaultAttributeFilterTitle }), _jsx(SelectionMode, { selectionTitleText: selectionTitleText, multiSelectionOptionText: multiSelectionOptionText, singleSelectionOptionText: singleSelectionOptionText, singleSelectionDisabledTooltip: singleSelectionDisabledTooltip, selectionMode: selectionMode, onSelectionModeChange: onSelectionModeUpdate, disabled: getIsSelectionDisabled() }), _jsx(LocalizedLimitValuesConfiguration, { attributeTitle: title ?? defaultAttributeFilterTitle, parentFilters: parents, validParentFilters: validNeighbourAttributes, validateElementsBy: limitingItems, onLimitingItemUpdate: onLimitingItemsUpdate, onParentFilterUpdate: onParentSelect, onDependentDateFilterUpdate: onDependentDateFiltersSelect, metricsAndFacts: metricsAndFacts, intl: intl, availableDatasets: availableDatasetForItems, dependentDateFilters: dependentDateFilters, dependentCommonDateFilter: dependentCommonDateFilter }), showDependentFiltersConfiguration && parents.length > 0 ? (_jsxs(_Fragment, { children: [
92
+ _jsx(ConfigurationPanelHeader, {}), _jsx(AttributeTitleRenaming, { categoryTitle: titleText, resetTitleText: resetTitleText, onClick: onTitleReset, onChange: onTitleUpdate, showResetTitle: showResetTitle, attributeTitle: title ?? defaultAttributeFilterTitle }), _jsx(SelectionMode, { selectionTitleText: selectionTitleText, multiSelectionOptionText: multiSelectionOptionText, multiSelectionOptionTooltip: multiSelectionOptionTooltip, singleSelectionOptionText: singleSelectionOptionText, singleSelectionDisabledTooltip: singleSelectionDisabledTooltip, selectionMode: selectionMode, onSelectionModeChange: handleSelectionModeChange, disabled: getIsSelectionDisabled() }), showSelectionTypeSection ? (_jsx(SelectionType, { asLabelText: selectionTypeAsText, listOrTextOptionText: selectionTypeListAndTextText, listOrTextTooltip: selectionTypeListAndTextTooltip, listOptionText: selectionTypeListText, listTooltip: selectionTypeListTooltip, textOptionText: selectionTypeTextText, textTooltip: selectionTypeTextTooltip, selectionType: selectionType, onSelectionTypeChange: onSelectionTypeUpdate, isSingleSelectionMode: selectionMode === "single", singleSelectionDisabledTooltip: selectionTypeSingleDisabledTooltip })) : null, _jsx(LocalizedLimitValuesConfiguration, { attributeTitle: title ?? defaultAttributeFilterTitle, parentFilters: parents, validParentFilters: validNeighbourAttributes, validateElementsBy: limitingItems, onLimitingItemUpdate: onLimitingItemsUpdate, onParentFilterUpdate: onParentSelect, onDependentDateFilterUpdate: onDependentDateFiltersSelect, metricsAndFacts: metricsAndFacts, intl: intl, availableDatasets: availableDatasetForItems, dependentDateFilters: dependentDateFilters, dependentCommonDateFilter: dependentCommonDateFilter }), showDependentFiltersConfiguration && parents.length > 0 ? (_jsxs(_Fragment, { children: [
76
93
  _jsx(ConfigurationCategory, { categoryTitle: filterByText }), _jsx(ParentFiltersList, { currentFilterLocalId: dashboardAttributeFilterItemLocalIdentifier(currentFilterItem), parents: parents, setParents: onParentSelect, onConnectingAttributeChanged: onConnectingAttributeChanged, connectingAttributes: connectingAttributes, attributes: attributes, disabled: disableParentFiltersList, disabledTooltip: parentFiltersDisabledTooltip, validParents: validNeighbourAttributes })
77
94
  ] })) : null, showDisplayFormPicker ? (_jsxs("div", { className: "s-display-form-configuration", children: [
78
95
  _jsx(ConfigurationCategory, { categoryTitle: displayValuesAsText }), _jsx("div", { className: "configuration-panel-body", children: _jsx(AttributeDisplayFormsDropdown, { displayForms: filterDisplayForms.availableDisplayForms, selectedDisplayForm: filterDisplayForms.selectedDisplayForm, onChange: onDisplayFormSelect }) })
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeFilterConfiguration.js","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AttributeFilterConfiguration.js","sourceRoot":"","sources":["../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/AttributeFilterConfiguration.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type DashboardAttributeFilterItem, type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model";
2
+ export declare function useSelectionTypeConfiguration(filterItem: DashboardAttributeFilterItem): {
3
+ selectionType: DashboardAttributeFilterSelectionType;
4
+ selectionTypeChanged: boolean;
5
+ onSelectionTypeUpdate: (value: DashboardAttributeFilterSelectionType) => void;
6
+ onSelectionTypeChange: () => void;
7
+ onConfigurationClose: () => void;
8
+ };
9
+ //# sourceMappingURL=useSelectionTypeConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectionTypeConfiguration.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,qCAAqC,EAI7C,MAAM,qBAAqB,CAAC;AAO7B,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,4BAA4B;;;;;;EA6CrF"}
@@ -0,0 +1,42 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useCallback, useState } from "react";
3
+ import { DashboardAttributeFilterSelectionTypeValues, dashboardAttributeFilterItemLocalIdentifier, isDashboardAttributeFilter, } from "@gooddata/sdk-model";
4
+ import { setDashboardAttributeFilterSelectionType } from "../../../../../../model/commands/dashboard.js";
5
+ import { useDashboardSelector } from "../../../../../../model/react/DashboardStoreProvider.js";
6
+ import { useDashboardCommandProcessing } from "../../../../../../model/react/useDashboardCommandProcessing.js";
7
+ import { selectAttributeFilterConfigsOverrides } from "../../../../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
8
+ export function useSelectionTypeConfiguration(filterItem) {
9
+ const { run: changeSelectionType } = useDashboardCommandProcessing({
10
+ commandCreator: setDashboardAttributeFilterSelectionType,
11
+ successEvent: "GDC.DASH/EVT.FILTER_CONTEXT.CHANGED",
12
+ errorEvent: "GDC.DASH/EVT.COMMAND.FAILED",
13
+ });
14
+ const localIdentifier = dashboardAttributeFilterItemLocalIdentifier(filterItem);
15
+ const currentFilterConfig = useDashboardSelector(selectAttributeFilterConfigsOverrides).find((item) => item.localIdentifier === localIdentifier);
16
+ // Default based on filter type: elements filters → "list", text filters → "text"
17
+ const defaultSelectionType = isDashboardAttributeFilter(filterItem)
18
+ ? DashboardAttributeFilterSelectionTypeValues.LIST
19
+ : DashboardAttributeFilterSelectionTypeValues.TEXT;
20
+ const originalSelectionType = currentFilterConfig?.selectionType ?? defaultSelectionType;
21
+ const [selectionType, setSelectionType] = useState(originalSelectionType);
22
+ const selectionTypeChanged = originalSelectionType !== selectionType;
23
+ const onSelectionTypeUpdate = useCallback((value) => {
24
+ setSelectionType(value);
25
+ }, []);
26
+ const onSelectionTypeChange = useCallback(() => {
27
+ if (selectionType !== originalSelectionType) {
28
+ changeSelectionType(localIdentifier, selectionType);
29
+ }
30
+ }, [localIdentifier, originalSelectionType, changeSelectionType, selectionType]);
31
+ const onConfigurationClose = useCallback(() => {
32
+ setSelectionType(originalSelectionType);
33
+ }, [originalSelectionType]);
34
+ return {
35
+ selectionType,
36
+ selectionTypeChanged,
37
+ onSelectionTypeUpdate,
38
+ onSelectionTypeChange,
39
+ onConfigurationClose,
40
+ };
41
+ }
42
+ //# sourceMappingURL=useSelectionTypeConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectionTypeConfiguration.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useSelectionTypeConfiguration.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAGH,2CAA2C,EAC3C,2CAA2C,EAC3C,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,gEAAgE,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,8FAA8F,CAAC;AAErJ,MAAM,UAAU,6BAA6B,CAAC,UAAwC,EAAE;IACpF,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,6BAA6B,CAAC;QAC/D,cAAc,EAAE,wCAAwC;QACxD,YAAY,EAAE,qCAAqC;QACnD,UAAU,EAAE,6BAA6B;KAC5C,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,2CAA2C,CAAC,UAAU,CAAC,CAAC;IAEhF,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,qCAAqC,CAAC,CAAC,IAAI,CACxF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,eAAe,CACrD,CAAC;IAEF,qFAAiF;IACjF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,UAAU,CAAC;QAC/D,CAAC,CAAC,2CAA2C,CAAC,IAAI;QAClD,CAAC,CAAC,2CAA2C,CAAC,IAAI,CAAC;IACvD,MAAM,qBAAqB,GAAG,mBAAmB,EAAE,aAAa,IAAI,oBAAoB,CAAC;IAEzF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACnC,QAAQ,CAAwC,qBAAqB,CAAC,CAAC;IAE3E,MAAM,oBAAoB,GAAG,qBAAqB,KAAK,aAAa,CAAC;IAErE,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,KAA4C,EAAE,EAAE,CAAC;QACxF,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAAA,CAC3B,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;YAC1C,mBAAmB,CAAC,eAAyB,EAAE,aAAa,CAAC,CAAC;QAClE,CAAC;IAAA,CACJ,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3C,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAAA,CAC3C,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,OAAO;QACH,aAAa;QACb,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;KACvB,CAAC;AAAA,CACL"}
@@ -2,12 +2,13 @@ import { type DashboardAttributeFilterSelectionMode } from "@gooddata/sdk-model"
2
2
  interface ISelectionModeProps {
3
3
  selectionTitleText: string;
4
4
  multiSelectionOptionText: string;
5
+ multiSelectionOptionTooltip: string;
5
6
  singleSelectionOptionText: string;
6
7
  singleSelectionDisabledTooltip: string;
7
8
  selectionMode: DashboardAttributeFilterSelectionMode;
8
9
  onSelectionModeChange: (value: DashboardAttributeFilterSelectionMode) => void;
9
10
  disabled: boolean;
10
11
  }
11
- export declare function SelectionMode({ selectionTitleText, multiSelectionOptionText, singleSelectionOptionText, singleSelectionDisabledTooltip, selectionMode, onSelectionModeChange, disabled }: ISelectionModeProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function SelectionMode({ selectionTitleText, multiSelectionOptionText, multiSelectionOptionTooltip, singleSelectionOptionText, singleSelectionDisabledTooltip, selectionMode, onSelectionModeChange, disabled }: ISelectionModeProps): import("react/jsx-runtime").JSX.Element;
12
13
  export {};
13
14
  //# sourceMappingURL=SelectionMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionMode.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAoBjF,UAAU,mBAAmB;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,8BAA8B,EAAE,MAAM,CAAC;IACvC,aAAa,EAAE,qCAAqC,CAAC;IACrD,qBAAqB,EAAE,CAAC,KAAK,EAAE,qCAAqC,KAAK,IAAI,CAAC;IAC9E,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACX,EAAE,mBAAmB,2CA6CrB"}
1
+ {"version":3,"file":"SelectionMode.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAoBjF,UAAU,mBAAmB;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,yBAAyB,EAAE,MAAM,CAAC;IAClC,8BAA8B,EAAE,MAAM,CAAC;IACvC,aAAa,EAAE,qCAAqC,CAAC;IACrD,qBAAqB,EAAE,CAAC,KAAK,EAAE,qCAAqC,KAAK,IAAI,CAAC;IAC9E,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACX,EAAE,mBAAmB,2CA8CrB"}
@@ -3,7 +3,7 @@ import { Dropdown, DropdownList } from "@gooddata/sdk-ui-kit";
3
3
  import { SelectionModeButton } from "./SelectionModeButton.js";
4
4
  import { SelectionModeItem } from "./SelectionModeItem.js";
5
5
  import { ConfigurationCategory } from "../ConfigurationCategory.js";
6
- const ITEM_HEIGHT = 23;
6
+ const ITEM_HEIGHT = 28;
7
7
  const DROPDOWN_WIDTH = 225;
8
8
  const ALIGN_POINTS = [
9
9
  {
@@ -15,14 +15,14 @@ const ALIGN_POINTS = [
15
15
  offset: { x: 0, y: -1 },
16
16
  },
17
17
  ];
18
- export function SelectionMode({ selectionTitleText, multiSelectionOptionText, singleSelectionOptionText, singleSelectionDisabledTooltip, selectionMode, onSelectionModeChange, disabled, }) {
18
+ export function SelectionMode({ selectionTitleText, multiSelectionOptionText, multiSelectionOptionTooltip, singleSelectionOptionText, singleSelectionDisabledTooltip, selectionMode, onSelectionModeChange, disabled, }) {
19
19
  const selectionOptionTitleMap = {
20
20
  multi: multiSelectionOptionText,
21
21
  single: singleSelectionOptionText,
22
22
  };
23
23
  const items = ["multi", "single"];
24
24
  return (_jsxs(_Fragment, { children: [
25
- _jsx(ConfigurationCategory, { categoryTitle: selectionTitleText }), _jsx("div", { className: "configuration-selection-mode", children: _jsx(Dropdown, { alignPoints: ALIGN_POINTS, renderButton: ({ isOpen, toggleDropdown }) => (_jsx(SelectionModeButton, { isOpen: isOpen, title: selectionOptionTitleMap[selectionMode], toggleDropdown: toggleDropdown })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { className: "attribute-display-form-dropdown-body s-selection-mode-dropdown-body", items: items, itemHeight: ITEM_HEIGHT, width: DROPDOWN_WIDTH, renderItem: ({ item }) => (_jsx(SelectionModeItem, { item: item, itemTitle: selectionOptionTitleMap[item], selected: item === selectionMode, disabled: item === "single" && disabled, disabledTooltip: singleSelectionDisabledTooltip, onClick: () => {
25
+ _jsx(ConfigurationCategory, { categoryTitle: selectionTitleText }), _jsx("div", { className: "configuration-selection-mode", children: _jsx(Dropdown, { alignPoints: ALIGN_POINTS, renderButton: ({ isOpen, toggleDropdown }) => (_jsx(SelectionModeButton, { isOpen: isOpen, title: selectionOptionTitleMap[selectionMode], toggleDropdown: toggleDropdown })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { className: "attribute-display-form-dropdown-body s-selection-mode-dropdown-body", items: items, itemHeight: ITEM_HEIGHT, width: DROPDOWN_WIDTH, renderItem: ({ item }) => (_jsx(SelectionModeItem, { item: item, itemTitle: selectionOptionTitleMap[item], tooltip: item === "multi" ? multiSelectionOptionTooltip : undefined, selected: item === selectionMode, disabled: item === "single" && disabled, disabledTooltip: singleSelectionDisabledTooltip, onClick: () => {
26
26
  closeDropdown();
27
27
  onSelectionModeChange(item);
28
28
  } })) })) }) })
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionMode.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,YAAY,GAAkB;IAChC;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACzB;IACD;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KAC1B;CACJ,CAAC;AAYF,MAAM,UAAU,aAAa,CAAC,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,QAAQ,GACU,EAAE;IACpB,MAAM,uBAAuB,GAAG;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,MAAM,EAAE,yBAAyB;KACpC,CAAC;IACF,MAAM,KAAK,GAA4C,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3E,OAAO,CACH;YACI,KAAC,qBAAqB,IAAC,aAAa,EAAE,kBAAkB,GAAI,EAC5D,cAAK,SAAS,EAAC,8BAA8B,YACzC,KAAC,QAAQ,IACL,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAC1C,KAAC,mBAAmB,IAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,uBAAuB,CAAC,aAAa,CAAC,EAC7C,cAAc,EAAE,cAAc,GAChC,CACL,EACD,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAC/B,KAAC,YAAY,IACT,SAAS,EAAC,qEAAqE,EAC/E,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,iBAAiB,IACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,EACxC,QAAQ,EAAE,IAAI,KAAK,aAAa,EAChC,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,EACvC,eAAe,EAAE,8BAA8B,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,qBAAqB,CAAC,IAAI,CAAC,CAAC;4BAAA,CAC/B,GACH,CACL,GACH,CACL,GACH,GACA;YACP,CACN,CAAC;AAAA,CACL"}
1
+ {"version":3,"file":"SelectionMode.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionMode.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,YAAY,GAAkB;IAChC;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACzB;IACD;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KAC1B;CACJ,CAAC;AAaF,MAAM,UAAU,aAAa,CAAC,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,QAAQ,GACU,EAAE;IACpB,MAAM,uBAAuB,GAAG;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,MAAM,EAAE,yBAAyB;KACpC,CAAC;IACF,MAAM,KAAK,GAA4C,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3E,OAAO,CACH;YACI,KAAC,qBAAqB,IAAC,aAAa,EAAE,kBAAkB,GAAI,EAC5D,cAAK,SAAS,EAAC,8BAA8B,YACzC,KAAC,QAAQ,IACL,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAC1C,KAAC,mBAAmB,IAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,uBAAuB,CAAC,aAAa,CAAC,EAC7C,cAAc,EAAE,cAAc,GAChC,CACL,EACD,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAC/B,KAAC,YAAY,IACT,SAAS,EAAC,qEAAqE,EAC/E,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,iBAAiB,IACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,EACxC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,EACnE,QAAQ,EAAE,IAAI,KAAK,aAAa,EAChC,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,EACvC,eAAe,EAAE,8BAA8B,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,qBAAqB,CAAC,IAAI,CAAC,CAAC;4BAAA,CAC/B,GACH,CACL,GACH,CACL,GACH,GACA;YACP,CACN,CAAC;AAAA,CACL"}
@@ -2,11 +2,12 @@ import { type DashboardAttributeFilterSelectionMode } from "@gooddata/sdk-model"
2
2
  interface ISelectionModeItemProps {
3
3
  item: DashboardAttributeFilterSelectionMode;
4
4
  itemTitle: string;
5
+ tooltip?: string;
5
6
  selected: boolean;
6
7
  disabled: boolean;
7
8
  disabledTooltip: string;
8
9
  onClick: () => void;
9
10
  }
10
- export declare function SelectionModeItem({ item, itemTitle, selected, disabled, disabledTooltip, onClick }: ISelectionModeItemProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SelectionModeItem({ item, itemTitle, tooltip, selected, disabled, disabledTooltip, onClick }: ISelectionModeItemProps): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
12
13
  //# sourceMappingURL=SelectionModeItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionModeItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAMjF,UAAU,uBAAuB;IAC7B,IAAI,EAAE,qCAAqC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,EACV,EAAE,uBAAuB,2CAyBzB"}
1
+ {"version":3,"file":"SelectionModeItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAGjF,UAAU,uBAAuB;IAC7B,IAAI,EAAE,qCAAqC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,EACV,EAAE,uBAAuB,2CA6BzB"}
@@ -1,16 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2022-2025 GoodData Corporation
2
+ // (C) 2022-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
- import { Bubble, BubbleHoverTrigger } from "@gooddata/sdk-ui-kit";
5
- const ARROW_OFFSETS = { "cr cl": [20, 0], "cl cr": [-10, 0] };
6
- const ALIGN_POINTS = [{ align: "cr cl" }, { align: "cl cr" }];
7
- export function SelectionModeItem({ item, itemTitle, selected, disabled, disabledTooltip, onClick, }) {
8
- const className = cx("gd-list-item", {
4
+ import { TOOLTIP_WIDTH_MEDIUM, UiTooltip } from "@gooddata/sdk-ui-kit";
5
+ export function SelectionModeItem({ item, itemTitle, tooltip, selected, disabled, disabledTooltip, onClick, }) {
6
+ const className = cx("gd-list-item", "selection-kind-dropdown-item", {
9
7
  "is-selected": selected,
10
- }, {
11
8
  "is-disabled": disabled,
12
9
  }, "s-selection-mode-dropdown-item", `s-selection-mode-dropdown-item-${item}`);
13
- return (_jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, children: [
14
- _jsx("div", { className: className, onClick: () => !disabled && onClick(), children: itemTitle }), Boolean(disabled) && (_jsx(Bubble, { arrowOffsets: ARROW_OFFSETS, alignPoints: ALIGN_POINTS, children: _jsx("div", { children: disabledTooltip }) }))] }));
10
+ const tooltipText = disabled ? disabledTooltip : tooltip;
11
+ return (_jsxs("div", { className: className, onClick: () => !disabled && onClick(), children: [
12
+ _jsx("span", { className: "selection-kind-dropdown-item-title", children: itemTitle }), tooltipText ? (_jsx(UiTooltip, { anchor: _jsx("span", { className: "selection-kind-dropdown-item-help gd-icon-circle-question" }), content: tooltipText, arrowPlacement: "left", triggerBy: ["hover"], width: TOOLTIP_WIDTH_MEDIUM, anchorWrapperStyles: { display: "flex", alignItems: "center" } })) : null] }));
15
13
  }
16
14
  //# sourceMappingURL=SelectionModeItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionModeItem.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9D,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAW9D,MAAM,UAAU,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,GACe,EAAE;IACxB,MAAM,SAAS,GAAG,EAAE,CAChB,cAAc,EACd;QACI,aAAa,EAAE,QAAQ;KAC1B,EACD;QACI,aAAa,EAAE,QAAQ;KAC1B,EACD,gCAAgC,EAChC,kCAAkC,IAAI,EAAE,CAC3C,CAAC;IAEF,OAAO,CACH,MAAC,kBAAkB,IAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YAC1C,cAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,EAAE,YAC3D,SAAS,GACR,EACL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAClB,KAAC,MAAM,IAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,YAC1D,wBAAM,eAAe,GAAO,GACvB,CACZ,IACgB,CACxB,CAAC;AAAA,CACL"}
1
+ {"version":3,"file":"SelectionModeItem.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionMode/SelectionModeItem.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYvE,MAAM,UAAU,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,GACe,EAAE;IACxB,MAAM,SAAS,GAAG,EAAE,CAChB,cAAc,EACd,8BAA8B,EAC9B;QACI,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;KAC1B,EACD,gCAAgC,EAChC,kCAAkC,IAAI,EAAE,CAC3C,CAAC;IAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IAEzD,OAAO,CACH,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,EAAE;YAC5D,eAAM,SAAS,EAAC,oCAAoC,YAAE,SAAS,GAAQ,EACtE,WAAW,CAAC,CAAC,CAAC,CACX,KAAC,SAAS,IACN,MAAM,EAAE,eAAM,SAAS,EAAC,2DAA2D,GAAG,EACtF,OAAO,EAAE,WAAW,EACpB,cAAc,EAAC,MAAM,EACrB,SAAS,EAAE,CAAC,OAAO,CAAC,EACpB,KAAK,EAAE,oBAAoB,EAC3B,mBAAmB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAChE,CACL,CAAC,CAAC,CAAC,IAAI,IACN,CACT,CAAC;AAAA,CACL"}
@@ -0,0 +1,17 @@
1
+ import { type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model";
2
+ interface ISelectionTypeProps {
3
+ asLabelText: string;
4
+ listOrTextOptionText: string;
5
+ listOrTextTooltip: string;
6
+ listOptionText: string;
7
+ listTooltip: string;
8
+ textOptionText: string;
9
+ textTooltip: string;
10
+ selectionType: DashboardAttributeFilterSelectionType;
11
+ onSelectionTypeChange: (value: DashboardAttributeFilterSelectionType) => void;
12
+ isSingleSelectionMode?: boolean;
13
+ singleSelectionDisabledTooltip?: string;
14
+ }
15
+ export declare function SelectionType({ asLabelText, listOrTextOptionText, listOrTextTooltip, listOptionText, listTooltip, textOptionText, textTooltip, selectionType, onSelectionTypeChange, isSingleSelectionMode, singleSelectionDisabledTooltip }: ISelectionTypeProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=SelectionType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionType.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAkBjF,UAAU,mBAAmB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,qCAAqC,CAAC;IACrD,qBAAqB,EAAE,CAAC,KAAK,EAAE,qCAAqC,KAAK,IAAI,CAAC;IAC9E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,aAAa,CAAC,EAC1B,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,EACjC,EAAE,mBAAmB,2CAyDrB"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useRef } from "react";
4
+ import { Dropdown, DropdownList } from "@gooddata/sdk-ui-kit";
5
+ import { SelectionTypeButton } from "./SelectionTypeButton.js";
6
+ import { SelectionTypeItem } from "./SelectionTypeItem.js";
7
+ const ITEM_HEIGHT = 28;
8
+ const ALIGN_POINTS = [
9
+ {
10
+ align: "br tr",
11
+ offset: { x: 0, y: 1 },
12
+ },
13
+ {
14
+ align: "tr br",
15
+ offset: { x: 0, y: -1 },
16
+ },
17
+ ];
18
+ export function SelectionType({ asLabelText, listOrTextOptionText, listOrTextTooltip, listOptionText, listTooltip, textOptionText, textTooltip, selectionType, onSelectionTypeChange, isSingleSelectionMode, singleSelectionDisabledTooltip, }) {
19
+ const buttonRef = useRef(null);
20
+ const optionTitleMap = {
21
+ listOrText: listOrTextOptionText,
22
+ list: listOptionText,
23
+ text: textOptionText,
24
+ };
25
+ const optionTooltipMap = {
26
+ listOrText: listOrTextTooltip,
27
+ list: listTooltip,
28
+ text: textTooltip,
29
+ };
30
+ const items = ["listOrText", "list", "text"];
31
+ const getDropdownWidth = () => {
32
+ return buttonRef.current?.offsetWidth;
33
+ };
34
+ return (_jsxs("div", { className: "configuration-selection-kind", children: [
35
+ _jsx("span", { className: "configuration-selection-kind-label", children: asLabelText }), _jsx(Dropdown, { className: "selection-kind-dropdown", alignPoints: ALIGN_POINTS, renderButton: ({ isOpen, toggleDropdown }) => (_jsx(SelectionTypeButton, { ref: buttonRef, isOpen: isOpen, title: optionTitleMap[selectionType], toggleDropdown: toggleDropdown })), renderBody: ({ closeDropdown }) => (_jsx(DropdownList, { className: "attribute-display-form-dropdown-body s-selection-kind-dropdown-body", items: items, itemHeight: ITEM_HEIGHT, width: getDropdownWidth(), renderItem: ({ item }) => (_jsx(SelectionTypeItem, { item: item, itemTitle: optionTitleMap[item], tooltip: optionTooltipMap[item], selected: item === selectionType, disabled: isSingleSelectionMode ? item !== "list" : undefined, disabledTooltip: singleSelectionDisabledTooltip, onClick: () => {
36
+ closeDropdown();
37
+ onSelectionTypeChange(item);
38
+ } })) })) })] }));
39
+ }
40
+ //# sourceMappingURL=SelectionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionType.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionType.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAkB;IAChC;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACzB;IACD;QACI,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KAC1B;CACJ,CAAC;AAgBF,MAAM,UAAU,aAAa,CAAC,EAC1B,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,GACZ,EAAE;IACpB,MAAM,SAAS,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC5C,MAAM,cAAc,GAA0D;QAC1E,UAAU,EAAE,oBAAoB;QAChC,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,cAAc;KACvB,CAAC;IACF,MAAM,gBAAgB,GAA0D;QAC5E,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KACpB,CAAC;IACF,MAAM,KAAK,GAA4C,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAAA,CACzC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAC,8BAA8B;YACzC,eAAM,SAAS,EAAC,oCAAoC,YAAE,WAAW,GAAQ,EACzE,KAAC,QAAQ,IACL,SAAS,EAAC,yBAAyB,EACnC,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAC1C,KAAC,mBAAmB,IAChB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,EACpC,cAAc,EAAE,cAAc,GAChC,CACL,EACD,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAC/B,KAAC,YAAY,IACT,SAAS,EAAC,qEAAqE,EAC/E,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,gBAAgB,EAAE,EACzB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,iBAAiB,IACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,EAC/B,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC/B,QAAQ,EAAE,IAAI,KAAK,aAAa,EAChC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,EAC7D,eAAe,EAAE,8BAA8B,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC;4BACX,aAAa,EAAE,CAAC;4BAChB,qBAAqB,CAAC,IAAI,CAAC,CAAC;wBAAA,CAC/B,GACH,CACL,GACH,CACL,GACH,IACA,CACT,CAAC;AAAA,CACL"}
@@ -0,0 +1,8 @@
1
+ interface ISelectionTypeButtonProps {
2
+ isOpen: boolean;
3
+ title: string;
4
+ toggleDropdown: () => void;
5
+ }
6
+ export declare const SelectionTypeButton: import("react").ForwardRefExoticComponent<ISelectionTypeButtonProps & import("react").RefAttributes<HTMLElement>>;
7
+ export {};
8
+ //# sourceMappingURL=SelectionTypeButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTypeButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,mHA2B/B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { forwardRef } from "react";
4
+ import cx from "classnames";
5
+ import { Button } from "@gooddata/sdk-ui-kit";
6
+ export const SelectionTypeButton = forwardRef(function SelectionTypeButton({ title, isOpen, toggleDropdown }, ref) {
7
+ const buttonClassNames = cx("gd-button-primary", "gd-button-small", "button-dropdown", "dropdown-button", "selection-kind-dropdown-button", "s-selection-kind-dropdown-button", {
8
+ "is-active": isOpen,
9
+ });
10
+ const iconRight = isOpen ? "gd-icon-navigateup" : "gd-icon-navigatedown";
11
+ return (_jsx(Button, { ref: ref, className: buttonClassNames, title: title, value: title, onClick: toggleDropdown, iconRight: iconRight }));
12
+ });
13
+ //# sourceMappingURL=SelectionTypeButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTypeButton.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeButton.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAQ9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CACzC,SAAS,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE;IACjE,MAAM,gBAAgB,GAAG,EAAE,CACvB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gCAAgC,EAChC,kCAAkC,EAClC;QACI,WAAW,EAAE,MAAM;KACtB,CACJ,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAEzE,OAAO,CACH,KAAC,MAAM,IACH,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,GACtB,CACL,CAAC;AAAA,CACL,CACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model";
2
+ interface ISelectionTypeItemProps {
3
+ item: DashboardAttributeFilterSelectionType;
4
+ itemTitle: string;
5
+ tooltip: string;
6
+ selected: boolean;
7
+ disabled?: boolean;
8
+ disabledTooltip?: string;
9
+ onClick: () => void;
10
+ }
11
+ export declare function SelectionTypeItem({ item, itemTitle, tooltip, selected, disabled, disabledTooltip, onClick }: ISelectionTypeItemProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=SelectionTypeItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTypeItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAGjF,UAAU,uBAAuB;IAC7B,IAAI,EAAE,qCAAqC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,EACV,EAAE,uBAAuB,2CAwCzB"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import cx from "classnames";
4
+ import { UiTooltip } from "@gooddata/sdk-ui-kit";
5
+ export function SelectionTypeItem({ item, itemTitle, tooltip, selected, disabled, disabledTooltip, onClick, }) {
6
+ const className = cx("gd-list-item", "selection-kind-dropdown-item", {
7
+ "is-selected": selected,
8
+ "is-disabled": disabled,
9
+ }, "s-selection-kind-dropdown-item", `s-selection-kind-dropdown-item-${item}`);
10
+ const itemContent = (_jsxs("div", { className: className, onClick: () => !disabled && onClick(), children: [
11
+ _jsx("span", { className: "selection-kind-dropdown-item-title", children: itemTitle }), disabled ? null : (_jsx(UiTooltip, { anchor: _jsx("span", { className: "selection-kind-dropdown-item-help gd-icon-circle-question" }), content: _jsx("span", { style: { whiteSpace: "pre-line", maxWidth: 240 }, children: tooltip }), arrowPlacement: "left", triggerBy: ["hover"], anchorWrapperStyles: { display: "flex", alignItems: "center" } }))] }));
12
+ if (disabled && disabledTooltip) {
13
+ return (_jsx(UiTooltip, { anchor: itemContent, content: _jsx("span", { style: { maxWidth: 240 }, children: disabledTooltip }), arrowPlacement: "left", triggerBy: ["hover"], anchorWrapperStyles: { width: "100%", height: "100%" } }));
14
+ }
15
+ return itemContent;
16
+ }
17
+ //# sourceMappingURL=SelectionTypeItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionTypeItem.js","sourceRoot":"","sources":["../../../../../../../src/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/selectionType/SelectionTypeItem.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYjD,MAAM,UAAU,iBAAiB,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,OAAO,GACe,EAAE;IACxB,MAAM,SAAS,GAAG,EAAE,CAChB,cAAc,EACd,8BAA8B,EAC9B;QACI,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;KAC1B,EACD,gCAAgC,EAChC,kCAAkC,IAAI,EAAE,CAC3C,CAAC;IAEF,MAAM,WAAW,GAAG,CAChB,eAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,EAAE;YAC5D,eAAM,SAAS,EAAC,oCAAoC,YAAE,SAAS,GAAQ,EACtE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,SAAS,IACN,MAAM,EAAE,eAAM,SAAS,EAAC,2DAA2D,GAAG,EACtF,OAAO,EAAE,eAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAG,OAAO,GAAQ,EACjF,cAAc,EAAC,MAAM,EACrB,SAAS,EAAE,CAAC,OAAO,CAAC,EACpB,mBAAmB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAChE,CACL,IACC,CACT,CAAC;IAEF,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;QAC9B,OAAO,CACH,KAAC,SAAS,IACN,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAG,eAAe,GAAQ,EACjE,cAAc,EAAC,MAAM,EACrB,SAAS,EAAE,CAAC,OAAO,CAAC,EACpB,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GACxD,CACL,CAAC;IACN,CAAC;IAED,OAAO,WAAW,CAAC;AAAA,CACtB"}
@@ -0,0 +1,13 @@
1
+ import { type DashboardAttributeFilterItem } from "@gooddata/sdk-model";
2
+ /**
3
+ * Merges dashboard-only metadata into the converted filter.
4
+ *
5
+ * Converters that build a new `DashboardAttributeFilterItem` from selection-only data omit
6
+ * `filterElementsBy`, `filterElementsByDate`, and `validateElementsBy`. Those fields are copied from
7
+ * `originalFilter`. Without this, replacing the whole filter item drops parent filtering and
8
+ * validation config.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare function mergeDashboardAttributeFilterMetadata(originalFilter: DashboardAttributeFilterItem, convertedFilter: DashboardAttributeFilterItem): DashboardAttributeFilterItem;
13
+ //# sourceMappingURL=mergeDashboardAttributeFilterMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeDashboardAttributeFilterMetadata.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,4BAA4B,EAMpC,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;GASG;AACH,wBAAgB,qCAAqC,CACjD,cAAc,EAAE,4BAA4B,EAC5C,eAAe,EAAE,4BAA4B,GAC9C,4BAA4B,CAoB9B"}
@@ -0,0 +1,34 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { dashboardAttributeFilterItemFilterElementsBy, dashboardAttributeFilterItemFilterElementsByDate, dashboardAttributeFilterItemValidateElementsBy, isDashboardArbitraryAttributeFilter, isDashboardAttributeFilter, } from "@gooddata/sdk-model";
3
+ /**
4
+ * Merges dashboard-only metadata into the converted filter.
5
+ *
6
+ * Converters that build a new `DashboardAttributeFilterItem` from selection-only data omit
7
+ * `filterElementsBy`, `filterElementsByDate`, and `validateElementsBy`. Those fields are copied from
8
+ * `originalFilter`. Without this, replacing the whole filter item drops parent filtering and
9
+ * validation config.
10
+ *
11
+ * @internal
12
+ */
13
+ export function mergeDashboardAttributeFilterMetadata(originalFilter, convertedFilter) {
14
+ const filterElementsBy = dashboardAttributeFilterItemFilterElementsBy(originalFilter);
15
+ const filterElementsByDate = dashboardAttributeFilterItemFilterElementsByDate(originalFilter);
16
+ const validateElementsBy = dashboardAttributeFilterItemValidateElementsBy(originalFilter);
17
+ const metadata = {
18
+ ...(filterElementsBy === undefined ? {} : { filterElementsBy }),
19
+ ...(filterElementsByDate === undefined ? {} : { filterElementsByDate }),
20
+ ...(validateElementsBy === undefined ? {} : { validateElementsBy }),
21
+ };
22
+ if (isDashboardAttributeFilter(convertedFilter)) {
23
+ return {
24
+ attributeFilter: { ...convertedFilter.attributeFilter, ...metadata },
25
+ };
26
+ }
27
+ if (isDashboardArbitraryAttributeFilter(convertedFilter)) {
28
+ return {
29
+ arbitraryAttributeFilter: { ...convertedFilter.arbitraryAttributeFilter, ...metadata },
30
+ };
31
+ }
32
+ return convertedFilter;
33
+ }
34
+ //# sourceMappingURL=mergeDashboardAttributeFilterMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeDashboardAttributeFilterMetadata.js","sourceRoot":"","sources":["../../../../src/presentation/filterBar/attributeFilter/mergeDashboardAttributeFilterMetadata.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAEH,4CAA4C,EAC5C,gDAAgD,EAChD,8CAA8C,EAC9C,mCAAmC,EACnC,0BAA0B,GAC7B,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;GASG;AACH,MAAM,UAAU,qCAAqC,CACjD,cAA4C,EAC5C,eAA6C,EACjB;IAC5B,MAAM,gBAAgB,GAAG,4CAA4C,CAAC,cAAc,CAAC,CAAC;IACtF,MAAM,oBAAoB,GAAG,gDAAgD,CAAC,cAAc,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GAAG,8CAA8C,CAAC,cAAc,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG;QACb,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC/D,GAAG,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvE,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;KACtE,CAAC;IACF,IAAI,0BAA0B,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO;YACH,eAAe,EAAE,EAAE,GAAG,eAAe,CAAC,eAAe,EAAE,GAAG,QAAQ,EAAE;SACvE,CAAC;IACN,CAAC;IACD,IAAI,mCAAmC,CAAC,eAAe,CAAC,EAAE,CAAC;QACvD,OAAO;YACH,wBAAwB,EAAE,EAAE,GAAG,eAAe,CAAC,wBAAwB,EAAE,GAAG,QAAQ,EAAE;SACzF,CAAC;IACN,CAAC;IACD,OAAO,eAAe,CAAC;AAAA,CAC1B"}
@@ -0,0 +1,26 @@
1
+ export declare function useAttributeFilterConfigTexts(): {
2
+ cancelText: string;
3
+ closeText: string;
4
+ saveText: string;
5
+ applyText: string;
6
+ displayValuesAsText: string;
7
+ filterByText: string;
8
+ titleText: string;
9
+ resetTitleText: string;
10
+ selectionTitleText: string;
11
+ multiSelectionOptionText: string;
12
+ multiSelectionOptionTooltip: string;
13
+ singleSelectionOptionText: string;
14
+ singleSelectionDisabledTooltip: string;
15
+ parentFiltersDisabledTooltip: string;
16
+ modeCategoryTitleText: string;
17
+ selectionTypeAsText: string;
18
+ selectionTypeListAndTextText: string;
19
+ selectionTypeListText: string;
20
+ selectionTypeTextText: string;
21
+ selectionTypeListAndTextTooltip: string;
22
+ selectionTypeListTooltip: string;
23
+ selectionTypeTextTooltip: string;
24
+ selectionTypeSingleDisabledTooltip: string;
25
+ };
26
+ //# sourceMappingURL=useAttributeFilterConfigTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAttributeFilterConfigTexts.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/attributeFilter/useAttributeFilterConfigTexts.ts"],"names":[],"mappings":"AAIA,wBAAgB,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;EAgE5C"}