@gooddata/sdk-ui-dashboard 11.62.0-alpha.1 → 11.62.0-alpha.3
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 +40 -618
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/dashboard/dashboardFilterContext.d.ts.map +1 -1
- package/esm/_staging/dashboard/dashboardFilterContext.js +4 -2
- package/esm/_staging/dashboard/dashboardFilterContextValidation.js +1 -1
- package/esm/index.d.ts +5 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.d.ts +2 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.js +4 -5
- package/esm/kdaDialog/composition/KeyDriversFooter.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.js +12 -4
- package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts +3 -2
- package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/filterViews.js +12 -6
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +5 -6
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.js +2 -0
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +3 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +27 -10
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +4 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +5 -3
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts +21 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +56 -54
- package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/changeAttributeFilterSelectionHandler.js +17 -4
- package/esm/model/commandHandlers/filterContext/attributeFilter/replaceAttributeFilterItemSelectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/attributeFilter/replaceAttributeFilterItemSelectionHandler.js +6 -1
- package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/changeFilterContextSelectionHandler.js +188 -70
- package/esm/model/commandHandlers/filterContext/common.d.ts +14 -2
- package/esm/model/commandHandlers/filterContext/common.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/common.js +43 -6
- package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/dateFilter/changeDateFilterSelectionHandler.js +13 -3
- package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterConditionHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterConditionHandler.js +11 -2
- package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterDimensionalityHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/measureValueFilter/changeMeasureValueFilterDimensionalityHandler.js +3 -0
- package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.d.ts +10 -2
- package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/parameters/changeParameterValuesHandler.js +20 -3
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +21 -4
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js +27 -3
- package/esm/model/commands/filters.d.ts +16 -1
- package/esm/model/commands/filters.d.ts.map +1 -1
- package/esm/model/commands/filters.js +4 -3
- package/esm/model/commands/parameters.d.ts +4 -3
- package/esm/model/commands/parameters.d.ts.map +1 -1
- package/esm/model/commands/parameters.js +3 -2
- package/esm/model/events/dashboard.d.ts +17 -1
- package/esm/model/events/dashboard.d.ts.map +1 -1
- package/esm/model/events/dashboard.js +2 -1
- package/esm/model/store/drill/drillSelectors.d.ts +6 -0
- package/esm/model/store/drill/drillSelectors.d.ts.map +1 -1
- package/esm/model/store/drill/drillSelectors.js +9 -0
- package/esm/model/store/filtering/dashboardFilterSelectors.d.ts +6 -1
- package/esm/model/store/filtering/dashboardFilterSelectors.d.ts.map +1 -1
- package/esm/model/store/filtering/dashboardFilterSelectors.js +21 -19
- package/esm/model/store/filtering/restrictedFilterUtils.d.ts +26 -1
- package/esm/model/store/filtering/restrictedFilterUtils.d.ts.map +1 -1
- package/esm/model/store/filtering/restrictedFilterUtils.js +74 -6
- package/esm/model/store/meta/metaSelectors.d.ts +6 -0
- package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.js +13 -3
- package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts +48 -0
- package/esm/model/store/tabs/filterContext/filterContextReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextReducers.js +362 -102
- package/esm/model/store/tabs/filterContext/filterContextSelectors.d.ts +74 -1
- package/esm/model/store/tabs/filterContext/filterContextSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/filterContext/filterContextSelectors.js +27 -21
- package/esm/model/store/tabs/filterContext/filterSync.d.ts +101 -0
- package/esm/model/store/tabs/filterContext/filterSync.d.ts.map +1 -0
- package/esm/model/store/tabs/filterContext/filterSync.js +361 -0
- package/esm/model/store/tabs/index.d.ts +2 -0
- package/esm/model/store/tabs/index.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersReducers.d.ts +5 -0
- package/esm/model/store/tabs/parameters/parametersReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersReducers.js +9 -5
- package/esm/model/store/tabs/tabsReducers.d.ts +6 -0
- package/esm/model/store/tabs/tabsReducers.d.ts.map +1 -1
- package/esm/model/store/tabs/tabsReducers.js +14 -6
- package/esm/model/store/tabs/tabsState.d.ts +10 -0
- package/esm/model/store/tabs/tabsState.d.ts.map +1 -1
- package/esm/model/store/tabs/tabsState.js +20 -0
- package/esm/model/store/unavailableObjects/copyBlockingReferences.d.ts +5 -3
- package/esm/model/store/unavailableObjects/copyBlockingReferences.d.ts.map +1 -1
- package/esm/model/store/unavailableObjects/copyBlockingReferences.js +9 -16
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts +0 -16
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts.map +1 -1
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.js +0 -18
- package/esm/model/utils/attributeFilterMatching.d.ts +38 -0
- package/esm/model/utils/attributeFilterMatching.d.ts.map +1 -0
- package/esm/model/utils/attributeFilterMatching.js +110 -0
- package/esm/model/utils/attributeFilterSelectionTypeCompatibility.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/state/types.d.ts +2 -2
- package/esm/presentation/automations/alerting/state/types.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +7 -3
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts +6 -2
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/types.d.ts +2 -2
- package/esm/presentation/automations/scheduledEmail/state/types.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/types.d.ts +2 -2
- package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts +11 -1
- package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/automationParameters.js +2 -0
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts +3 -3
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.js +3 -13
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts +2 -2
- package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts +6 -2
- package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +2 -2
- package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/utils.js +8 -0
- package/esm/presentation/automations/shared/filters/conversions.d.ts +1 -1
- package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
- package/esm/presentation/automations/shared/filters/conversions.js +5 -3
- package/esm/presentation/automations/shared/slots/types.d.ts +2 -2
- package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/useDialogData.js +1 -1
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +1 -4
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.d.ts +2 -11
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.js +17 -16
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/staticListItems.d.ts +11 -0
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/staticListItems.d.ts.map +1 -0
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/staticListItems.js +7 -0
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useMetricDropdownItems.d.ts +2 -11
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useMetricDropdownItems.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useMetricDropdownItems.js +0 -6
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useParameterDropdownItems.d.ts +34 -0
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useParameterDropdownItems.d.ts.map +1 -0
- package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/useParameterDropdownItems.js +41 -0
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useLimitingItemsConfiguration.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useLimitingItemsConfiguration.js +4 -17
- package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.js +4 -13
- package/esm/presentation/filterBar/attributeFilter/useParentFilters.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/useParentFilters.js +3 -10
- package/esm/presentation/filterBar/filterBar/DefaultDashboardFilterGroup.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultDashboardFilterGroup.js +0 -9
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarItem.js +15 -3
- package/esm/presentation/filterBar/filterBar/hooks/useResetFiltersButton.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/hooks/useResetFiltersButton.js +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +8 -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 +8 -0
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts +2 -3
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/drillFiltersConfigUtils.js +29 -133
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapDashboardFilterToOption.js +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceInsightFilterToOption.js +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/DrillFilters/optionMappings/mapSourceMeasureFilterToOption.js +1 -1
- package/esm/sdk-ui-dashboard.d.ts +151 -13
- package/package.json +23 -23
- package/styles/css/drillDialog.css +4 -0
- package/styles/css/drillDialog.css.map +1 -1
- package/styles/css/main.css +8 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/drillDialog.scss +5 -0
- package/esm/model/commandHandlers/dashboard/common/attributeFilterSelectionTypeCompatibility.d.ts.map +0 -1
- /package/esm/model/{commandHandlers/dashboard/common → utils}/attributeFilterSelectionTypeCompatibility.d.ts +0 -0
- /package/esm/model/{commandHandlers/dashboard/common → utils}/attributeFilterSelectionTypeCompatibility.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/model/events/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAOjD;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACtC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG;IACjD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,QAAQ,EAAE,QAAQ,EAAE,EACpB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,qBAAqB,EAClC,aAAa,CAAC,EAAE,MAAM,GACvB,oBAAoB,CAYtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,+CAA+D,CAAC;AAMnG;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG;IACxC;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACnD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;CACnD,CAAC;AAEF,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,CAAC,EAAE,MAAM,GACvB,sBAAsB,CASxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,iDAAmE,CAAC;AAMzG;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/model/events/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export function dashboardDeinitialized(ctx, dashboard, correlationId) {
|
|
|
37
37
|
* @public
|
|
38
38
|
*/
|
|
39
39
|
export const isDashboardDeinitialized = eventGuard("GDC.DASH/EVT.DEINITIALIZED");
|
|
40
|
-
export function dashboardSaved(ctx, dashboard, newDashboard, correlationId) {
|
|
40
|
+
export function dashboardSaved(ctx, dashboard, newDashboard, correlationId, savedObjects) {
|
|
41
41
|
return {
|
|
42
42
|
type: "GDC.DASH/EVT.SAVED",
|
|
43
43
|
ctx,
|
|
@@ -45,6 +45,7 @@ export function dashboardSaved(ctx, dashboard, newDashboard, correlationId) {
|
|
|
45
45
|
payload: {
|
|
46
46
|
dashboard,
|
|
47
47
|
newDashboard,
|
|
48
|
+
...savedObjects,
|
|
48
49
|
},
|
|
49
50
|
};
|
|
50
51
|
}
|
|
@@ -21,6 +21,12 @@ export declare const selectCrossFilteringItems: DashboardSelector<ICrossFilterin
|
|
|
21
21
|
* @internal
|
|
22
22
|
*/
|
|
23
23
|
export declare const selectCrossFilteringItemsByTab: DashboardSelector<Record<string, ICrossFilteringItem[]>>;
|
|
24
|
+
/**
|
|
25
|
+
* Returns local identifiers of cross-filtering virtual filters for all tabs keyed by tab identifier.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare const selectCrossFilteringFiltersLocalIdentifiersByTab: DashboardSelector<Record<string, string[]>>;
|
|
24
30
|
/**
|
|
25
31
|
* @beta
|
|
26
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drillSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/drill/drillSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAI3F,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOtD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,aAAa,EAAE,CAMnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,CAM9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAG9F,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,mBAAmB,GAAG,SAAS,CAIrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAGnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iDAAiD,EAAE,CAC5D,eAAe,EAAE,MAAM,KACtB,iBAAiB,CAAC,OAAO,CAI7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sDAAsD,EAAE,CACjE,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,MAAM,EAAE,GAAG,SAAS,CAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6CAA6C,EAAE,CACxD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,8BAA8B,EAAE,EAAE,GAAG,SAAS,CAGpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"drillSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/drill/drillSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAI3F,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOtD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,aAAa,EAAE,CAMnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,CAM9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAG9F,CAAC;AAEP;;;;GAIG;AACH,eAAO,MAAM,gDAAgD,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAQpG,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,mBAAmB,GAAG,SAAS,CAIrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAGnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iDAAiD,EAAE,CAC5D,eAAe,EAAE,MAAM,KACtB,iBAAiB,CAAC,OAAO,CAI7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sDAAsD,EAAE,CACjE,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,MAAM,EAAE,GAAG,SAAS,CAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6CAA6C,EAAE,CACxD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,8BAA8B,EAAE,EAAE,GAAG,SAAS,CAGpE,CAAC"}
|
|
@@ -29,6 +29,15 @@ export const selectCrossFilteringItems = createSelector(selectSelf, selectActive
|
|
|
29
29
|
export const selectCrossFilteringItemsByTab = createSelector(selectSelf, (drillState) => {
|
|
30
30
|
return drillState.crossFiltering;
|
|
31
31
|
});
|
|
32
|
+
/**
|
|
33
|
+
* Returns local identifiers of cross-filtering virtual filters for all tabs keyed by tab identifier.
|
|
34
|
+
*
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export const selectCrossFilteringFiltersLocalIdentifiersByTab = createSelector(selectCrossFilteringItemsByTab, (itemsByTab) => Object.fromEntries(Object.entries(itemsByTab).map(([tabId, items]) => [
|
|
38
|
+
tabId,
|
|
39
|
+
items.flatMap((item) => item.filterLocalIdentifiers),
|
|
40
|
+
])));
|
|
32
41
|
/**
|
|
33
42
|
* @beta
|
|
34
43
|
*/
|
|
@@ -3,7 +3,8 @@ import { type DashboardSelector } from "../types.js";
|
|
|
3
3
|
import { type IAutomationFiltersTab } from "./types.js";
|
|
4
4
|
export declare function filterLocalIdentifiers(filters: FilterContextItem[]): ReadonlySet<string>;
|
|
5
5
|
/**
|
|
6
|
-
* Selects local identifiers of filters the current user is forbidden to access
|
|
6
|
+
* Selects local identifiers of filters the current user is forbidden to access: the ones using an object
|
|
7
|
+
* the user may not read and, transitively, their child filters.
|
|
7
8
|
*
|
|
8
9
|
* @alpha
|
|
9
10
|
*/
|
|
@@ -25,6 +26,10 @@ export declare const selectRestrictedDashboardFilterCount: DashboardSelector<num
|
|
|
25
26
|
* @alpha
|
|
26
27
|
*/
|
|
27
28
|
export declare const selectExecutableDashboardFilters: DashboardSelector<FilterContextItem[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Selects local identifiers of filters the current user is forbidden to access, for every tab.
|
|
31
|
+
*/
|
|
32
|
+
export declare const selectRestrictedDashboardFilterLocalIdentifiersByTab: DashboardSelector<Record<string, ReadonlySet<string>>>;
|
|
28
33
|
/**
|
|
29
34
|
* Whether any filter was left out of the executable ones, on any tab. Callers that let the backend
|
|
30
35
|
* fall back to the stored filter context must send the filters explicitly in that case.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboardFilterSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filtering/dashboardFilterSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EAYtC,MAAM,qBAAqB,CAAC;AAuB7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOxD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAMxF;
|
|
1
|
+
{"version":3,"file":"dashboardFilterSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filtering/dashboardFilterSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EAYtC,MAAM,qBAAqB,CAAC;AAuB7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOxD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAMxF;AAQD;;;;;GAKG;AACH,eAAO,MAAM,+CAA+C,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CACvB,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CA0BvF,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,MAAM,CAG1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAInF,CAAC;AAOF;;GAEG;AACH,eAAO,MAAM,oDAAoD,EAAE,iBAAiB,CAChF,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAGtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,iBAAiB,CAAC,OAAO,CAI1E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qDAAqD,EAAE,CAChE,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAKzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAMpG,CAAC;AAaN;;;;GAIG;AACH,eAAO,MAAM,qDAAqD,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAKpG,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,8CAA8C,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAK7F,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAmB/E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAmB/E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yCAAyC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAwBxF,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,sCAAsC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAIzF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAMpF,CAAC;AAqEF,eAAO,MAAM,yBAAyB,WAC1B,iBAAiB,wBACH;IAClB,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;IACpD,8BAA8B,EAAE,8BAA8B,EAAE,CAAC;IACjE,sBAAsB,EAAE,+BAA+B,EAAE,CAAC;CAC7D,KACF,OAyBF,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAC1B,iBAAiB,wBACH;IAClB,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;IACpD,8BAA8B,EAAE,8BAA8B,EAAE,CAAC;IACjE,sBAAsB,EAAE,+BAA+B,EAAE,CAAC;CAC7D,KACF,OAyBF,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,qBAAqB,EAAE,CA0FnF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { createSelector } from "@reduxjs/toolkit";
|
|
3
|
+
import { difference, mapValues } from "lodash-es";
|
|
3
4
|
import { generateDateFilterLocalIdentifier } from "@gooddata/sdk-backend-base";
|
|
4
5
|
import { areObjRefsEqual, dashboardAttributeFilterItemLocalIdentifier, dashboardFilterLocalIdentifier, isAllDashboardMeasureValueFilter, isAllValuesDashboardAttributeFilter, isDashboardAttributeFilterItem, isDashboardCommonDateFilter, isDashboardDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, newAllTimeDashboardDateFilter, } from "@gooddata/sdk-model";
|
|
5
6
|
import { createMemoizedSelector } from "../_infra/selectors.js";
|
|
@@ -11,16 +12,17 @@ import { selectFilterContextFilters, selectFiltersByTab, } from "../tabs/filterC
|
|
|
11
12
|
import { selectMeasureValueFilterConfigsOverrides } from "../tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
|
|
12
13
|
import { selectTabs } from "../tabs/tabsSelectors.js";
|
|
13
14
|
import { selectUnavailableObjects } from "../unavailableObjects/unavailableObjectsSelectors.js";
|
|
14
|
-
import {
|
|
15
|
+
import { getRestrictedDashboardFilters } from "./restrictedFilterUtils.js";
|
|
15
16
|
const commonDateFilter = newAllTimeDashboardDateFilter(undefined, generateDateFilterLocalIdentifier(0));
|
|
16
17
|
export function filterLocalIdentifiers(filters) {
|
|
17
18
|
return new Set(filters
|
|
18
19
|
.map(dashboardFilterLocalIdentifier)
|
|
19
20
|
.filter((localIdentifier) => localIdentifier !== undefined));
|
|
20
21
|
}
|
|
21
|
-
const selectRestrictedDashboardFilters = createSelector(selectFilterContextFilters, selectUnavailableObjects,
|
|
22
|
+
const selectRestrictedDashboardFilters = createSelector(selectFilterContextFilters, selectUnavailableObjects, getRestrictedDashboardFilters);
|
|
22
23
|
/**
|
|
23
|
-
* Selects local identifiers of filters the current user is forbidden to access
|
|
24
|
+
* Selects local identifiers of filters the current user is forbidden to access: the ones using an object
|
|
25
|
+
* the user may not read and, transitively, their child filters.
|
|
24
26
|
*
|
|
25
27
|
* @alpha
|
|
26
28
|
*/
|
|
@@ -49,11 +51,12 @@ export const selectRestrictedDashboardFilterCount = createSelector(selectReporte
|
|
|
49
51
|
*
|
|
50
52
|
* @alpha
|
|
51
53
|
*/
|
|
52
|
-
export const selectExecutableDashboardFilters = createSelector(selectFilterContextFilters,
|
|
53
|
-
const selectRestrictedDashboardFiltersByTab = createSelector(selectFiltersByTab, selectUnavailableObjects, (filtersByTab, unavailableObjects) =>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
export const selectExecutableDashboardFilters = createSelector(selectFilterContextFilters, selectRestrictedDashboardFilters, difference);
|
|
55
|
+
const selectRestrictedDashboardFiltersByTab = createSelector(selectFiltersByTab, selectUnavailableObjects, (filtersByTab, unavailableObjects) => mapValues(filtersByTab, (filters) => getRestrictedDashboardFilters(filters, unavailableObjects)));
|
|
56
|
+
/**
|
|
57
|
+
* Selects local identifiers of filters the current user is forbidden to access, for every tab.
|
|
58
|
+
*/
|
|
59
|
+
export const selectRestrictedDashboardFilterLocalIdentifiersByTab = createSelector(selectRestrictedDashboardFiltersByTab, (filtersByTab) => mapValues(filtersByTab, filterLocalIdentifiers));
|
|
57
60
|
/**
|
|
58
61
|
* Whether any filter was left out of the executable ones, on any tab. Callers that let the backend
|
|
59
62
|
* fall back to the stored filter context must send the filters explicitly in that case.
|
|
@@ -63,16 +66,13 @@ export const selectHasRestrictedDashboardFilters = createSelector(selectRestrict
|
|
|
63
66
|
* Selects local identifiers of filters the current user is forbidden to access on the given tab.
|
|
64
67
|
* @alpha
|
|
65
68
|
*/
|
|
66
|
-
export const selectRestrictedDashboardFilterLocalIdentifiersForTab = createMemoizedSelector((tabLocalIdentifier) => createSelector(
|
|
69
|
+
export const selectRestrictedDashboardFilterLocalIdentifiersForTab = createMemoizedSelector((tabLocalIdentifier) => createSelector(selectRestrictedDashboardFilterLocalIdentifiersByTab, (localIdentifiersByTab) => localIdentifiersByTab[tabLocalIdentifier] ?? new Set()));
|
|
67
70
|
/**
|
|
68
71
|
* Selects execution-safe dashboard filters for every tab.
|
|
69
72
|
*
|
|
70
73
|
* @alpha
|
|
71
74
|
*/
|
|
72
|
-
export const selectExecutableDashboardFiltersByTab = createSelector(selectFiltersByTab,
|
|
73
|
-
tabId,
|
|
74
|
-
filters.filter((filter) => !isDashboardFilterRestricted(filter, unavailableObjects)),
|
|
75
|
-
])));
|
|
75
|
+
export const selectExecutableDashboardFiltersByTab = createSelector(selectFiltersByTab, selectRestrictedDashboardFiltersByTab, (filtersByTab, restrictedByTab) => mapValues(filtersByTab, (filters, tabId) => difference(filters, restrictedByTab[tabId] ?? [])));
|
|
76
76
|
function withCommonDateFilterAndWithoutCrossFiltering(dashboardFilters, crossFilteringItems) {
|
|
77
77
|
const dashboardFiltersWithCommonDateFilter = dashboardFilters.some(isDashboardCommonDateFilter)
|
|
78
78
|
? dashboardFilters
|
|
@@ -126,7 +126,7 @@ export const selectAutomationAvailableDashboardFilters = createSelector(selectAl
|
|
|
126
126
|
/**
|
|
127
127
|
* @alpha
|
|
128
128
|
*/
|
|
129
|
-
export const selectAutomationDefaultSelectedFilters = createSelector(selectAutomationAvailableDashboardFilters,
|
|
129
|
+
export const selectAutomationDefaultSelectedFilters = createSelector(selectAutomationAvailableDashboardFilters, selectRestrictedDashboardFilterLocalIdentifiers, automationDefaultSelectedFilters);
|
|
130
130
|
/**
|
|
131
131
|
* @alpha
|
|
132
132
|
*/
|
|
@@ -162,8 +162,9 @@ function isEmptyDashboardFilter(filter) {
|
|
|
162
162
|
* Preselects the filters a new automation starts with. A restricted filter is left out, because the
|
|
163
163
|
* user cannot review what it filters by.
|
|
164
164
|
*/
|
|
165
|
-
function automationDefaultSelectedFilters(filters,
|
|
166
|
-
return filters.filter((filter) => !isEmptyDashboardFilter(filter) &&
|
|
165
|
+
function automationDefaultSelectedFilters(filters, restrictedLocalIdentifiers) {
|
|
166
|
+
return filters.filter((filter) => !isEmptyDashboardFilter(filter) &&
|
|
167
|
+
!restrictedLocalIdentifiers.has(dashboardFilterLocalIdentifier(filter) ?? ""));
|
|
167
168
|
}
|
|
168
169
|
function removeHiddenFilters(filters, filterConfigurations) {
|
|
169
170
|
return filters.filter((filter) => {
|
|
@@ -216,7 +217,7 @@ export const isFilterContextItemLocked = (filter, filterConfigurations) => {
|
|
|
216
217
|
*
|
|
217
218
|
* @alpha
|
|
218
219
|
*/
|
|
219
|
-
export const selectAutomationFiltersByTab = createSelector(selectTabs, selectFiltersByTab,
|
|
220
|
+
export const selectAutomationFiltersByTab = createSelector(selectTabs, selectFiltersByTab, selectRestrictedDashboardFilterLocalIdentifiersByTab, selectDateFilterConfigOverridesByTab, selectDateFilterConfigsOverridesByTab, selectAttributeFilterConfigsOverridesByTab, selectCrossFilteringItemsByTab, (tabs, filtersByTab, restrictedLocalIdentifiersByTab, dateFilterConfigByTab, dateFilterConfigsByTab, attributeFilterConfigsByTab, crossFilteringItemsByTab) => {
|
|
220
221
|
if (!tabs || tabs.length === 0) {
|
|
221
222
|
return [];
|
|
222
223
|
}
|
|
@@ -224,6 +225,7 @@ export const selectAutomationFiltersByTab = createSelector(selectTabs, selectFil
|
|
|
224
225
|
const tabId = tab.localIdentifier;
|
|
225
226
|
const tabTitle = tab.title ?? "";
|
|
226
227
|
const rawFilters = filtersByTab[tabId] ?? [];
|
|
228
|
+
const restrictedLocalIdentifiers = restrictedLocalIdentifiersByTab[tabId] ?? new Set();
|
|
227
229
|
// Get cross-filtering items for this specific tab
|
|
228
230
|
const tabCrossFilteringItems = crossFilteringItemsByTab[tabId] ?? [];
|
|
229
231
|
// Remove cross-filtering filters for this tab
|
|
@@ -245,14 +247,14 @@ export const selectAutomationFiltersByTab = createSelector(selectTabs, selectFil
|
|
|
245
247
|
const availableFilters = removeHiddenFilters(filtersWithCommonDate, filterConfigurations);
|
|
246
248
|
// A restricted filter cannot gate the user's automation, because they can neither see
|
|
247
249
|
// nor change it.
|
|
248
|
-
const unrestrictedFilters = filtersWithCommonDate.filter((filter) => !
|
|
250
|
+
const unrestrictedFilters = filtersWithCommonDate.filter((filter) => !restrictedLocalIdentifiers.has(dashboardFilterLocalIdentifier(filter) ?? ""));
|
|
249
251
|
const selectableFilters = removeHiddenFilters(unrestrictedFilters, filterConfigurations);
|
|
250
252
|
// Get locked filters
|
|
251
253
|
const lockedFilters = unrestrictedFilters.filter((filter) => isFilterContextItemLocked(filter, filterConfigurations));
|
|
252
254
|
// Get hidden filters
|
|
253
255
|
const hiddenFilters = unrestrictedFilters.filter((filter) => isFilterContextItemHidden(filter, filterConfigurations));
|
|
254
256
|
// Get default selected filters (noop "All" filters removed — attribute and MVF)
|
|
255
|
-
const defaultSelectedFilters = automationDefaultSelectedFilters(availableFilters,
|
|
257
|
+
const defaultSelectedFilters = automationDefaultSelectedFilters(availableFilters, restrictedLocalIdentifiers);
|
|
256
258
|
return {
|
|
257
259
|
tabId,
|
|
258
260
|
tabTitle,
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
import type { IUnavailableDashboardReference } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import { type FilterContextItem, type ObjRef, type ObjectType } from "@gooddata/sdk-model";
|
|
3
3
|
export declare function isDashboardObjectRestricted(ref: ObjRef, type: ObjectType, unavailableObjects: ReadonlyArray<IUnavailableDashboardReference>): boolean;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Tells whether the filter itself uses an object the user may not read: the object it filters by, or an
|
|
6
|
+
* item of its configuration ("For attribute", "Filter values by").
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* A filter is also restricted when its parent filter is, see {@link getRestrictedDashboardFilters}.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isDashboardFilterUsingRestrictedObject(filter: FilterContextItem, unavailableObjects: ReadonlyArray<IUnavailableDashboardReference>): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the filters the user may not use, in their order: the dashboard hides them, reports them as
|
|
14
|
+
* restricted and leaves them out of every execution, export and automation.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* A filter is restricted when it uses an object the user may not read
|
|
18
|
+
* ({@link isDashboardFilterUsingRestrictedObject}) or when any of its parent filters is restricted:
|
|
19
|
+
* its values depend on the parent's selection, which the user may not see. Restriction flows from a
|
|
20
|
+
* parent to its children, never the other way.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getRestrictedDashboardFilters(filters: FilterContextItem[], unavailableObjects: ReadonlyArray<IUnavailableDashboardReference>): FilterContextItem[];
|
|
23
|
+
/**
|
|
24
|
+
* Tells whether a filter taken out of the filter context (a command payload, a stored automation) is
|
|
25
|
+
* restricted: it uses a restricted object, its local identifier names a restricted filter of the
|
|
26
|
+
* dashboard, or one of its own parent links does (a stored copy may keep a parent the dashboard has
|
|
27
|
+
* dropped since).
|
|
28
|
+
*/
|
|
29
|
+
export declare function isDashboardFilterCopyRestricted(filter: FilterContextItem, restrictedLocalIdentifiers: ReadonlySet<string>, unavailableObjects: ReadonlyArray<IUnavailableDashboardReference>): boolean;
|
|
5
30
|
//# sourceMappingURL=restrictedFilterUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restrictedFilterUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filtering/restrictedFilterUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"restrictedFilterUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filtering/restrictedFilterUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,UAAU,EAUlB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,2BAA2B,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,aAAa,CAAC,8BAA8B,CAAC,GAClE,OAAO,CAIT;AA4CD;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,MAAM,EAAE,iBAAiB,EACzB,kBAAkB,EAAE,aAAa,CAAC,8BAA8B,CAAC,GAClE,OAAO,CAYT;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,iBAAiB,EAAE,EAC5B,kBAAkB,EAAE,aAAa,CAAC,8BAA8B,CAAC,GAClE,iBAAiB,EAAE,CAsBrB;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/C,kBAAkB,EAAE,aAAa,CAAC,8BAA8B,CAAC,GAClE,OAAO,CAST"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { areObjRefsEqual, dashboardFilterObjRef, isComputedAttributeRef, isDashboardAttributeFilterItem,
|
|
2
|
+
import { areObjRefsEqual, dashboardAttributeFilterItemFilterElementsBy, dashboardAttributeFilterItemValidateElementsBy, dashboardFilterLocalIdentifier, dashboardFilterObjRef, isComputedAttributeRef, isDashboardAttributeFilterItem, isDashboardMeasureValueFilter, isIdentifierRef, } from "@gooddata/sdk-model";
|
|
3
3
|
export function isDashboardObjectRestricted(ref, type, unavailableObjects) {
|
|
4
4
|
return unavailableObjects.some((object) => object.reason === "forbidden" && object.type === type && areObjRefsEqual(object.ref, ref));
|
|
5
5
|
}
|
|
@@ -7,16 +7,84 @@ function dashboardFilterObjectType(filter) {
|
|
|
7
7
|
if (isDashboardAttributeFilterItem(filter)) {
|
|
8
8
|
return isComputedAttributeRef(dashboardFilterObjRef(filter)) ? "computedAttribute" : "displayForm";
|
|
9
9
|
}
|
|
10
|
-
if (isDashboardDateFilterWithDimension(filter)) {
|
|
11
|
-
return "dataSet";
|
|
12
|
-
}
|
|
13
10
|
if (isDashboardMeasureValueFilter(filter)) {
|
|
14
11
|
return "measure";
|
|
15
12
|
}
|
|
16
13
|
return undefined;
|
|
17
14
|
}
|
|
18
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Tells whether a configuration item is a forbidden object. The item's type is unknown here, so any
|
|
17
|
+
* forbidden object with an equal ref matches; a typed identifier ref also has to agree on the type.
|
|
18
|
+
*/
|
|
19
|
+
function isConfigurationRefRestricted(ref, unavailableObjects) {
|
|
20
|
+
const type = isIdentifierRef(ref) ? ref.type : undefined;
|
|
21
|
+
return unavailableObjects.some((object) => object.reason === "forbidden" &&
|
|
22
|
+
(type === undefined || object.type === type) &&
|
|
23
|
+
areObjRefsEqual(object.ref, ref));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The items a filter's configuration computes with besides the object it filters by: the "For attribute"
|
|
27
|
+
* (dimensionality) items of a measure value filter, and the "Filter values by" items of an attribute
|
|
28
|
+
* filter (a metric, a fact, or the attribute of "Count of").
|
|
29
|
+
*/
|
|
30
|
+
function dashboardFilterConfigurationRefs(filter) {
|
|
31
|
+
if (isDashboardMeasureValueFilter(filter)) {
|
|
32
|
+
return filter.dashboardMeasureValueFilter.dimensionality ?? [];
|
|
33
|
+
}
|
|
34
|
+
if (isDashboardAttributeFilterItem(filter)) {
|
|
35
|
+
return dashboardAttributeFilterItemValidateElementsBy(filter) ?? [];
|
|
36
|
+
}
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Tells whether the filter itself uses an object the user may not read: the object it filters by, or an
|
|
41
|
+
* item of its configuration ("For attribute", "Filter values by").
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* A filter is also restricted when its parent filter is, see {@link getRestrictedDashboardFilters}.
|
|
45
|
+
*/
|
|
46
|
+
export function isDashboardFilterUsingRestrictedObject(filter, unavailableObjects) {
|
|
19
47
|
const ref = dashboardFilterObjRef(filter);
|
|
20
48
|
const type = dashboardFilterObjectType(filter);
|
|
21
|
-
return (ref !== undefined &&
|
|
49
|
+
return ((ref !== undefined &&
|
|
50
|
+
type !== undefined &&
|
|
51
|
+
isDashboardObjectRestricted(ref, type, unavailableObjects)) ||
|
|
52
|
+
dashboardFilterConfigurationRefs(filter).some((item) => isConfigurationRefRestricted(item, unavailableObjects)));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns the filters the user may not use, in their order: the dashboard hides them, reports them as
|
|
56
|
+
* restricted and leaves them out of every execution, export and automation.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* A filter is restricted when it uses an object the user may not read
|
|
60
|
+
* ({@link isDashboardFilterUsingRestrictedObject}) or when any of its parent filters is restricted:
|
|
61
|
+
* its values depend on the parent's selection, which the user may not see. Restriction flows from a
|
|
62
|
+
* parent to its children, never the other way.
|
|
63
|
+
*/
|
|
64
|
+
export function getRestrictedDashboardFilters(filters, unavailableObjects) {
|
|
65
|
+
const restricted = new Set(filters.filter((filter) => isDashboardFilterUsingRestrictedObject(filter, unavailableObjects)));
|
|
66
|
+
// each pass adds the children of the filters restricted so far; a pass that adds none ends the
|
|
67
|
+
// walk, also when the parent links form a cycle
|
|
68
|
+
let added = restricted.size > 0;
|
|
69
|
+
while (added) {
|
|
70
|
+
const restrictedLocalIdentifiers = new Set(Array.from(restricted, dashboardFilterLocalIdentifier));
|
|
71
|
+
const children = filters.filter((filter) => !restricted.has(filter) &&
|
|
72
|
+
isDashboardAttributeFilterItem(filter) &&
|
|
73
|
+
(dashboardAttributeFilterItemFilterElementsBy(filter) ?? []).some((parent) => restrictedLocalIdentifiers.has(parent.filterLocalIdentifier)));
|
|
74
|
+
children.forEach((child) => restricted.add(child));
|
|
75
|
+
added = children.length > 0;
|
|
76
|
+
}
|
|
77
|
+
return filters.filter((filter) => restricted.has(filter));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tells whether a filter taken out of the filter context (a command payload, a stored automation) is
|
|
81
|
+
* restricted: it uses a restricted object, its local identifier names a restricted filter of the
|
|
82
|
+
* dashboard, or one of its own parent links does (a stored copy may keep a parent the dashboard has
|
|
83
|
+
* dropped since).
|
|
84
|
+
*/
|
|
85
|
+
export function isDashboardFilterCopyRestricted(filter, restrictedLocalIdentifiers, unavailableObjects) {
|
|
86
|
+
return (isDashboardFilterUsingRestrictedObject(filter, unavailableObjects) ||
|
|
87
|
+
restrictedLocalIdentifiers.has(dashboardFilterLocalIdentifier(filter) ?? "") ||
|
|
88
|
+
(isDashboardAttributeFilterItem(filter) &&
|
|
89
|
+
(dashboardAttributeFilterItemFilterElementsBy(filter) ?? []).some((parent) => restrictedLocalIdentifiers.has(parent.filterLocalIdentifier))));
|
|
22
90
|
}
|
|
@@ -225,6 +225,12 @@ export declare const selectDisableDashboardCrossFiltering: DashboardSelector<boo
|
|
|
225
225
|
* @alpha
|
|
226
226
|
*/
|
|
227
227
|
export declare const selectDisableDashboardPersistentFiltersAcrossTabs: DashboardSelector<boolean>;
|
|
228
|
+
/**
|
|
229
|
+
* Selects whether persistent filters across tabs are enabled.
|
|
230
|
+
*
|
|
231
|
+
* @alpha
|
|
232
|
+
*/
|
|
233
|
+
export declare const selectEnablePersistentFiltersAcrossTabs: DashboardSelector<boolean>;
|
|
228
234
|
/**
|
|
229
235
|
* Selects a boolean indication if the dashboard has any changes to the persistent filters across tabs compared to the persisted version (if any)
|
|
230
236
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEf,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,kCAAkC,EAEvC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEf,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,kCAAkC,EAEvC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AA6B7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAO1D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,CAO5E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAK9E,CAAC;AAyBF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;+BAzD7B,cAAc;;;;;;;;;;;;;;;;CAiFxB,CAAC;AAqBH;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,EAAE,iBAAiB,CACvE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC,CASjE,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qDAAqD,EAAE,iBAAiB,CACjF,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAMtD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mDAAmD,EAAE,iBAAiB,CAC/E,MAAM,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAMnD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,EAAE,iBAAiB,CACzE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAMxD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,8CAA8C,EAAE,iBAAiB,CAC1E,MAAM,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAMlD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sDAAsD,EAAE,iBAAiB,CAClF,MAAM,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAMtD,CAAC;AA2FH;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CACjE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAelD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qDAAqD,EAAE,iBAAiB,CACjF,0BAA0B,GAAG,SAAS,CAezC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8DAA8D,EAAE,iBAAiB,CAC1F,wBAAwB,GAAG,SAAS,CAYvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKpE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKnE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKpE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAK7E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAG3D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAKtE,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,MAAM,CAK1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,MAAM,CAKhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAK3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,WAAW,CAKrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAKhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,mBAAmB,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iDAAiD,EAAE,iBAAiB,CAAC,OAAO,CAMxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uCAAuC,EAAE,iBAAiB,CAAC,OAAO,CAS9E,CAAC;AAUF;;;;GAIG;AACH,eAAO,MAAM,iDAAiD,EAAE,iBAAiB,CAAC,OAAO,CAMxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAMhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAK5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAK3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAG5F,CAAC;AAEP;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAkBlF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAgB/E,CAAC;AA4BF;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,EAAE,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAGrG,CAAC;AAiEP;;;GAGG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAgB5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAKjF,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAgBvE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,OAAO,CAgB/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAehE,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAgBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAgBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,OAAO,CAgBlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAqB7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAM5E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAAC,OAAO,CAM3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,iBAAiB,CAAC,OAAO,CAMxE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAMvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,OAAO,CAM/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,OAAO,CAWpE,CAAC;AAqCF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAM3D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAa5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAwD7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAiElG,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { isEqual } from "lodash-es";
|
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
5
|
import { isDashboardLayoutEmpty } from "@gooddata/sdk-backend-spi";
|
|
6
6
|
import { idRef, isBrowserDetectedTimezone, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, isDashboardTextAttributeFilter, isTempFilterContext, normalizeDashboardTimezoneConfig, resolveTimezoneId, uriRef, } from "@gooddata/sdk-model";
|
|
7
|
-
import { selectEnableTimezoneChange } from "../config/configSelectors.js";
|
|
7
|
+
import { selectEnableDashboardPersistentFiltersAcrossTabs, selectEnableTimezoneChange, } from "../config/configSelectors.js";
|
|
8
8
|
import { selectAttributeFilterConfigsOverridesByTab } from "../tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
9
9
|
import { selectDateFilterConfigOverrides, selectDateFilterConfigOverridesByTab, } from "../tabs/dateFilterConfig/dateFilterConfigSelectors.js";
|
|
10
10
|
import { selectDateFilterConfigsOverridesByTab } from "../tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
|
|
@@ -386,14 +386,24 @@ export const selectDisableDashboardCrossFiltering = createSelector(selectDashboa
|
|
|
386
386
|
* @alpha
|
|
387
387
|
*/
|
|
388
388
|
export const selectDisableDashboardPersistentFiltersAcrossTabs = createSelector(selectDashboardDescriptor, (state) => {
|
|
389
|
-
|
|
389
|
+
// Missing means a dashboard saved before this setting existed: the feature stays off.
|
|
390
|
+
return state.disablePersistentFiltersAcrossTabs ?? true;
|
|
391
|
+
});
|
|
392
|
+
/**
|
|
393
|
+
* Selects whether persistent filters across tabs are enabled.
|
|
394
|
+
*
|
|
395
|
+
* @alpha
|
|
396
|
+
*/
|
|
397
|
+
export const selectEnablePersistentFiltersAcrossTabs = createSelector(selectEnableDashboardPersistentFiltersAcrossTabs, selectDisableDashboardPersistentFiltersAcrossTabs, (enableDashboardPersistentFiltersAcrossTabs, disableDashboardPersistentFiltersAcrossTabs) => {
|
|
398
|
+
return (enableDashboardPersistentFiltersAcrossTabs &&
|
|
399
|
+
disableDashboardPersistentFiltersAcrossTabs === false);
|
|
390
400
|
});
|
|
391
401
|
/**
|
|
392
402
|
* Selects persisted persistent filters across tabs - that is the value that was used to initialize
|
|
393
403
|
* the dashboard state during the initial load of the dashboard.
|
|
394
404
|
*/
|
|
395
405
|
const selectPersistedDashboardDisablePersistentFiltersAcrossTabs = createSelector(selectSelf, (state) => {
|
|
396
|
-
return state.persistedDashboard?.disablePersistentFiltersAcrossTabs ??
|
|
406
|
+
return state.persistedDashboard?.disablePersistentFiltersAcrossTabs ?? true;
|
|
397
407
|
});
|
|
398
408
|
/**
|
|
399
409
|
* Selects a boolean indication if the dashboard has any changes to the persistent filters across tabs compared to the persisted version (if any)
|
|
@@ -3,6 +3,7 @@ import { type IAttributeWithReferences } from "@gooddata/sdk-backend-spi";
|
|
|
3
3
|
import { type DashboardAttributeFilterItem, type DashboardAttributeFilterSelectionMode, type DashboardTextAttributeFilter, type DateFilterGranularity, type DateFilterType, type DateString, type EmptyValues, type FilterContextItem, type IAttributeDisplayFormMetadataObject, type IAttributeElements, type IDashboardAttributeFilterByDate, type IDashboardAttributeFilterParent, type IDashboardObjectIdentity, type IFilterContextDefinition, type ILowerBoundedFilter, type IUpperBoundedFilter, type MeasureValueFilterCondition, type ObjRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { type IAddDateFilterPayload, type IAddMeasureValueFilterPayload } from "../../../commands/filters.js";
|
|
5
5
|
import { type ITabState, type ITabsState } from "../tabsState.js";
|
|
6
|
+
import { type CrossFilteringLocalIdsByTab } from "./filterSync.js";
|
|
6
7
|
type FilterContextReducer<A extends Action> = CaseReducer<ITabsState, A>;
|
|
7
8
|
type SetFilterContextPayload = {
|
|
8
9
|
filterContextDefinition: IFilterContextDefinition;
|
|
@@ -40,11 +41,16 @@ export interface IUpsertDateFilterAllTimePayload {
|
|
|
40
41
|
readonly isWorkingSelectionChange?: boolean;
|
|
41
42
|
readonly localIdentifier?: string;
|
|
42
43
|
readonly emptyValueHandling?: EmptyValues;
|
|
44
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
43
45
|
/**
|
|
44
46
|
* Optional tab local identifier to target a specific tab.
|
|
45
47
|
* If not provided, the active tab will be used.
|
|
46
48
|
*/
|
|
47
49
|
readonly tabLocalIdentifier?: string;
|
|
50
|
+
/**
|
|
51
|
+
* When true, other tabs restore their own saved initial date filter instead of this payload.
|
|
52
|
+
*/
|
|
53
|
+
readonly restoreTargetOriginal?: boolean;
|
|
48
54
|
}
|
|
49
55
|
/**
|
|
50
56
|
* @internal
|
|
@@ -59,11 +65,16 @@ export interface IUpsertDateFilterNonAllTimePayload {
|
|
|
59
65
|
readonly localIdentifier?: string;
|
|
60
66
|
readonly boundedFilter?: IUpperBoundedFilter | ILowerBoundedFilter;
|
|
61
67
|
readonly emptyValueHandling?: EmptyValues;
|
|
68
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
62
69
|
/**
|
|
63
70
|
* Optional tab local identifier to target a specific tab.
|
|
64
71
|
* If not provided, the active tab will be used.
|
|
65
72
|
*/
|
|
66
73
|
readonly tabLocalIdentifier?: string;
|
|
74
|
+
/**
|
|
75
|
+
* When true, other tabs restore their own saved initial date filter instead of this payload.
|
|
76
|
+
*/
|
|
77
|
+
readonly restoreTargetOriginal?: boolean;
|
|
67
78
|
}
|
|
68
79
|
/**
|
|
69
80
|
* @internal
|
|
@@ -85,6 +96,15 @@ export interface IUpdateAttributeFilterSelectionPayload {
|
|
|
85
96
|
* If not provided, the active tab will be used.
|
|
86
97
|
*/
|
|
87
98
|
readonly tabLocalIdentifier?: string;
|
|
99
|
+
/**
|
|
100
|
+
* When true, other tabs restore their own saved initial selection instead of this payload.
|
|
101
|
+
*/
|
|
102
|
+
readonly restoreTargetOriginal?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Cross-filtering virtual filters per tab. They are not mirrored to or from other tabs.
|
|
105
|
+
*/
|
|
106
|
+
readonly crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab;
|
|
107
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
88
108
|
}
|
|
89
109
|
/**
|
|
90
110
|
* Payload for replacing an attribute filter item (standard, arbitrary, or match) in the filter context.
|
|
@@ -95,11 +115,20 @@ export interface IReplaceAttributeFilterItemPayload {
|
|
|
95
115
|
readonly filter: DashboardAttributeFilterItem;
|
|
96
116
|
readonly isWorkingSelectionChange?: boolean;
|
|
97
117
|
readonly isSelectionInvalid?: boolean;
|
|
118
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
98
119
|
/**
|
|
99
120
|
* Optional tab local identifier to target a specific tab.
|
|
100
121
|
* If not provided, the active tab will be used.
|
|
101
122
|
*/
|
|
102
123
|
readonly tabLocalIdentifier?: string;
|
|
124
|
+
/**
|
|
125
|
+
* When true, other tabs restore their own saved initial filter instead of this payload.
|
|
126
|
+
*/
|
|
127
|
+
readonly restoreTargetOriginal?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Cross-filtering virtual filters per tab. They are not mirrored to or from other tabs.
|
|
130
|
+
*/
|
|
131
|
+
readonly crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab;
|
|
103
132
|
}
|
|
104
133
|
/**
|
|
105
134
|
* @internal
|
|
@@ -158,6 +187,15 @@ export interface IClearAttributeFiltersSelectionPayload {
|
|
|
158
187
|
* If not provided, the active tab will be used.
|
|
159
188
|
*/
|
|
160
189
|
readonly tabLocalIdentifier?: string;
|
|
190
|
+
/**
|
|
191
|
+
* When true, other tabs restore their own saved initial selection instead of clearing to All.
|
|
192
|
+
*/
|
|
193
|
+
readonly restoreTargetOriginal?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Cross-filtering virtual filters per tab. They are not mirrored to or from other tabs.
|
|
196
|
+
*/
|
|
197
|
+
readonly crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab;
|
|
198
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
161
199
|
}
|
|
162
200
|
/**
|
|
163
201
|
* @internal
|
|
@@ -250,6 +288,11 @@ export type IChangeMeasureValueFilterConditionReducerPayload = {
|
|
|
250
288
|
readonly localIdentifier: string;
|
|
251
289
|
readonly conditions?: MeasureValueFilterCondition[];
|
|
252
290
|
readonly isWorkingSelectionChange?: boolean;
|
|
291
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
292
|
+
/**
|
|
293
|
+
* When true, other tabs restore their own saved initial condition instead of this payload.
|
|
294
|
+
*/
|
|
295
|
+
readonly restoreTargetOriginal?: boolean;
|
|
253
296
|
};
|
|
254
297
|
type IChangeMeasureValueFilterTitleReducerPayload = {
|
|
255
298
|
readonly filterLocalId: string;
|
|
@@ -258,6 +301,11 @@ type IChangeMeasureValueFilterTitleReducerPayload = {
|
|
|
258
301
|
type ISetMeasureValueFilterDimensionalityReducerPayload = {
|
|
259
302
|
readonly localIdentifier: string;
|
|
260
303
|
readonly dimensionality?: ObjRef[];
|
|
304
|
+
/**
|
|
305
|
+
* When true, other tabs restore their own saved initial dimensionality instead of this payload.
|
|
306
|
+
*/
|
|
307
|
+
readonly restoreTargetOriginal?: boolean;
|
|
308
|
+
readonly enablePersistentFiltersAcrossTabs?: boolean;
|
|
261
309
|
};
|
|
262
310
|
export declare const filterContextReducers: {
|
|
263
311
|
setFilterContext: FilterContextReducer<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterContextReducers.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterContextReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,qCAAqC,EAC1C,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACxC,KAAK,kBAAkB,EAEvB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EAGpC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"filterContextReducers.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterContextReducers.ts"],"names":[],"mappings":"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"}
|