@gooddata/sdk-ui-dashboard 11.29.0-alpha.2 → 11.29.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +3 -3
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.d.ts +14 -1
- package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.js +19 -0
- package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.js.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts +5 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +51 -12
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js.map +1 -1
- package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js +120 -69
- package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +49 -8
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.js +4 -3
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogNew.js.map +1 -1
- package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts +6 -3
- package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.js +38 -4
- package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.js.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/useParentFilters.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/useParentFilters.js +24 -13
- package/esm/presentation/filterBar/attributeFilter/useParentFilters.js.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.d.ts +1 -0
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.d.ts.map +1 -1
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js +2 -2
- package/esm/presentation/presentationComponents/DashboardItems/DashboardItem.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.js +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsSelect.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.d.ts +2 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.js +3 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/TargetDashboardFiltersContext.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts +31 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.js +148 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/messages.d.ts +3 -0
- package/esm/presentation/widget/insight/configuration/DrillFilters/messages.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/messages.js +3 -0
- package/esm/presentation/widget/insight/configuration/DrillFilters/messages.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.d.ts +3 -2
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.js +11 -27
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.d.ts +4 -2
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.js +6 -5
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.d.ts +4 -2
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.js +6 -4
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.js +11 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useDrillFiltersConfig.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.d.ts +2 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.js +4 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/useFetchTargetDashboardFilters.js.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.js +1 -1
- package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.js.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js +1 -1
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js.map +1 -1
- package/package.json +22 -22
- package/styles/css/main.css +3 -0
- package/styles/css/main.css.map +1 -1
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-4-
|
|
10
|
+
Date generated: 2026-4-7
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: e7d92955a4fa5541fb7203054137d5fda4e0c198
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -38173,4 +38173,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
38173
38173
|
--------------------------------------------------------------------------------
|
|
38174
38174
|
--------------------------------------------------------------------------------
|
|
38175
38175
|
|
|
38176
|
-
Report Generated by FOSSA on 2026-4-
|
|
38176
|
+
Report Generated by FOSSA on 2026-4-7
|
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.29.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.29.0-alpha.4";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.29.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.29.0-alpha.4";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
6
6
|
//# sourceMappingURL=__version.js.map
|
package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model";
|
|
1
|
+
import { type DashboardAttributeFilterItem, type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model";
|
|
2
2
|
/**
|
|
3
3
|
* Checks if a filter kind ("list" vs "text") is compatible with the dashboard attribute filter config's
|
|
4
4
|
* {@link DashboardAttributeFilterSelectionType}, using the same defaulting rules as filter context
|
|
@@ -9,4 +9,17 @@ import { type DashboardAttributeFilterSelectionType } from "@gooddata/sdk-model"
|
|
|
9
9
|
* @param defaultSelectionType - implicit selection type when config omits selectionType
|
|
10
10
|
*/
|
|
11
11
|
export declare function isFilterTypeCompatibleWithSelectionType(filterType: "list" | "text", configSelectionType: DashboardAttributeFilterSelectionType | undefined, defaultSelectionType?: "list" | "text" | "listOrText"): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if applying an incoming filter type ("list" or "text") is compatible with the target
|
|
14
|
+
* dashboard filter's selection type config.
|
|
15
|
+
*
|
|
16
|
+
* Encapsulates the default selection type rule:
|
|
17
|
+
* - Single-selection list filters default to "list"
|
|
18
|
+
* - All other filters (non-single list, text) default to "listOrText"
|
|
19
|
+
*
|
|
20
|
+
* @param incomingFilterType - "list" for element selection, "text" for arbitrary/match
|
|
21
|
+
* @param configSelectionType - selectionType from the target filter's attribute filter config, if set
|
|
22
|
+
* @param targetFilter - the target dashboard filter item to check against
|
|
23
|
+
*/
|
|
24
|
+
export declare function canApplyFilterTypeToTarget(incomingFilterType: "list" | "text", configSelectionType: DashboardAttributeFilterSelectionType | undefined, targetFilter: DashboardAttributeFilterItem): boolean;
|
|
12
25
|
//# sourceMappingURL=attributeFilterSelectionTypeCompatibility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeFilterSelectionTypeCompatibility.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"attributeFilterSelectionTypeCompatibility.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,qCAAqC,EAG7C,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,wBAAgB,uCAAuC,CACnD,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,mBAAmB,EAAE,qCAAqC,GAAG,SAAS,EACtE,oBAAoB,GAAE,MAAM,GAAG,MAAM,GAAG,YAA2B,GACpE,OAAO,CAMT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACtC,kBAAkB,EAAE,MAAM,GAAG,MAAM,EACnC,mBAAmB,EAAE,qCAAqC,GAAG,SAAS,EACtE,YAAY,EAAE,4BAA4B,GAC3C,OAAO,CAMT"}
|
package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
import { isDashboardAttributeFilter, isSingleSelectionFilter, } from "@gooddata/sdk-model";
|
|
2
3
|
/**
|
|
3
4
|
* Checks if a filter kind ("list" vs "text") is compatible with the dashboard attribute filter config's
|
|
4
5
|
* {@link DashboardAttributeFilterSelectionType}, using the same defaulting rules as filter context
|
|
@@ -15,4 +16,22 @@ export function isFilterTypeCompatibleWithSelectionType(filterType, configSelect
|
|
|
15
16
|
}
|
|
16
17
|
return effectiveSelectionType === filterType;
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Checks if applying an incoming filter type ("list" or "text") is compatible with the target
|
|
21
|
+
* dashboard filter's selection type config.
|
|
22
|
+
*
|
|
23
|
+
* Encapsulates the default selection type rule:
|
|
24
|
+
* - Single-selection list filters default to "list"
|
|
25
|
+
* - All other filters (non-single list, text) default to "listOrText"
|
|
26
|
+
*
|
|
27
|
+
* @param incomingFilterType - "list" for element selection, "text" for arbitrary/match
|
|
28
|
+
* @param configSelectionType - selectionType from the target filter's attribute filter config, if set
|
|
29
|
+
* @param targetFilter - the target dashboard filter item to check against
|
|
30
|
+
*/
|
|
31
|
+
export function canApplyFilterTypeToTarget(incomingFilterType, configSelectionType, targetFilter) {
|
|
32
|
+
const defaultType = isDashboardAttributeFilter(targetFilter) && isSingleSelectionFilter(targetFilter)
|
|
33
|
+
? "list"
|
|
34
|
+
: "listOrText";
|
|
35
|
+
return isFilterTypeCompatibleWithSelectionType(incomingFilterType, configSelectionType, defaultType);
|
|
36
|
+
}
|
|
18
37
|
//# sourceMappingURL=attributeFilterSelectionTypeCompatibility.js.map
|
package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeFilterSelectionTypeCompatibility.js","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"attributeFilterSelectionTypeCompatibility.js","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAGH,0BAA0B,EAC1B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,UAAU,uCAAuC,CACnD,UAA2B,EAC3B,mBAAsE,EACtE,oBAAoB,GAAmC,YAAY,EAC5D;IACP,MAAM,sBAAsB,GAAG,mBAAmB,IAAI,oBAAoB,CAAC;IAC3E,IAAI,sBAAsB,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,sBAAsB,KAAK,UAAU,CAAC;AAAA,CAChD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CACtC,kBAAmC,EACnC,mBAAsE,EACtE,YAA0C,EACnC;IACP,MAAM,WAAW,GACb,0BAA0B,CAAC,YAAY,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC;QAC7E,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,YAAY,CAAC;IACvB,OAAO,uCAAuC,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAAA,CACxG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type SagaIterator } from "redux-saga";
|
|
2
|
-
import { type IAttributeDisplayFormMetadataObject, type IDrillToCustomUrl as IDrillToCustomUrlModel, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type DashboardTextAttributeFilter, type IAttributeDisplayFormMetadataObject, type IDrillToCustomUrl as IDrillToCustomUrlModel, type ObjRef, type TextAttributeFilter } from "@gooddata/sdk-model";
|
|
3
3
|
import { type IDrillEvent, type IDrillEventIntersectionElement } from "@gooddata/sdk-ui";
|
|
4
4
|
import { type IDrillToCustomUrl } from "../../commands/drill.js";
|
|
5
5
|
import { type DashboardContext } from "../../types/commonTypes.js";
|
|
@@ -25,5 +25,9 @@ export declare function getDashboardAttributeFilterReplacements(url: string, ctx
|
|
|
25
25
|
export declare function getInsightAttributeFilterReplacements(url: string, widgetRef: ObjRef): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
|
|
26
26
|
export declare function getInsightIdentifiersReplacements(customUrl: string, widgetRef: ObjRef, ctx: DashboardContext): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
|
|
27
27
|
export declare function resolveDrillToCustomUrl(drillConfig: IDrillToCustomUrlModel, widgetRef: ObjRef, event: IDrillEvent, ctx: DashboardContext, cmd: IDrillToCustomUrl): SagaIterator<string>;
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function stringifyTextFilterSelection(filter: DashboardTextAttributeFilter | TextAttributeFilter): string;
|
|
28
32
|
export {};
|
|
29
33
|
//# sourceMappingURL=resolveDrillToCustomUrl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveDrillToCustomUrl.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/drill/resolveDrillToCustomUrl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAEH,KAAK,mCAAmC,EACxC,KAAK,iBAAiB,IAAI,sBAAsB,
|
|
1
|
+
{"version":3,"file":"resolveDrillToCustomUrl.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/drill/resolveDrillToCustomUrl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAEH,KAAK,4BAA4B,EACjC,KAAK,mCAAmC,EACxC,KAAK,iBAAiB,IAAI,sBAAsB,EAIhD,KAAK,MAAM,EACX,KAAK,mBAAmB,EAe3B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,8BAA8B,EAEtC,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAajE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE,UAAU,iCAAiC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,kBAAkB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAiB,gBAAgB,CAC7B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,kBAAkB,CAAC,CAYlC;AAED,wBAAiB,0BAA0B,CACvC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACpC,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CASpC;AAsBD,wBAAiB,0BAA0B,CACvC,sBAAsB,EAAE,mCAAmC,EAAE,EAC7D,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC;IACZ,2BAA2B,EAAE,mCAAmC,EAAE,CAAC;IACnE,uBAAuB,EAAE,mCAAmC,EAAE,CAAC;CAClE,CAAC,CAuBD;AAED,wBAAiB,yCAAyC,CACtD,yBAAyB,EAAE,8BAA8B,EAAE,EAC3D,sBAAsB,EAAE,mCAAmC,EAAE,EAC7D,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,kBAAkB,EAAE,CAAC,CA8CpC;AAKD,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,gBAAgB,GACtB,OAAO,CAAC,mCAAmC,EAAE,CAAC,CAEhD;AAED,wBAAiB,mCAAmC,CAChD,GAAG,EAAE,MAAM,EACX,yBAAyB,EAAE,8BAA8B,EAAE,EAC3D,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,iCAAiC,EAAE,CAAC,CAkCnD;AAuED,wBAAiB,uCAAuC,CACpD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,iCAAiC,EAAE,CAAC,CA8BnD;AAED,wBAAiB,qCAAqC,CAClD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAClB,YAAY,CAAC,iCAAiC,EAAE,CAAC,CAyCnD;AAOD,wBAAiB,iCAAiC,CAC9C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,gBAAgB,GACtB,YAAY,CAAC,iCAAiC,EAAE,CAAC,CAwCnD;AAYD,wBAAiB,uBAAuB,CACpC,WAAW,EAAE,sBAAsB,EACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,iBAAiB,GACvB,YAAY,CAAC,MAAM,CAAC,CAmDtB;AAMD;;GAEG;AACH,wBAAgB,4BAA4B,CACxC,MAAM,EAAE,4BAA4B,GAAG,mBAAmB,GAC3D,MAAM,CAOR"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import stringify from "json-stable-stringify";
|
|
3
3
|
import { groupBy } from "lodash-es";
|
|
4
4
|
import { all, call, select } from "redux-saga/effects";
|
|
5
|
-
import { areObjRefsEqual, filterAttributeElements, filterObjRef, idRef, insightId, isAttributeDescriptor, isAttributeElementsByValue, isDashboardAttributeFilter, isNegativeAttributeFilter, } from "@gooddata/sdk-model";
|
|
5
|
+
import { areObjRefsEqual, dashboardAttributeFilterItemDisplayForm, filterAttributeElements, filterObjRef, idRef, insightId, isArbitraryAttributeFilter, isAttributeDescriptor, isAttributeElementsByValue, isDashboardArbitraryAttributeFilter, isDashboardAttributeFilter, isDashboardTextAttributeFilter, isNegativeAttributeFilter, isTextAttributeFilter, } from "@gooddata/sdk-model";
|
|
6
6
|
import { getAttributeIdentifiersPlaceholdersFromUrl, getDashboardAttributeFilterPlaceholdersFromUrl, getInsightAttributeFilterPlaceholdersFromUrl, } from "@gooddata/sdk-model/internal";
|
|
7
7
|
import { isDrillIntersectionAttributeItem, } from "@gooddata/sdk-ui";
|
|
8
8
|
import { getElementTitle, getElementsSecondaryTitles } from "./getElementTitle.js";
|
|
@@ -100,8 +100,23 @@ export function* getAttributeIdentifiersReplacements(url, drillIntersectionEleme
|
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
102
|
function* resolveDashboardAttributeFilterReplacement({ placeholder: toBeReplaced, ref }, attributeFilters, catalogDisplayForms, attributeFilterConfigs, ctx) {
|
|
103
|
-
//
|
|
104
|
-
|
|
103
|
+
// Check for text filters (arbitrary/match) first — they use different value structures.
|
|
104
|
+
const textFilter = attributeFilters.find((filter) => {
|
|
105
|
+
if (!isDashboardTextAttributeFilter(filter)) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const df = catalogDisplayForms.get(dashboardAttributeFilterItemDisplayForm(filter));
|
|
109
|
+
return df && areObjRefsEqual(idRef(df.id), ref);
|
|
110
|
+
});
|
|
111
|
+
if (textFilter && isDashboardTextAttributeFilter(textFilter)) {
|
|
112
|
+
const parsedFilter = stringifyTextFilterSelection(textFilter);
|
|
113
|
+
const replacement = encodeParameterIfSet(parsedFilter);
|
|
114
|
+
return {
|
|
115
|
+
toBeReplaced,
|
|
116
|
+
replacement: replacement,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Standard (element-based) attribute filters
|
|
105
120
|
const standardFilters = attributeFilters.filter(isDashboardAttributeFilter);
|
|
106
121
|
let usedFilter = standardFilters.find((filter) => {
|
|
107
122
|
const df = catalogDisplayForms.get(filter.attributeFilter.displayForm);
|
|
@@ -144,7 +159,6 @@ export function* getDashboardAttributeFilterReplacements(url, ctx) {
|
|
|
144
159
|
if (attributeFilterPlaceholders.length === 0) {
|
|
145
160
|
return [];
|
|
146
161
|
}
|
|
147
|
-
// TODO INE: consider using narrow selector as text filters are ignored in resolveDashboardAttributeFilterReplacement
|
|
148
162
|
const attributeFilters = yield select(selectFilterContextAttributeFilterItems);
|
|
149
163
|
const catalogDisplayForms = yield select(selectAllCatalogDisplayFormsMap);
|
|
150
164
|
const attributeFilterConfigs = yield select(selectAttributeFilterConfigsOverrides);
|
|
@@ -163,14 +177,18 @@ export function* getInsightAttributeFilterReplacements(url, widgetRef) {
|
|
|
163
177
|
const df = filterRef && catalogDisplayForms.get(filterRef);
|
|
164
178
|
return df && areObjRefsEqual(idRef(df.id), ref);
|
|
165
179
|
});
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
180
|
+
let parsedFilter;
|
|
181
|
+
if (usedFilter && isTextAttributeFilter(usedFilter)) {
|
|
182
|
+
parsedFilter = stringifyTextFilterSelection(usedFilter);
|
|
183
|
+
}
|
|
184
|
+
else if (usedFilter) {
|
|
185
|
+
const elements = filterAttributeElements(usedFilter);
|
|
186
|
+
const attributeElementsValues = isAttributeElementsByValue(elements)
|
|
187
|
+
? elements.values
|
|
188
|
+
: (elements?.uris ?? []);
|
|
189
|
+
const isNegative = isNegativeAttributeFilter(usedFilter);
|
|
190
|
+
parsedFilter = stringifyAttributeFilterSelection(attributeElementsValues, isNegative);
|
|
191
|
+
}
|
|
174
192
|
const replacement = encodeParameterIfSet(parsedFilter);
|
|
175
193
|
return {
|
|
176
194
|
toBeReplaced,
|
|
@@ -226,4 +244,25 @@ export function* resolveDrillToCustomUrl(drillConfig, widgetRef, event, ctx, cmd
|
|
|
226
244
|
function stringifyAttributeFilterSelection(selection, isNegative) {
|
|
227
245
|
return `${isNegative ? "NOT_IN" : "IN"}${stringify(selection)}`;
|
|
228
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* @internal
|
|
249
|
+
*/
|
|
250
|
+
export function stringifyTextFilterSelection(filter) {
|
|
251
|
+
if (isDashboardArbitraryAttributeFilter(filter) || isArbitraryAttributeFilter(filter)) {
|
|
252
|
+
const { values, negativeSelection } = filter.arbitraryAttributeFilter;
|
|
253
|
+
return stringifyAttributeFilterSelection(values, negativeSelection ?? false);
|
|
254
|
+
}
|
|
255
|
+
const { literal, operator, negativeSelection } = filter.matchAttributeFilter;
|
|
256
|
+
return stringifyMatchFilterSelection(literal, operator, negativeSelection ?? false);
|
|
257
|
+
}
|
|
258
|
+
const MATCH_OPERATOR_MAP = {
|
|
259
|
+
contains: "CONTAINS",
|
|
260
|
+
startsWith: "STARTS_WITH",
|
|
261
|
+
endsWith: "ENDS_WITH",
|
|
262
|
+
};
|
|
263
|
+
function stringifyMatchFilterSelection(literal, operator, isNegative) {
|
|
264
|
+
const operatorStr = MATCH_OPERATOR_MAP[operator];
|
|
265
|
+
const prefix = isNegative ? `NOT_${operatorStr}` : operatorStr;
|
|
266
|
+
return `${prefix}${stringify([literal])}`;
|
|
267
|
+
}
|
|
229
268
|
//# sourceMappingURL=resolveDrillToCustomUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveDrillToCustomUrl.js","sourceRoot":"","sources":["../../../../src/model/commandHandlers/drill/resolveDrillToCustomUrl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveDrillToCustomUrl.js","sourceRoot":"","sources":["../../../../src/model/commandHandlers/drill/resolveDrillToCustomUrl.ts"],"names":[],"mappings":"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"}
|
package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeFilterContextSelectionHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAqC/C,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"changeFilterContextSelectionHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAqC/C,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAkC9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA6FnE,wBAAiB,mCAAmC,CAChD,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,4BAA4B,GAClC,YAAY,CAAC,IAAI,CAAC,CA4HpB"}
|
|
@@ -10,11 +10,12 @@ import { dashboardFilterToFilterContextItem } from "../../../_staging/dashboard/
|
|
|
10
10
|
import { invalidArgumentsProvided } from "../../events/general.js";
|
|
11
11
|
import { dispatchDashboardEvent } from "../../store/_infra/eventDispatcher.js";
|
|
12
12
|
import { selectAttributeFilterConfigsOverrides, selectAttributeFilterConfigsOverridesByTab, selectAttributeFilterConfigsSelectionTypeMap, selectAttributeFilterConfigsSelectionTypeMapByTab, } from "../../store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
13
|
-
import { selectAttributeFilterDisplayFormsMap, selectFilterContextAttributeFilterByDisplayForm, selectFilterContextAttributeFilterByDisplayFormForTab, selectFilterContextAttributeFilterByLocalId, selectFilterContextAttributeFilterByLocalIdForTab, selectFilterContextAttributeFilterItemByLocalId, selectFilterContextAttributeFilterItemByLocalIdForTab, selectFilterContextAttributeFilterItems, selectFilterContextAttributeFilterItemsForTab, selectFilterContextAttributeFilters, selectFilterContextAttributeFiltersForTab, selectFilterContextDateFilterByDataSet, selectFilterContextDateFilterByDataSetForTab, selectFilterContextDateFiltersWithDimension, selectFilterContextDateFiltersWithDimensionForTab, } from "../../store/tabs/filterContext/filterContextSelectors.js";
|
|
13
|
+
import { selectAttributeFilterDisplayFormsMap, selectFilterContextAttributeFilterByDisplayForm, selectFilterContextAttributeFilterByDisplayFormForTab, selectFilterContextAttributeFilterByLocalId, selectFilterContextAttributeFilterByLocalIdForTab, selectFilterContextAttributeFilterItemByDisplayForm, selectFilterContextAttributeFilterItemByDisplayFormForTab, selectFilterContextAttributeFilterItemByLocalId, selectFilterContextAttributeFilterItemByLocalIdForTab, selectFilterContextAttributeFilterItems, selectFilterContextAttributeFilterItemsForTab, selectFilterContextAttributeFilters, selectFilterContextAttributeFiltersForTab, selectFilterContextDateFilterByDataSet, selectFilterContextDateFilterByDataSetForTab, selectFilterContextDateFiltersWithDimension, selectFilterContextDateFiltersWithDimensionForTab, } from "../../store/tabs/filterContext/filterContextSelectors.js";
|
|
14
14
|
import { tabsActions } from "../../store/tabs/index.js";
|
|
15
15
|
import { selectTabs } from "../../store/tabs/tabsSelectors.js";
|
|
16
16
|
import { resolveAttributeMetadata } from "../../utils/attributeResolver.js";
|
|
17
17
|
import { resolveDisplayFormMetadata, } from "../../utils/displayFormResolver.js";
|
|
18
|
+
import { canApplyFilterTypeToTarget } from "../dashboard/common/attributeFilterSelectionTypeCompatibility.js";
|
|
18
19
|
// Tab-aware select helpers — encapsulate the "if tab select ForTab else select" pattern.
|
|
19
20
|
// Named after the base selector they wrap.
|
|
20
21
|
function* selectFilterContextAttributeFilterByDisplayFormTabAware(displayForm, tabLocalIdentifier) {
|
|
@@ -27,6 +28,11 @@ function* selectFilterContextAttributeFilterItemByLocalIdTabAware(localId, tabLo
|
|
|
27
28
|
? yield select(selectFilterContextAttributeFilterItemByLocalIdForTab(localId, tabLocalIdentifier))
|
|
28
29
|
: yield select(selectFilterContextAttributeFilterItemByLocalId(localId));
|
|
29
30
|
}
|
|
31
|
+
function* selectFilterContextAttributeFilterItemByDisplayFormTabAware(displayForm, tabLocalIdentifier) {
|
|
32
|
+
return tabLocalIdentifier
|
|
33
|
+
? yield select(selectFilterContextAttributeFilterItemByDisplayFormForTab(displayForm, tabLocalIdentifier))
|
|
34
|
+
: yield select(selectFilterContextAttributeFilterItemByDisplayForm(displayForm));
|
|
35
|
+
}
|
|
30
36
|
function* selectFilterContextAttributeFilterByLocalIdTabAware(localId, tabLocalIdentifier) {
|
|
31
37
|
return tabLocalIdentifier
|
|
32
38
|
? yield select(selectFilterContextAttributeFilterByLocalIdForTab(localId, tabLocalIdentifier))
|
|
@@ -90,11 +96,11 @@ export function* changeFilterContextSelectionHandler(ctx, cmd) {
|
|
|
90
96
|
const supportedFilters = normalizedFilters.filter((filter) => isDashboardAttributeFilter(filter) || isDashboardDateFilter(filter));
|
|
91
97
|
const uniqueFilters = uniqBy(supportedFilters, (filter) => {
|
|
92
98
|
const identification = isDashboardAttributeFilter(filter)
|
|
93
|
-
? filter
|
|
99
|
+
? dashboardAttributeFilterItemDisplayForm(filter)
|
|
94
100
|
: filter.dateFilter.dataSet;
|
|
95
101
|
let config;
|
|
96
102
|
if (isDashboardAttributeFilter(filter)) {
|
|
97
|
-
config = attributeFilterConfigs.find((config) => config.localIdentifier === filter
|
|
103
|
+
config = attributeFilterConfigs.find((config) => config.localIdentifier === dashboardAttributeFilterItemLocalIdentifier(filter));
|
|
98
104
|
}
|
|
99
105
|
// do not remove duplicates using same primary label, but different display as label
|
|
100
106
|
const secondaryIdentification = config?.displayAsLabel ? objRefToString(config.displayAsLabel) : "";
|
|
@@ -147,8 +153,8 @@ function* getDashboardFilterByDisplayAsLabelMatching(attributeFilter, attributeF
|
|
|
147
153
|
let foundByDisplayAsLabel = false;
|
|
148
154
|
let foundByDashboardFilterDisplayAsLabel = false;
|
|
149
155
|
let dashboardFilter = undefined;
|
|
150
|
-
const filterRef = attributeFilter
|
|
151
|
-
const filterConfig = attributeFilterConfigs.find((config) => config.localIdentifier === attributeFilter
|
|
156
|
+
const filterRef = dashboardAttributeFilterItemDisplayForm(attributeFilter);
|
|
157
|
+
const filterConfig = attributeFilterConfigs.find((config) => config.localIdentifier === dashboardAttributeFilterItemLocalIdentifier(attributeFilter));
|
|
152
158
|
if (filterConfig?.displayAsLabel) {
|
|
153
159
|
dashboardFilter = (yield call(selectFilterContextAttributeFilterByDisplayFormTabAware, filterConfig.displayAsLabel, tabLocalIdentifier));
|
|
154
160
|
foundByDisplayAsLabel = !!dashboardFilter;
|
|
@@ -167,13 +173,37 @@ function* getDashboardFilterByDisplayAsLabelMatching(attributeFilter, attributeF
|
|
|
167
173
|
}
|
|
168
174
|
return { foundByDisplayAsLabel, foundByDashboardFilterDisplayAsLabel, dashboardFilter };
|
|
169
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Finds a matching filter item on the target dashboard for a text filter using displayForm-based matching.
|
|
178
|
+
* Tries:
|
|
179
|
+
* 1. Direct displayForm match (works for text→text and text→list by primary displayForm)
|
|
180
|
+
* 2. DisplayAsLabel match (text filter's displayForm matches a list filter's displayAsLabel in config)
|
|
181
|
+
*/
|
|
182
|
+
function* findTargetFilterItemByDisplayForm(displayFormRef, tabLocalIdentifier) {
|
|
183
|
+
// Direct displayForm match — covers text→text and text→list (by primary displayForm)
|
|
184
|
+
const directMatch = yield call(selectFilterContextAttributeFilterItemByDisplayFormTabAware, displayFormRef, tabLocalIdentifier);
|
|
185
|
+
if (directMatch) {
|
|
186
|
+
return directMatch;
|
|
187
|
+
}
|
|
188
|
+
// DisplayAsLabel match — text filter's displayForm may match a list filter's displayAsLabel
|
|
189
|
+
const dashboardFiltersConfigsForActiveTab = yield select(selectAttributeFilterConfigsOverrides);
|
|
190
|
+
const dashboardFiltersConfigsByTab = yield select(selectAttributeFilterConfigsOverridesByTab);
|
|
191
|
+
const dashboardFiltersConfigs = tabLocalIdentifier
|
|
192
|
+
? dashboardFiltersConfigsByTab[tabLocalIdentifier]
|
|
193
|
+
: dashboardFiltersConfigsForActiveTab;
|
|
194
|
+
const matchingConfig = dashboardFiltersConfigs?.find((config) => areObjRefsEqual(config.displayAsLabel, displayFormRef));
|
|
195
|
+
if (matchingConfig) {
|
|
196
|
+
return yield call(selectFilterContextAttributeFilterItemByLocalIdTabAware, matchingConfig.localIdentifier, tabLocalIdentifier);
|
|
197
|
+
}
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
170
200
|
function* getAttributeFiltersUpdateActions(attributeFilters, textAttributeFilters, attributeFilterConfigs, resetOthers, ctx, tabLocalIdentifier, selectionTypeMap) {
|
|
171
201
|
const updateActions = [];
|
|
172
202
|
const displayFormsToResolve = [];
|
|
173
203
|
const handledLocalIds = new Set();
|
|
174
|
-
const resolvedDisplayForms = yield call(resolveDisplayFormMetadata, ctx, attributeFilters.map((af) => af
|
|
204
|
+
const resolvedDisplayForms = yield call(resolveDisplayFormMetadata, ctx, attributeFilters.map((af) => dashboardAttributeFilterItemDisplayForm(af)));
|
|
175
205
|
for (const attributeFilter of attributeFilters) {
|
|
176
|
-
const filterRef = attributeFilter
|
|
206
|
+
const filterRef = dashboardAttributeFilterItemDisplayForm(attributeFilter);
|
|
177
207
|
// only attribute filters with elements are relevant
|
|
178
208
|
let dashboardFilter = yield call(selectFilterContextAttributeFilterByDisplayFormTabAware, filterRef, tabLocalIdentifier);
|
|
179
209
|
if (!dashboardFilter && canMapDashboardFilterFromAnotherDisplayForm(ctx)) {
|
|
@@ -189,20 +219,22 @@ function* getAttributeFiltersUpdateActions(attributeFilters, textAttributeFilter
|
|
|
189
219
|
}
|
|
190
220
|
const displayFormData = resolvedDisplayForms.resolved.get(filterRef);
|
|
191
221
|
if (dashboardFilter) {
|
|
222
|
+
const dashboardFilterLocalId = dashboardAttributeFilterItemLocalIdentifier(dashboardFilter);
|
|
223
|
+
const dashboardFilterDisplayForm = dashboardAttributeFilterItemDisplayForm(dashboardFilter);
|
|
192
224
|
if (foundByDisplayAsLabel && displayFormData) {
|
|
193
225
|
updateActions.push(
|
|
194
226
|
// keep the attribute display form field up to date
|
|
195
227
|
tabsActions.addAttributeFilterDisplayForm(tabLocalIdentifier
|
|
196
228
|
? { displayForm: displayFormData, tabLocalIdentifier }
|
|
197
229
|
: displayFormData), tabsActions.changeAttributeDisplayForm({
|
|
198
|
-
filterLocalId:
|
|
230
|
+
filterLocalId: dashboardFilterLocalId,
|
|
199
231
|
displayForm: filterRef,
|
|
200
232
|
tabLocalIdentifier,
|
|
201
233
|
}),
|
|
202
234
|
// backup current displayForm to the displayAsLabel
|
|
203
235
|
tabsActions.changeDisplayAsLabel({
|
|
204
|
-
localIdentifier:
|
|
205
|
-
displayAsLabel:
|
|
236
|
+
localIdentifier: dashboardFilterLocalId,
|
|
237
|
+
displayAsLabel: dashboardFilterDisplayForm,
|
|
206
238
|
tabLocalIdentifier,
|
|
207
239
|
}));
|
|
208
240
|
}
|
|
@@ -212,13 +244,13 @@ function* getAttributeFiltersUpdateActions(attributeFilters, textAttributeFilter
|
|
|
212
244
|
tabsActions.addAttributeFilterDisplayForm(tabLocalIdentifier
|
|
213
245
|
? { displayForm: displayFormData, tabLocalIdentifier }
|
|
214
246
|
: displayFormData), tabsActions.changeAttributeDisplayForm({
|
|
215
|
-
filterLocalId:
|
|
247
|
+
filterLocalId: dashboardFilterLocalId,
|
|
216
248
|
displayForm: filterRef,
|
|
217
249
|
tabLocalIdentifier,
|
|
218
250
|
}),
|
|
219
251
|
// clear displayAsLabel
|
|
220
252
|
tabsActions.changeDisplayAsLabel({
|
|
221
|
-
localIdentifier:
|
|
253
|
+
localIdentifier: dashboardFilterLocalId,
|
|
222
254
|
displayAsLabel: undefined,
|
|
223
255
|
tabLocalIdentifier,
|
|
224
256
|
}));
|
|
@@ -228,84 +260,103 @@ function* getAttributeFiltersUpdateActions(attributeFilters, textAttributeFilter
|
|
|
228
260
|
...getAttributeFilterSelectionPayload(attributeFilter, dashboardFilter),
|
|
229
261
|
tabLocalIdentifier,
|
|
230
262
|
}));
|
|
231
|
-
handledLocalIds.add(
|
|
263
|
+
handledLocalIds.add(dashboardFilterLocalId);
|
|
232
264
|
}
|
|
233
265
|
else {
|
|
234
|
-
// No list filter found by displayForm — check if a text filter exists
|
|
235
|
-
//
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
displayAsLabel: dashboardAttributeFilterItemDisplayForm(existingFilterItem),
|
|
252
|
-
tabLocalIdentifier,
|
|
253
|
-
}));
|
|
254
|
-
displayFormsToResolve.push(attributeFilter.attributeFilter.displayForm);
|
|
255
|
-
handledLocalIds.add(localId);
|
|
266
|
+
// No list filter found by displayForm — check if a text filter exists
|
|
267
|
+
// that can accept the incoming list filter (list→text migration).
|
|
268
|
+
// Try localId first (same-dashboard), then displayForm fallback (cross-dashboard drill).
|
|
269
|
+
const sourceLocalId = dashboardAttributeFilterItemLocalIdentifier(attributeFilter);
|
|
270
|
+
const sourceDisplayForm = dashboardAttributeFilterItemDisplayForm(attributeFilter);
|
|
271
|
+
let targetTextFilter;
|
|
272
|
+
if (sourceLocalId) {
|
|
273
|
+
targetTextFilter = (yield call(selectFilterContextAttributeFilterItemByLocalIdTabAware, sourceLocalId, tabLocalIdentifier));
|
|
274
|
+
}
|
|
275
|
+
// DisplayForm fallback for cross-dashboard drill where localIds differ
|
|
276
|
+
if (!targetTextFilter) {
|
|
277
|
+
targetTextFilter = (yield call(findTargetFilterItemByDisplayForm, sourceDisplayForm, tabLocalIdentifier));
|
|
278
|
+
// Also try source's displayAsLabel from incoming attributeFilterConfigs
|
|
279
|
+
if (!targetTextFilter) {
|
|
280
|
+
const incomingConfig = attributeFilterConfigs.find((config) => config.localIdentifier === sourceLocalId);
|
|
281
|
+
if (incomingConfig?.displayAsLabel) {
|
|
282
|
+
targetTextFilter = (yield call(findTargetFilterItemByDisplayForm, incomingConfig.displayAsLabel, tabLocalIdentifier));
|
|
256
283
|
}
|
|
257
284
|
}
|
|
258
285
|
}
|
|
286
|
+
if (targetTextFilter && isDashboardTextAttributeFilter(targetTextFilter)) {
|
|
287
|
+
const targetLocalId = dashboardAttributeFilterItemLocalIdentifier(targetTextFilter);
|
|
288
|
+
const configSelectionType = selectionTypeMap?.get(targetLocalId);
|
|
289
|
+
if (canApplyFilterTypeToTarget("list", configSelectionType, targetTextFilter)) {
|
|
290
|
+
// Text → list: set displayAsLabel to the text filter's displayForm
|
|
291
|
+
// so the list filter visually shows the same label
|
|
292
|
+
updateActions.push(tabsActions.replaceAttributeFilterItem({
|
|
293
|
+
filterLocalId: targetLocalId,
|
|
294
|
+
filter: attributeFilter,
|
|
295
|
+
tabLocalIdentifier,
|
|
296
|
+
}), tabsActions.changeDisplayAsLabel({
|
|
297
|
+
localIdentifier: targetLocalId,
|
|
298
|
+
displayAsLabel: dashboardAttributeFilterItemDisplayForm(targetTextFilter),
|
|
299
|
+
tabLocalIdentifier,
|
|
300
|
+
}));
|
|
301
|
+
displayFormsToResolve.push(sourceDisplayForm);
|
|
302
|
+
handledLocalIds.add(targetLocalId);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
259
305
|
}
|
|
260
306
|
}
|
|
261
307
|
// Build replace actions for text filter types (arbitrary, match).
|
|
262
308
|
for (const textFilter of textAttributeFilters) {
|
|
263
309
|
const localId = dashboardAttributeFilterItemLocalIdentifier(textFilter);
|
|
264
|
-
if (localId) {
|
|
265
|
-
|
|
266
|
-
|
|
310
|
+
if (!localId) {
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
// 1. Try localId match first (same-dashboard scenario)
|
|
314
|
+
let existingFilter = yield call(selectFilterContextAttributeFilterItemByLocalIdTabAware, localId, tabLocalIdentifier);
|
|
315
|
+
// 2. DisplayForm fallback for cross-dashboard drill where localIds differ
|
|
316
|
+
if (!existingFilter) {
|
|
317
|
+
const textDisplayForm = dashboardAttributeFilterItemDisplayForm(textFilter);
|
|
318
|
+
existingFilter = (yield call(findTargetFilterItemByDisplayForm, textDisplayForm, tabLocalIdentifier));
|
|
319
|
+
}
|
|
320
|
+
if (!existingFilter) {
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
const targetLocalId = dashboardAttributeFilterItemLocalIdentifier(existingFilter);
|
|
324
|
+
if (handledLocalIds.has(targetLocalId)) {
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
327
|
+
// Check if migration is allowed based on selection type config
|
|
328
|
+
const isExistingText = isDashboardTextAttributeFilter(existingFilter);
|
|
329
|
+
if (!isExistingText) {
|
|
330
|
+
// Text → list migration: check if target's selection type allows text
|
|
331
|
+
const configSelectionType = selectionTypeMap?.get(targetLocalId);
|
|
332
|
+
if (!canApplyFilterTypeToTarget("text", configSelectionType, existingFilter)) {
|
|
267
333
|
continue;
|
|
268
334
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
updateActions.push(tabsActions.replaceAttributeFilterItem({
|
|
285
|
-
filterLocalId: localId,
|
|
286
|
-
filter: textFilter,
|
|
335
|
+
}
|
|
336
|
+
updateActions.push(tabsActions.replaceAttributeFilterItem({
|
|
337
|
+
filterLocalId: targetLocalId,
|
|
338
|
+
filter: textFilter,
|
|
339
|
+
tabLocalIdentifier,
|
|
340
|
+
}));
|
|
341
|
+
// List → text: update displayAsLabel to match the text filter's displayForm
|
|
342
|
+
if (!isExistingText) {
|
|
343
|
+
const textDisplayForm = dashboardAttributeFilterItemDisplayForm(textFilter);
|
|
344
|
+
updateActions.push(tabsActions.changeDisplayAsLabel({
|
|
345
|
+
localIdentifier: targetLocalId,
|
|
346
|
+
displayAsLabel: textDisplayForm,
|
|
287
347
|
tabLocalIdentifier,
|
|
288
348
|
}));
|
|
289
|
-
|
|
290
|
-
if (!isExistingText) {
|
|
291
|
-
const textDisplayForm = dashboardAttributeFilterItemDisplayForm(textFilter);
|
|
292
|
-
updateActions.push(tabsActions.changeDisplayAsLabel({
|
|
293
|
-
localIdentifier: localId,
|
|
294
|
-
displayAsLabel: textDisplayForm,
|
|
295
|
-
tabLocalIdentifier,
|
|
296
|
-
}));
|
|
297
|
-
displayFormsToResolve.push(textDisplayForm);
|
|
298
|
-
}
|
|
299
|
-
handledLocalIds.add(localId);
|
|
349
|
+
displayFormsToResolve.push(textDisplayForm);
|
|
300
350
|
}
|
|
351
|
+
handledLocalIds.add(targetLocalId);
|
|
301
352
|
}
|
|
302
353
|
if (resetOthers) {
|
|
303
354
|
const currentAttributeFilters = yield call(selectFilterContextAttributeFiltersTabAware, tabLocalIdentifier);
|
|
304
355
|
// for element-based filters that have not been handled, create clear selection actions
|
|
305
|
-
const unhandledFilters = currentAttributeFilters.filter((filter) => !handledLocalIds.has(filter
|
|
356
|
+
const unhandledFilters = currentAttributeFilters.filter((filter) => !handledLocalIds.has(dashboardAttributeFilterItemLocalIdentifier(filter)));
|
|
306
357
|
if (unhandledFilters.length > 0) {
|
|
307
358
|
updateActions.push(tabsActions.clearAttributeFiltersSelection({
|
|
308
|
-
filterLocalIds: unhandledFilters.map((filter) => filter
|
|
359
|
+
filterLocalIds: unhandledFilters.map((filter) => dashboardAttributeFilterItemLocalIdentifier(filter)),
|
|
309
360
|
tabLocalIdentifier,
|
|
310
361
|
}));
|
|
311
362
|
}
|