@gooddata/sdk-ui-dashboard 11.62.0-alpha.2 → 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 +33 -610
- 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/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 +6 -5
- 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/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/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 +135 -13
- package/package.json +23 -23
- package/styles/css/main.css +4 -0
- package/styles/css/main.css.map +1 -1
- 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
|
@@ -2,7 +2,7 @@ import { type IAttributeWithReferences } from "@gooddata/sdk-backend-spi";
|
|
|
2
2
|
import { type DashboardAttributeFilterItem, type FilterContextItem, type IAttributeDisplayFormMetadataObject, type IDashboardAttributeFilter, type IDashboardDateFilter, type IDashboardMeasureValueFilter, type IDashboardObjectIdentity, type IFilterContextDefinition, type ObjRef } from "@gooddata/sdk-model";
|
|
3
3
|
import { type ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
|
|
4
4
|
import { type DashboardSelector, type DashboardState } from "../../types.js";
|
|
5
|
-
import { type FilterContextState } from "./filterContextState.js";
|
|
5
|
+
import { type FilterContextState, type IWorkingFilterContextDefinition } from "./filterContextState.js";
|
|
6
6
|
/**
|
|
7
7
|
* Returns filter context state for each tab keyed by identifier.
|
|
8
8
|
*
|
|
@@ -115,6 +115,72 @@ export declare const selectFilterContextDefinitionsByTab: ((state: DashboardStat
|
|
|
115
115
|
memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
116
116
|
argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
117
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Returns applied filter context definitions for each tab keyed by identifier.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
export declare const selectWorkingFilterContextDefinitionsByTab: ((state: DashboardState) => Record<string, IWorkingFilterContextDefinition | undefined>) & {
|
|
124
|
+
clearCache: () => void;
|
|
125
|
+
resultsCount: () => number;
|
|
126
|
+
resetResultsCount: () => void;
|
|
127
|
+
} & {
|
|
128
|
+
resultFunc: (resultFuncArgs_0: Record<string, FilterContextState>) => Record<string, IWorkingFilterContextDefinition | undefined>;
|
|
129
|
+
memoizedResultFunc: ((resultFuncArgs_0: Record<string, FilterContextState>) => Record<string, IWorkingFilterContextDefinition | undefined>) & {
|
|
130
|
+
clearCache: () => void;
|
|
131
|
+
resultsCount: () => number;
|
|
132
|
+
resetResultsCount: () => void;
|
|
133
|
+
};
|
|
134
|
+
lastResult: () => Record<string, IWorkingFilterContextDefinition | undefined>;
|
|
135
|
+
dependencies: [((state: DashboardState) => Record<string, FilterContextState>) & {
|
|
136
|
+
clearCache: () => void;
|
|
137
|
+
resultsCount: () => number;
|
|
138
|
+
resetResultsCount: () => void;
|
|
139
|
+
} & {
|
|
140
|
+
resultFunc: (resultFuncArgs_0: import("../tabsState.js").ITabState[]) => Record<string, FilterContextState>;
|
|
141
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("../tabsState.js").ITabState[]) => Record<string, FilterContextState>) & {
|
|
142
|
+
clearCache: () => void;
|
|
143
|
+
resultsCount: () => number;
|
|
144
|
+
resetResultsCount: () => void;
|
|
145
|
+
};
|
|
146
|
+
lastResult: () => Record<string, FilterContextState>;
|
|
147
|
+
dependencies: [((state: DashboardState) => import("../tabsState.js").ITabState[]) & {
|
|
148
|
+
clearCache: () => void;
|
|
149
|
+
resultsCount: () => number;
|
|
150
|
+
resetResultsCount: () => void;
|
|
151
|
+
} & {
|
|
152
|
+
resultFunc: (resultFuncArgs_0: import("../tabsState.js").ITabState[] | undefined) => import("../tabsState.js").ITabState[];
|
|
153
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("../tabsState.js").ITabState[] | undefined) => import("../tabsState.js").ITabState[]) & {
|
|
154
|
+
clearCache: () => void;
|
|
155
|
+
resultsCount: () => number;
|
|
156
|
+
resetResultsCount: () => void;
|
|
157
|
+
};
|
|
158
|
+
lastResult: () => import("../tabsState.js").ITabState[];
|
|
159
|
+
dependencies: [DashboardSelector<import("../tabsState.js").ITabState[] | undefined>];
|
|
160
|
+
recomputations: () => number;
|
|
161
|
+
resetRecomputations: () => void;
|
|
162
|
+
dependencyRecomputations: () => number;
|
|
163
|
+
resetDependencyRecomputations: () => void;
|
|
164
|
+
} & {
|
|
165
|
+
memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
166
|
+
argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
167
|
+
}];
|
|
168
|
+
recomputations: () => number;
|
|
169
|
+
resetRecomputations: () => void;
|
|
170
|
+
dependencyRecomputations: () => number;
|
|
171
|
+
resetDependencyRecomputations: () => void;
|
|
172
|
+
} & {
|
|
173
|
+
memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
174
|
+
argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
175
|
+
}];
|
|
176
|
+
recomputations: () => number;
|
|
177
|
+
resetRecomputations: () => void;
|
|
178
|
+
dependencyRecomputations: () => number;
|
|
179
|
+
resetDependencyRecomputations: () => void;
|
|
180
|
+
} & {
|
|
181
|
+
memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
182
|
+
argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
183
|
+
};
|
|
118
184
|
/**
|
|
119
185
|
* Returns filters from each tab keyed by tab identifier.
|
|
120
186
|
* This selector is useful for exporting dashboards with per-tab filters.
|
|
@@ -455,6 +521,13 @@ export declare const selectFilterContextIdentity: DashboardSelector<IDashboardOb
|
|
|
455
521
|
* @public
|
|
456
522
|
*/
|
|
457
523
|
export declare const selectAttributeFilterDisplayForms: DashboardSelector<IAttributeDisplayFormMetadataObject[]>;
|
|
524
|
+
/**
|
|
525
|
+
* Tells whether a filter's display form ref points to the display form. The uri and the id are tried as
|
|
526
|
+
* well, as the filter may keep the ref in another form than the metadata object does.
|
|
527
|
+
*
|
|
528
|
+
* @internal
|
|
529
|
+
*/
|
|
530
|
+
export declare function isDisplayFormRefOf(ref: ObjRef, displayForm: IAttributeDisplayFormMetadataObject): boolean;
|
|
458
531
|
/**
|
|
459
532
|
* Selects map of display form metadata objects referenced by attribute filters.
|
|
460
533
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterContextSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterContextSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,MAAM,EAkBd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,4CAA4C,CAAC;AAK/F,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAI7E,OAAO,
|
|
1
|
+
{"version":3,"file":"filterContextSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterContextSelectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { selectEnableImmediateAttributeFilterDisplayAsLabelMigration } from "../
|
|
|
10
10
|
import { selectCrossFilteringFiltersLocalIdentifiers } from "../../drill/drillSelectors.js";
|
|
11
11
|
import { selectActiveTabLocalIdentifier, selectTabs, selectTabsState } from "../tabsSelectors.js";
|
|
12
12
|
import { DEFAULT_TAB_ID } from "../tabsState.js";
|
|
13
|
-
import { filterContextInitialState } from "./filterContextState.js";
|
|
13
|
+
import { filterContextInitialState, } from "./filterContextState.js";
|
|
14
14
|
import { applyFilterContext, getFilterIdentifier } from "./filterContextUtils.js";
|
|
15
15
|
const selectSelf = createSelector(selectTabs, selectActiveTabLocalIdentifier, (tabs, activeTabId) => {
|
|
16
16
|
if (!tabs || !activeTabId) {
|
|
@@ -46,6 +46,17 @@ export const selectFilterContextDefinitionsByTab = createSelector(selectFilterCo
|
|
|
46
46
|
return acc;
|
|
47
47
|
}, {});
|
|
48
48
|
});
|
|
49
|
+
/**
|
|
50
|
+
* Returns applied filter context definitions for each tab keyed by identifier.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export const selectWorkingFilterContextDefinitionsByTab = createSelector(selectFilterContextStatesByTab, (statesByTab) => {
|
|
55
|
+
return Object.entries(statesByTab).reduce((acc, [identifier, state]) => {
|
|
56
|
+
acc[identifier] = state.workingFilterContextDefinition;
|
|
57
|
+
return acc;
|
|
58
|
+
}, {});
|
|
59
|
+
});
|
|
49
60
|
/**
|
|
50
61
|
* Returns filters from each tab keyed by tab identifier.
|
|
51
62
|
* This selector is useful for exporting dashboards with per-tab filters.
|
|
@@ -231,6 +242,17 @@ export const selectAttributeFilterDisplayForms = createSelector(selectSelf, (fil
|
|
|
231
242
|
invariant(filterContextState.attributeFilterDisplayForms, "attempting to access uninitialized filter context state");
|
|
232
243
|
return filterContextState.attributeFilterDisplayForms;
|
|
233
244
|
});
|
|
245
|
+
/**
|
|
246
|
+
* Tells whether a filter's display form ref points to the display form. The uri and the id are tried as
|
|
247
|
+
* well, as the filter may keep the ref in another form than the metadata object does.
|
|
248
|
+
*
|
|
249
|
+
* @internal
|
|
250
|
+
*/
|
|
251
|
+
export function isDisplayFormRefOf(ref, displayForm) {
|
|
252
|
+
return (areObjRefsEqual(ref, displayForm.ref) ||
|
|
253
|
+
areObjRefsEqual(ref, idRef(displayForm.id, "displayForm")) ||
|
|
254
|
+
areObjRefsEqual(ref, uriRef(displayForm.uri)));
|
|
255
|
+
}
|
|
234
256
|
/**
|
|
235
257
|
* Selects map of display form metadata objects referenced by attribute filters.
|
|
236
258
|
*
|
|
@@ -512,10 +534,7 @@ export const selectFilterContextAttributeFilterByDisplayForm = createMemoizedSel
|
|
|
512
534
|
if (!df) {
|
|
513
535
|
return undefined;
|
|
514
536
|
}
|
|
515
|
-
|
|
516
|
-
return attributeFilters.find((filter) => areObjRefsEqual(filter.attributeFilter.displayForm, df.ref) ||
|
|
517
|
-
areObjRefsEqual(filter.attributeFilter.displayForm, idRef(df.id, "displayForm")) ||
|
|
518
|
-
areObjRefsEqual(filter.attributeFilter.displayForm, uriRef(df.uri)));
|
|
537
|
+
return attributeFilters.find((filter) => isDisplayFormRefOf(filter.attributeFilter.displayForm, df));
|
|
519
538
|
}));
|
|
520
539
|
/**
|
|
521
540
|
* Creates a selector for selecting any attribute-based filter by its displayForm {@link @gooddata/sdk-model#ObjRef}.
|
|
@@ -531,12 +550,7 @@ export const selectFilterContextAttributeFilterItemByDisplayForm = createMemoize
|
|
|
531
550
|
if (!df) {
|
|
532
551
|
return undefined;
|
|
533
552
|
}
|
|
534
|
-
return attributeFilters.find((filter) =>
|
|
535
|
-
const filterDf = dashboardAttributeFilterItemDisplayForm(filter);
|
|
536
|
-
return (areObjRefsEqual(filterDf, df.ref) ||
|
|
537
|
-
areObjRefsEqual(filterDf, idRef(df.id, "displayForm")) ||
|
|
538
|
-
areObjRefsEqual(filterDf, uriRef(df.uri)));
|
|
539
|
-
});
|
|
553
|
+
return attributeFilters.find((filter) => isDisplayFormRefOf(dashboardAttributeFilterItemDisplayForm(filter), df));
|
|
540
554
|
}));
|
|
541
555
|
/**
|
|
542
556
|
* Creates a selector for selecting element-based attribute filter by its localId.
|
|
@@ -601,10 +615,7 @@ export const selectFilterContextAttributeFilterByDisplayFormForTab = createMemoi
|
|
|
601
615
|
if (!df) {
|
|
602
616
|
return undefined;
|
|
603
617
|
}
|
|
604
|
-
|
|
605
|
-
return attributeFilters.find((filter) => areObjRefsEqual(filter.attributeFilter.displayForm, df.ref) ||
|
|
606
|
-
areObjRefsEqual(filter.attributeFilter.displayForm, idRef(df.id, "displayForm")) ||
|
|
607
|
-
areObjRefsEqual(filter.attributeFilter.displayForm, uriRef(df.uri)));
|
|
618
|
+
return attributeFilters.find((filter) => isDisplayFormRefOf(filter.attributeFilter.displayForm, df));
|
|
608
619
|
}));
|
|
609
620
|
/**
|
|
610
621
|
* Creates a selector for selecting any attribute-based filter by its display form from a specific tab.
|
|
@@ -621,12 +632,7 @@ export const selectFilterContextAttributeFilterItemByDisplayFormForTab = createM
|
|
|
621
632
|
if (!df) {
|
|
622
633
|
return undefined;
|
|
623
634
|
}
|
|
624
|
-
return attributeFilters.find((filter) =>
|
|
625
|
-
const filterDf = dashboardAttributeFilterItemDisplayForm(filter);
|
|
626
|
-
return (areObjRefsEqual(filterDf, df.ref) ||
|
|
627
|
-
areObjRefsEqual(filterDf, idRef(df.id, "displayForm")) ||
|
|
628
|
-
areObjRefsEqual(filterDf, uriRef(df.uri)));
|
|
629
|
-
});
|
|
635
|
+
return attributeFilters.find((filter) => isDisplayFormRefOf(dashboardAttributeFilterItemDisplayForm(filter), df));
|
|
630
636
|
}));
|
|
631
637
|
/**
|
|
632
638
|
* Creates a selector for selecting element-based attribute filter by its localId from a specific tab.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type IAttributeWithReferences } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type DashboardAttributeFilterItem, type FilterContextItem, type IAttributeDisplayFormMetadataObject, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardFilterGroupsConfig, type IDashboardMeasureValueFilterConfig, type IFilterContextDefinition, type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
+
import { type ITabState, type ITabsState } from "../tabsState.js";
|
|
4
|
+
import { type WorkingFilterContextItem } from "./filterContextState.js";
|
|
5
|
+
type StagedFilter = FilterContextItem | WorkingFilterContextItem;
|
|
6
|
+
/**
|
|
7
|
+
* Cross-tab identity match. `allowListToText` enables the list-filter → text-filter migration
|
|
8
|
+
* used when a whole filter definition is replaced. Selection-only writes leave it off so a
|
|
9
|
+
* list selection does not convert a text filter on another tab.
|
|
10
|
+
*/
|
|
11
|
+
export interface IFindCounterpartOptions {
|
|
12
|
+
readonly allowListToText?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Cross-filtering virtual filters on the target tab are never a counterpart.
|
|
15
|
+
*/
|
|
16
|
+
readonly crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Local identifiers of cross-filtering virtual filters keyed by tab local identifier.
|
|
20
|
+
* Sourced from the drill slice, which reducers of the tabs slice cannot read.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export type CrossFilteringLocalIdsByTab = Readonly<Record<string, readonly string[]>>;
|
|
25
|
+
/**
|
|
26
|
+
* True when `localIdentifier` belongs to a cross-filtering virtual filter on `tab`.
|
|
27
|
+
* Those filters are applied on their own tab only and are not mirrored to or from other tabs.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function isCrossFilteringVirtualFilter(tab: ITabState, localIdentifier: string | undefined, crossFilteringLocalIdsByTab: CrossFilteringLocalIdsByTab | undefined): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Finds the filter on `targetTab` that is the same logical filter as `sourceFilter`.
|
|
34
|
+
* Same-type matches take precedence over list/text migrations. A missing or incompatible
|
|
35
|
+
* counterpart is a no-op for the caller.
|
|
36
|
+
*
|
|
37
|
+
* Assumes at most one filter per display form, date data set, and measure with a given
|
|
38
|
+
* dimensionality on a tab.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function findCounterpartFilter(sourceTab: ITabState, sourceFilter: FilterContextItem, targetTab: ITabState, attributesWithReferences?: IAttributeWithReferences[], options?: IFindCounterpartOptions): FilterContextItem | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* The saved initial filter on `tab` that corresponds to `appliedFilter`.
|
|
45
|
+
* Same-tab `localIdentifier` wins; identity matching is the fallback.
|
|
46
|
+
* Returns undefined when this tab has no saved counterpart.
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export declare function findOriginalFilter(tab: ITabState, appliedFilter: FilterContextItem): FilterContextItem | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Rewrites an attribute filter item so it keeps `localIdentifier` (the target tab's id).
|
|
53
|
+
*
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export declare function retargetAttributeFilterItem(filter: DashboardAttributeFilterItem, localIdentifier: string): DashboardAttributeFilterItem;
|
|
57
|
+
/**
|
|
58
|
+
* Carries over parent-filter dependencies from the filter being replaced.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export declare function preserveFilterDependencies(existing: DashboardAttributeFilterItem, replacement: DashboardAttributeFilterItem): DashboardAttributeFilterItem;
|
|
63
|
+
/**
|
|
64
|
+
* Copies an applied source filter onto an existing target filter, keeping the target's
|
|
65
|
+
* local identifier, parent dependencies, and measure-value dimensionality. Does not create a filter.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
export declare function applyMirroredFilterValue(source: FilterContextItem, target: FilterContextItem): FilterContextItem;
|
|
70
|
+
/**
|
|
71
|
+
* After the active tab commits staged filters and parameters, copy those applied values
|
|
72
|
+
* onto matching filters and parameters on the other tabs. Working overlays are not copied.
|
|
73
|
+
* A target tab's own staged value for a mirrored filter or parameter is dropped, so it cannot
|
|
74
|
+
* shadow the mirrored value; staged values of other filters on that tab are kept.
|
|
75
|
+
*
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export declare function mirrorCommittedWorkingSelection(state: ITabsState, sourceTab: ITabState, stagedFilters: readonly StagedFilter[] | undefined, stagedParameterRefs: readonly ObjRef[], crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab, enablePersistentFiltersAcrossTabs?: boolean): void;
|
|
79
|
+
/**
|
|
80
|
+
* Filter state of a tab created while sync is on.
|
|
81
|
+
*
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
export interface ISyncedTabSeed {
|
|
85
|
+
readonly filterContextDefinition: IFilterContextDefinition;
|
|
86
|
+
readonly attributeFilterDisplayForms: IAttributeDisplayFormMetadataObject[];
|
|
87
|
+
readonly attributeFilterConfigs: IDashboardAttributeFilterConfig[];
|
|
88
|
+
readonly dateFilterConfigs: IDashboardDateFilterConfigItem[];
|
|
89
|
+
readonly measureValueFilterConfigs: IDashboardMeasureValueFilterConfig[];
|
|
90
|
+
readonly filterGroupsConfig: IDashboardFilterGroupsConfig | undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Seeds a new tab with the applied filters of `sourceTab` and the configs that belong to them,
|
|
94
|
+
* so every synced filter has a counterpart on the new tab. Cross-filtering virtual filters stay
|
|
95
|
+
* on their own tab. `base` provides the title and description of the new filter context.
|
|
96
|
+
*
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
export declare function seedSyncedTabFilters(sourceTab: ITabState, base: IFilterContextDefinition, crossFilteringLocalIdsByTab?: CrossFilteringLocalIdsByTab): ISyncedTabSeed;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=filterSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterSync.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/filterContext/filterSync.ts"],"names":[],"mappings":"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"}
|