@gooddata/sdk-ui-dashboard 11.7.0-alpha.4 → 11.7.0-alpha.6
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/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/sharedHooks/useAttributeFilterDisplayFormFromMap.d.ts +3 -0
- package/esm/_staging/sharedHooks/useAttributeFilterDisplayFormFromMap.d.ts.map +1 -0
- package/esm/_staging/sharedHooks/useAttributeFilterDisplayFormFromMap.js +11 -0
- package/esm/_staging/sharedHooks/useAttributeFilterDisplayFormFromMap.js.map +1 -0
- package/esm/_staging/sharedHooks/useFiltersNamings.js +4 -3
- package/esm/_staging/sharedHooks/useFiltersNamings.js.map +1 -1
- package/esm/kdaDialog/components/KdaContent.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaContent.js +3 -2
- package/esm/kdaDialog/components/KdaContent.js.map +1 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts +3 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.js +4 -2
- package/esm/kdaDialog/components/KdaKeyDriverChart.js.map +1 -1
- package/esm/kdaDialog/composition/AddFilterButton.d.ts +2 -0
- package/esm/kdaDialog/composition/AddFilterButton.d.ts.map +1 -0
- package/esm/kdaDialog/composition/AddFilterButton.js +28 -0
- package/esm/kdaDialog/composition/AddFilterButton.js.map +1 -0
- package/esm/kdaDialog/composition/FiltersBar.d.ts.map +1 -1
- package/esm/kdaDialog/composition/FiltersBar.js +5 -28
- package/esm/kdaDialog/composition/FiltersBar.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversOverview.js +2 -2
- package/esm/kdaDialog/composition/KeyDriversOverview.js.map +1 -1
- package/esm/kdaDialog/composition/data/dataview.js +1 -1
- package/esm/kdaDialog/composition/data/dataview.js.map +1 -1
- package/esm/kdaDialog/composition/hooks/useAddNewAttributeHandler.d.ts +5 -0
- package/esm/kdaDialog/composition/hooks/useAddNewAttributeHandler.d.ts.map +1 -0
- package/esm/kdaDialog/composition/hooks/useAddNewAttributeHandler.js +26 -0
- package/esm/kdaDialog/composition/hooks/useAddNewAttributeHandler.js.map +1 -0
- package/esm/kdaDialog/composition/hooks/useAttributeFiltersChangeHandler.d.ts +7 -0
- package/esm/kdaDialog/composition/hooks/useAttributeFiltersChangeHandler.d.ts.map +1 -0
- package/esm/kdaDialog/composition/hooks/useAttributeFiltersChangeHandler.js +31 -0
- package/esm/kdaDialog/composition/hooks/useAttributeFiltersChangeHandler.js.map +1 -0
- package/esm/kdaDialog/composition/hooks/useDataViewWithConfig.d.ts +2 -0
- package/esm/kdaDialog/composition/hooks/useDataViewWithConfig.d.ts.map +1 -1
- package/esm/kdaDialog/composition/hooks/useDataViewWithConfig.js +1 -0
- package/esm/kdaDialog/composition/hooks/useDataViewWithConfig.js.map +1 -1
- package/esm/kdaDialog/composition/hooks/useDrillAttributeHandler.d.ts +5 -0
- package/esm/kdaDialog/composition/hooks/useDrillAttributeHandler.d.ts.map +1 -0
- package/esm/kdaDialog/composition/hooks/useDrillAttributeHandler.js +57 -0
- package/esm/kdaDialog/composition/hooks/useDrillAttributeHandler.js.map +1 -0
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts +3 -2
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts.map +1 -1
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js +15 -1
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js.map +1 -1
- package/esm/kdaDialog/composition/hooks/useUnusedAttributes.d.ts +3 -0
- package/esm/kdaDialog/composition/hooks/useUnusedAttributes.d.ts.map +1 -0
- package/esm/kdaDialog/composition/hooks/useUnusedAttributes.js +20 -0
- package/esm/kdaDialog/composition/hooks/useUnusedAttributes.js.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +14 -8
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js.map +1 -1
- package/esm/kdaDialog/hooks/useRelevantFilters.d.ts +2 -0
- package/esm/kdaDialog/hooks/useRelevantFilters.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useRelevantFilters.js +16 -0
- package/esm/kdaDialog/hooks/useRelevantFilters.js.map +1 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts.map +1 -1
- package/esm/kdaDialog/hooks/useSummaryDrivers.js +4 -3
- package/esm/kdaDialog/hooks/useSummaryDrivers.js.map +1 -1
- package/esm/kdaDialog/internalTypes.d.ts +2 -0
- package/esm/kdaDialog/internalTypes.d.ts.map +1 -1
- package/esm/kdaDialog/providers/Kda.js +1 -1
- package/esm/kdaDialog/providers/Kda.js.map +1 -1
- package/esm/kdaDialog/utils.d.ts +4 -0
- package/esm/kdaDialog/utils.d.ts.map +1 -1
- package/esm/kdaDialog/utils.js +46 -0
- package/esm/kdaDialog/utils.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/changeSharingHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/changeSharingHandler.js +4 -1
- package/esm/model/commandHandlers/dashboard/changeSharingHandler.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/insightReferences.d.ts +5 -1
- package/esm/model/commandHandlers/dashboard/common/insightReferences.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/insightReferences.js +31 -0
- package/esm/model/commandHandlers/dashboard/common/insightReferences.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts +2 -16
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +81 -13
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +37 -23
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +3 -2
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +43 -3
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js.map +1 -1
- package/esm/model/commandHandlers/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/index.js +2 -0
- package/esm/model/commandHandlers/index.js.map +1 -1
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.d.ts +9 -0
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.d.ts.map +1 -0
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js +113 -0
- package/esm/model/commandHandlers/tabs/switchDashboardTabHandler.js.map +1 -0
- package/esm/model/commands/base.d.ts +1 -1
- package/esm/model/commands/base.d.ts.map +1 -1
- package/esm/model/commands/dashboard.d.ts +8 -2
- package/esm/model/commands/dashboard.d.ts.map +1 -1
- package/esm/model/commands/dashboard.js +5 -2
- package/esm/model/commands/dashboard.js.map +1 -1
- package/esm/model/commands/drill.d.ts +7 -2
- package/esm/model/commands/drill.d.ts.map +1 -1
- package/esm/model/commands/drill.js +3 -1
- package/esm/model/commands/drill.js.map +1 -1
- package/esm/model/commands/index.d.ts +4 -1
- package/esm/model/commands/index.d.ts.map +1 -1
- package/esm/model/commands/index.js +1 -0
- package/esm/model/commands/index.js.map +1 -1
- package/esm/model/commands/tabs.d.ts +37 -0
- package/esm/model/commands/tabs.d.ts.map +1 -0
- package/esm/model/commands/tabs.js +20 -0
- package/esm/model/commands/tabs.js.map +1 -0
- package/esm/model/events/base.d.ts +1 -1
- package/esm/model/events/base.d.ts.map +1 -1
- package/esm/model/events/base.js.map +1 -1
- package/esm/model/events/index.d.ts +4 -1
- package/esm/model/events/index.d.ts.map +1 -1
- package/esm/model/events/index.js +1 -0
- package/esm/model/events/index.js.map +1 -1
- package/esm/model/events/tabs.d.ts +47 -0
- package/esm/model/events/tabs.d.ts.map +1 -0
- package/esm/model/events/tabs.js +33 -0
- package/esm/model/events/tabs.js.map +1 -0
- package/esm/model/index.d.ts +1 -0
- package/esm/model/index.d.ts.map +1 -1
- package/esm/model/index.js +1 -0
- package/esm/model/index.js.map +1 -1
- package/esm/model/react/types.d.ts +1 -0
- package/esm/model/react/types.d.ts.map +1 -1
- package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
- package/esm/model/react/useInitializeDashboardStore.js +1 -1
- package/esm/model/react/useInitializeDashboardStore.js.map +1 -1
- package/esm/model/store/config/configSelectors.d.ts +6 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +8 -0
- package/esm/model/store/config/configSelectors.js.map +1 -1
- package/esm/model/store/dashboardStore.d.ts.map +1 -1
- package/esm/model/store/dashboardStore.js +2 -0
- package/esm/model/store/dashboardStore.js.map +1 -1
- package/esm/model/store/index.d.ts +3 -1
- package/esm/model/store/index.d.ts.map +1 -1
- package/esm/model/store/index.js +2 -1
- package/esm/model/store/index.js.map +1 -1
- package/esm/model/store/tabs/index.d.ts +28 -0
- package/esm/model/store/tabs/index.d.ts.map +1 -0
- package/esm/model/store/tabs/index.js +16 -0
- package/esm/model/store/tabs/index.js.map +1 -0
- package/esm/model/store/tabs/tabsReducers.d.ts +35 -0
- package/esm/model/store/tabs/tabsReducers.d.ts.map +1 -0
- package/esm/model/store/tabs/tabsReducers.js +41 -0
- package/esm/model/store/tabs/tabsReducers.js.map +1 -0
- package/esm/model/store/tabs/tabsSelectors.d.ts +34 -0
- package/esm/model/store/tabs/tabsSelectors.d.ts.map +1 -0
- package/esm/model/store/tabs/tabsSelectors.js +50 -0
- package/esm/model/store/tabs/tabsSelectors.js.map +1 -0
- package/esm/model/store/tabs/tabsState.d.ts +17 -0
- package/esm/model/store/tabs/tabsState.d.ts.map +1 -0
- package/esm/model/store/tabs/tabsState.js +6 -0
- package/esm/model/store/tabs/tabsState.js.map +1 -0
- package/esm/model/store/types.d.ts +3 -0
- package/esm/model/store/types.d.ts.map +1 -1
- package/esm/model/store/types.js +1 -0
- package/esm/model/store/types.js.map +1 -1
- package/esm/{presentation/utils.d.ts → model/utils/widgetFilters.d.ts} +8 -2
- package/esm/model/utils/widgetFilters.d.ts.map +1 -0
- package/esm/{presentation/utils.js → model/utils/widgetFilters.js} +7 -1
- package/esm/model/utils/widgetFilters.js.map +1 -0
- package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.d.ts +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.js +2 -2
- package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.js.map +1 -1
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts.map +1 -1
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +1 -2
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js.map +1 -1
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.d.ts.map +1 -1
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.js +1 -2
- package/esm/presentation/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.js.map +1 -1
- package/esm/presentation/automationFilters/useAutomationFiltersSelect.d.ts.map +1 -1
- package/esm/presentation/automationFilters/useAutomationFiltersSelect.js +1 -2
- package/esm/presentation/automationFilters/useAutomationFiltersSelect.js.map +1 -1
- package/esm/presentation/automationFilters/utils.d.ts.map +1 -1
- package/esm/presentation/automationFilters/utils.js +1 -1
- package/esm/presentation/automationFilters/utils.js.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +6 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.d.ts +15 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.d.ts.map +1 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js +44 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js.map +1 -0
- package/esm/presentation/dashboard/components/DashboardRenderer.d.ts.map +1 -1
- package/esm/presentation/dashboard/components/DashboardRenderer.js +1 -1
- package/esm/presentation/dashboard/components/DashboardRenderer.js.map +1 -1
- package/esm/presentation/dashboard/types.d.ts +11 -0
- package/esm/presentation/dashboard/types.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.d.ts +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js +3 -7
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js.map +1 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.js +4 -3
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.js.map +1 -1
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.d.ts.map +1 -1
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.js +6 -0
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.js.map +1 -1
- package/esm/presentation/drill/hooks/useDrills.d.ts +1 -1
- package/esm/presentation/drill/hooks/useKeyDriverAnalysis.d.ts +1 -1
- package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.js +217 -95
- package/esm/presentation/drill/utils/kdaUtils.js.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.d.ts.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.js +4 -3
- package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.js.map +1 -1
- package/esm/presentation/filterBar/attributeFilter/CustomDropdownActions.js +4 -3
- package/esm/presentation/filterBar/attributeFilter/CustomDropdownActions.js.map +1 -1
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +1 -1
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js.map +1 -1
- package/esm/presentation/localization/bundles/en-US.json +16 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
- package/esm/presentation/widget/common/configuration/AttributeFilterConfiguration.js +4 -3
- package/esm/presentation/widget/common/configuration/AttributeFilterConfiguration.js.map +1 -1
- package/esm/presentation/widget/common/configuration/AttributeFilterConfigurationItem.js +3 -3
- package/esm/presentation/widget/common/configuration/AttributeFilterConfigurationItem.js.map +1 -1
- package/esm/presentation/widget/common/configuration/FilterConfiguration.d.ts.map +1 -1
- package/esm/presentation/widget/common/configuration/FilterConfiguration.js +4 -3
- package/esm/presentation/widget/common/configuration/FilterConfiguration.js.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.js +3 -14
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.js.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js +2 -2
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js.map +1 -1
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/CustomUiMenuComponents.d.ts +2 -2
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/CustomUiMenuComponents.d.ts.map +1 -1
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/CustomUiMenuComponents.js +6 -6
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/CustomUiMenuComponents.js.map +1 -1
- package/esm/sdk-ui-dashboard.d.ts +211 -7
- package/package.json +18 -18
- package/styles/css/dashboard.css +5 -0
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/filterBar.css +3 -0
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/kdaDialog.css +7 -0
- package/styles/css/kdaDialog.css.map +1 -1
- package/styles/css/main.css +15 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/dashboard.scss +5 -0
- package/styles/scss/filterBar.scss +4 -0
- package/styles/scss/kdaDialog.scss +11 -0
- package/esm/presentation/utils.d.ts.map +0 -1
- package/esm/presentation/utils.js.map +0 -1
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
2
|
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { useDateAttribute } from "../../hooks/useDateAttribute.js";
|
|
3
4
|
import { useKdaState } from "../../providers/KdaState.js";
|
|
4
|
-
export function usePeriodChangeHandler(
|
|
5
|
+
export function usePeriodChangeHandler() {
|
|
6
|
+
const dateAttributeFinder = useDateAttribute();
|
|
5
7
|
const { state, setState } = useKdaState();
|
|
8
|
+
const def = state.definition;
|
|
9
|
+
const dateAttribute = useMemo(() => {
|
|
10
|
+
return dateAttributeFinder(def?.dateAttribute);
|
|
11
|
+
}, [dateAttributeFinder, def?.dateAttribute]);
|
|
12
|
+
const options = useMemo(() => {
|
|
13
|
+
return {
|
|
14
|
+
dateAttribute,
|
|
15
|
+
period: def?.type ?? "previous_period",
|
|
16
|
+
range: def?.range,
|
|
17
|
+
};
|
|
18
|
+
}, [dateAttribute, def?.type, def?.range]);
|
|
6
19
|
const onPeriodChange = useCallback((type) => {
|
|
7
20
|
const def = state.definition;
|
|
8
21
|
if (!def || !dateAttribute) {
|
|
@@ -17,6 +30,7 @@ export function usePeriodChangeHandler(dateAttribute) {
|
|
|
17
30
|
return isPeriodChangeAvailable(dateAttribute);
|
|
18
31
|
}, [dateAttribute]);
|
|
19
32
|
return {
|
|
33
|
+
options,
|
|
20
34
|
isAvailable,
|
|
21
35
|
onPeriodChange,
|
|
22
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePeriodChangeHandler.js","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/usePeriodChangeHandler.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,MAAM,UAAU,sBAAsB,CAAC
|
|
1
|
+
{"version":3,"file":"usePeriodChangeHandler.js","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/usePeriodChangeHandler.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,MAAM,UAAU,sBAAsB;IAClC,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;IAE/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAE7B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAmB,EAAE;QACzC,OAAO;YACH,aAAa;YACb,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,iBAAiB;YACtC,KAAK,EAAE,GAAG,EAAE,KAAK;SACpB,CAAC;IACN,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,WAAW,CAC9B,CAAC,IAAmB,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;QAE7B,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpE,QAAQ,CAAC;YACL,UAAU;SACb,CAAC,CAAC;IACP,CAAC,EACD,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAC9C,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,uBAAuB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO;QACH,OAAO;QACP,WAAW;QACX,cAAc;KACjB,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC3B,UAA0B,EAC1B,aAAoC,EACpC,IAAmB;IAEnB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAE9C,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACvD,OAAO;gBACH,GAAG,UAAU;gBACb,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE;oBACH;wBACI,GAAG,IAAI;wBACP,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;qBAClC;oBACD,EAAE;iBACL;aACJ,CAAC;QACN,CAAC;QACD,KAAK,2BAA2B,CAAC,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YACvD,OAAO;gBACH,GAAG,UAAU;gBACb,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE;oBACH;wBACI,GAAG,IAAI;wBACP,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;qBAClC;oBACD,EAAE;iBACL;aACJ,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,WAAqC;IACrE,QAAQ,WAAW,EAAE,CAAC;QAClB,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,kBAAkB,CAAC;QACxB,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACnB,CAAC;QACD;YACI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,aAA2C;IACxE,MAAM,WAAW,GAAG,aAAa,EAAE,WAAW,CAAC;IAC/C,OAAO,WAAW,KAAK,eAAe,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnusedAttributes.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useUnusedAttributes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAKzE,wBAAgB,mBAAmB,wBAkBlC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
4
|
+
import { useAttribute } from "../../hooks/useAttribute.js";
|
|
5
|
+
import { useKdaState } from "../../providers/KdaState.js";
|
|
6
|
+
export function useUnusedAttributes() {
|
|
7
|
+
const { state } = useKdaState();
|
|
8
|
+
const attributeFinder = useAttribute();
|
|
9
|
+
return useMemo(() => {
|
|
10
|
+
const relevantAttributes = state.relevantAttributes
|
|
11
|
+
.map(attributeFinder)
|
|
12
|
+
.filter((attribute) => !!attribute);
|
|
13
|
+
const filters = state.attributeFilters;
|
|
14
|
+
return relevantAttributes.filter((attr) => {
|
|
15
|
+
return !filters.some((f) => areObjRefsEqual(f.attributeFilter.displayForm, attr.attribute.ref) ||
|
|
16
|
+
attr.displayForms.some((df) => areObjRefsEqual(f.attributeFilter.displayForm, df.ref)));
|
|
17
|
+
});
|
|
18
|
+
}, [attributeFinder, state.attributeFilters, state.relevantAttributes]);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=useUnusedAttributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnusedAttributes.js","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useUnusedAttributes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAqB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,UAAU,mBAAmB;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAC9C,GAAG,CAAC,eAAe,CAAC;aACpB,MAAM,CAAC,CAAC,SAAS,EAAkC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACvC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO,CAAC,OAAO,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACF,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBAClE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAC7F,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChangeAnalysis.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"AA0BA,wBAAgB,iBAAiB,SAkBhC"}
|
|
@@ -3,8 +3,10 @@ import { useEffect, useMemo } from "react";
|
|
|
3
3
|
import { ClientFormatterFacade } from "@gooddata/number-formatter";
|
|
4
4
|
import { newAttribute, } from "@gooddata/sdk-model";
|
|
5
5
|
import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
6
|
+
import { dashboardAttributeFilterToAttributeFilter } from "../../../_staging/dashboard/dashboardFilterConverter.js";
|
|
6
7
|
import { useAttribute } from "../../hooks/useAttribute.js";
|
|
7
8
|
import { useDateAttribute } from "../../hooks/useDateAttribute.js";
|
|
9
|
+
import { useRelevantFilters } from "../../hooks/useRelevantFilters.js";
|
|
8
10
|
import { useKdaState } from "../../providers/KdaState.js";
|
|
9
11
|
export function useChangeAnalysis() {
|
|
10
12
|
const { state, setState } = useKdaState();
|
|
@@ -13,13 +15,15 @@ export function useChangeAnalysis() {
|
|
|
13
15
|
return state.selectedAttributes;
|
|
14
16
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
17
|
}, [state.selectedUpdated]);
|
|
16
|
-
const
|
|
18
|
+
const filters = useRelevantFilters();
|
|
19
|
+
const loading = state.relevantStatus === "loading" || state.relevantStatus === "pending";
|
|
20
|
+
const results = useChangeAnalysisResults(definition, attributes, filters, loading);
|
|
17
21
|
const list = useKdaStateWithList(results, definition);
|
|
18
22
|
useEffect(() => {
|
|
19
23
|
setState(list);
|
|
20
24
|
}, [list, setState]);
|
|
21
25
|
}
|
|
22
|
-
function useChangeAnalysisResults(definition, attrs) {
|
|
26
|
+
function useChangeAnalysisResults(definition, attrs, attrFilters, loading) {
|
|
23
27
|
const backend = useBackendStrict();
|
|
24
28
|
const workspace = useWorkspaceStrict();
|
|
25
29
|
const from = definition?.range[0].date;
|
|
@@ -29,7 +33,7 @@ function useChangeAnalysisResults(definition, attrs) {
|
|
|
29
33
|
return useCancelablePromise({
|
|
30
34
|
promise: () => {
|
|
31
35
|
const dateAttribute = dateAttributeFinder(definition?.dateAttribute);
|
|
32
|
-
if (!definition || !dateAttribute) {
|
|
36
|
+
if (!definition || !dateAttribute || loading) {
|
|
33
37
|
return Promise.resolve(undefined);
|
|
34
38
|
}
|
|
35
39
|
const granularity = dateAttribute.granularity;
|
|
@@ -39,14 +43,15 @@ function useChangeAnalysisResults(definition, attrs) {
|
|
|
39
43
|
return attr ? newAttribute(ref) : null;
|
|
40
44
|
})
|
|
41
45
|
.filter(Boolean);
|
|
46
|
+
const filters = attrFilters.map(dashboardAttributeFilterToAttributeFilter);
|
|
42
47
|
return backend
|
|
43
48
|
.workspace(workspace)
|
|
44
49
|
.keyDriverAnalysis()
|
|
45
50
|
.computeChangeAnalysis({
|
|
46
51
|
measure: definition.metric,
|
|
47
52
|
auxMeasures: definition.metrics,
|
|
48
|
-
attributes
|
|
49
|
-
filters
|
|
53
|
+
attributes,
|
|
54
|
+
filters,
|
|
50
55
|
}, {
|
|
51
56
|
dateAttribute: newAttribute(dateAttribute.defaultDisplayForm.ref),
|
|
52
57
|
from: from ?? "",
|
|
@@ -54,7 +59,7 @@ function useChangeAnalysisResults(definition, attrs) {
|
|
|
54
59
|
granularity,
|
|
55
60
|
});
|
|
56
61
|
},
|
|
57
|
-
}, [backend, definition, attrs, workspace, from, to]);
|
|
62
|
+
}, [backend, definition, attrs, workspace, from, to, loading, attrFilters]);
|
|
58
63
|
}
|
|
59
64
|
function useKdaStateWithList({ result, status }, definition) {
|
|
60
65
|
const { state } = useKdaState();
|
|
@@ -73,7 +78,7 @@ function useKdaStateWithList({ result, status }, definition) {
|
|
|
73
78
|
attributes.push(attribute);
|
|
74
79
|
}
|
|
75
80
|
if (attribute && metric && from && to) {
|
|
76
|
-
return createKdaItem(metric, attribute, keyDriver, i, from, to, separators);
|
|
81
|
+
return createKdaItem(metric, attribute, ref, keyDriver, i, from, to, separators);
|
|
77
82
|
}
|
|
78
83
|
return null;
|
|
79
84
|
}
|
|
@@ -94,7 +99,7 @@ function useKdaStateWithList({ result, status }, definition) {
|
|
|
94
99
|
};
|
|
95
100
|
}, [items, loadingStatus, attributes]);
|
|
96
101
|
}
|
|
97
|
-
function createKdaItem(metric, attribute, driver, i, from, to, separators) {
|
|
102
|
+
function createKdaItem(metric, attribute, displayForm, driver, i, from, to, separators) {
|
|
98
103
|
const stringTitle = `${attribute.attribute.title}: ${driver.value}`;
|
|
99
104
|
const id = `key_driver_${i}`;
|
|
100
105
|
return {
|
|
@@ -103,6 +108,7 @@ function createKdaItem(metric, attribute, driver, i, from, to, separators) {
|
|
|
103
108
|
data: {
|
|
104
109
|
id,
|
|
105
110
|
attribute: attribute.defaultDisplayForm.ref,
|
|
111
|
+
displayForm: displayForm,
|
|
106
112
|
title: attribute.attribute.title,
|
|
107
113
|
description: attribute.attribute.description,
|
|
108
114
|
category: driver.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChangeAnalysis.js","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.js","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAOH,YAAY,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG9F,OAAO,EAAE,yCAAyC,EAAE,MAAM,yDAAyD,CAAC;AACpH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,KAAK,CAAC,kBAAkB,CAAC;QAChC,uDAAuD;IAC3D,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;IAEzF,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,wBAAwB,CAC7B,UAAiC,EACjC,KAAe,EACf,WAAwC,EACxC,OAAgB;IAEhB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IAEvC,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;IAC/C,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IAEvC,OAAO,oBAAoB,CACvB;QACI,OAAO,EAAE,GAAG,EAAE;YACV,MAAM,aAAa,GAAG,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAErE,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;gBAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAC9C,MAAM,UAAU,GAAG,KAAK;iBACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACT,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAiB,CAAC;YACrC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAE3E,OAAO,OAAO;iBACT,SAAS,CAAC,SAAS,CAAC;iBACpB,iBAAiB,EAAE;iBACnB,qBAAqB,CAClB;gBACI,OAAO,EAAE,UAAU,CAAC,MAAM;gBAC1B,WAAW,EAAE,UAAU,CAAC,OAAO;gBAC/B,UAAU;gBACV,OAAO;aACV,EACD;gBACI,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBACjE,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,EAAE,EAAE,EAAE,IAAI,EAAE;gBACZ,WAAW;aACd,CACJ,CAAC;QACV,CAAC;KACJ,EACD,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAC1E,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CACxB,EAAE,MAAM,EAAE,MAAM,EAA+C,EAC/D,UAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;IAElC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,MAAM,UAAU,GAAwB,EAAE,CAAC;QAE3C,SAAS,WAAW,CAAC,SAAqB,EAAE,CAAS;YACjD,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC;YAClC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAEvC,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBACpC,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyC,CAAC;QAE3E,OAAO;YACH,KAAK;YACL,UAAU;SACb,CAAC;IACN,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAExE,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,OAAO;YACH,KAAK;YACL,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,aAAa;YAC7B,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC;SACtE,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAClB,MAAgB,EAChB,SAA4B,EAC5B,WAAmB,EACnB,MAAkB,EAClB,CAAS,EACT,IAAY,EACZ,EAAU,EACV,UAAwB;IAExB,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IACpE,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;IAE7B,OAAO;QACH,EAAE;QACF,WAAW;QACX,IAAI,EAAE;YACF,EAAE;YACF,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC,GAAG;YAC3C,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK;YAChC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW;YAC5C,QAAQ,EAAE,MAAM,CAAC,KAAK;YACtB,IAAI,EAAE;gBACF,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;gBAC9B,IAAI,EAAE,IAAI;aACb;YACD,EAAE,EAAE;gBACA,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;gBAC5B,IAAI,EAAE,EAAE;aACX;YACD,aAAa,EAAE,MAAM,CAAC,mBAAmB;YACzC,iBAAiB,EAAE,MAAM,CAAC,GAAG;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC,OAAO,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,cAAc,CAAC;YACvF,CAAC;SACJ;QACD,IAAI,EAAE,aAAa;KACtB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRelevantFilters.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useRelevantFilters.ts"],"names":[],"mappings":"AAUA,wBAAgB,kBAAkB,8DAUjC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useKdaState } from "../providers/KdaState.js";
|
|
4
|
+
import { getOnlyRelevantFilters } from "../utils.js";
|
|
5
|
+
import { useAttribute } from "./useAttribute.js";
|
|
6
|
+
export function useRelevantFilters() {
|
|
7
|
+
const { state } = useKdaState();
|
|
8
|
+
const attributeFinder = useAttribute();
|
|
9
|
+
return useMemo(() => {
|
|
10
|
+
const relevantAttributes = state.relevantAttributes
|
|
11
|
+
.map(attributeFinder)
|
|
12
|
+
.filter((attribute) => !!attribute);
|
|
13
|
+
return getOnlyRelevantFilters(state.attributeFilters, relevantAttributes);
|
|
14
|
+
}, [attributeFinder, state.attributeFilters, state.relevantAttributes]);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=useRelevantFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRelevantFilters.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useRelevantFilters.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,kBAAkB;IAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAC9C,GAAG,CAAC,eAAe,CAAC;aACpB,MAAM,CAAC,CAAC,SAAS,EAAkC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSummaryDrivers.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSummaryDrivers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useSummaryDrivers.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSummaryDrivers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,wBAAgB,iBAAiB,mBA8ChC"}
|
|
@@ -11,7 +11,7 @@ export function useSummaryDrivers() {
|
|
|
11
11
|
const groups = state.items.reduce((prev, { data }) => {
|
|
12
12
|
const ref = objRefToString(data.attribute);
|
|
13
13
|
if (!prev[ref]) {
|
|
14
|
-
prev[ref] = createKdaGroup(ref, data.attribute, data.title, data.description);
|
|
14
|
+
prev[ref] = createKdaGroup(ref, data.attribute, data.displayForm, data.title, data.description);
|
|
15
15
|
}
|
|
16
16
|
if (data.isSignificant) {
|
|
17
17
|
prev[ref].significantDrivers.push(data);
|
|
@@ -25,7 +25,7 @@ export function useSummaryDrivers() {
|
|
|
25
25
|
if (!prev[ref]) {
|
|
26
26
|
const attribute = attributeFinder(current);
|
|
27
27
|
if (attribute) {
|
|
28
|
-
prev[ref] = createKdaGroup(ref, current, attribute.attribute.title, attribute.attribute.description);
|
|
28
|
+
prev[ref] = createKdaGroup(ref, current, attribute.defaultDisplayForm, attribute.attribute.title, attribute.attribute.description);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
return prev;
|
|
@@ -33,12 +33,13 @@ export function useSummaryDrivers() {
|
|
|
33
33
|
return Object.values(groups).sort((a, b) => b.significantDrivers.length - a.significantDrivers.length);
|
|
34
34
|
}, [state.items, attributeFinder, state.selectedAttributes]);
|
|
35
35
|
}
|
|
36
|
-
function createKdaGroup(id, attribute, title, description) {
|
|
36
|
+
function createKdaGroup(id, attribute, displayForm, title, description) {
|
|
37
37
|
return {
|
|
38
38
|
id,
|
|
39
39
|
significantDrivers: [],
|
|
40
40
|
allDrivers: [],
|
|
41
41
|
attribute,
|
|
42
|
+
displayForm,
|
|
42
43
|
title,
|
|
43
44
|
description,
|
|
44
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSummaryDrivers.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSummaryDrivers.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,QAAQ;QACR,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAA+B,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/E,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"useSummaryDrivers.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSummaryDrivers.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,iBAAiB;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,QAAQ;QACR,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAA+B,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/E,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,WAAW,CACnB,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,4BAA4B;QAC5B,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,SAAS,EAAE,CAAC;oBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,OAAO,EACP,SAAS,CAAC,kBAAkB,EAC5B,SAAS,CAAC,SAAS,CAAC,KAAK,EACzB,SAAS,CAAC,SAAS,CAAC,WAAW,CAClC,CAAC;gBACN,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,CACpD,CAAC;IACxB,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CACnB,EAAU,EACV,SAAiB,EACjB,WAAmB,EACnB,KAAa,EACb,WAAmB;IAEnB,OAAO;QACH,EAAE;QACF,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE,EAAE;QACd,SAAS;QACT,WAAW;QACX,KAAK;QACL,WAAW;KACd,CAAC;AACN,CAAC"}
|
|
@@ -17,6 +17,7 @@ export interface KdaItem {
|
|
|
17
17
|
};
|
|
18
18
|
to: KdaItem["from"];
|
|
19
19
|
attribute: ObjRef;
|
|
20
|
+
displayForm: ObjRef;
|
|
20
21
|
formatValue: (value: number) => string;
|
|
21
22
|
isSignificant: boolean;
|
|
22
23
|
standardDeviation: number;
|
|
@@ -27,6 +28,7 @@ export interface KdaItemGroup {
|
|
|
27
28
|
title: string;
|
|
28
29
|
description: string;
|
|
29
30
|
attribute: ObjRef;
|
|
31
|
+
displayForm: ObjRef;
|
|
30
32
|
significantDrivers: KdaItem[];
|
|
31
33
|
allDrivers: KdaItem[];
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/internalTypes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IAErB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAE9D,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,aAAa,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7D,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5D,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;IAC9C,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACzD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/internalTypes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IAErB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAE9D,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,aAAa,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7D,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5D,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;IAC9C,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACzD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -8,7 +8,7 @@ export function KdaProvider({ children, definition, separators }) {
|
|
|
8
8
|
separators,
|
|
9
9
|
definition,
|
|
10
10
|
definitionStatus: "success",
|
|
11
|
-
|
|
11
|
+
attributeFilters: definition.filters?.slice() ?? [],
|
|
12
12
|
};
|
|
13
13
|
}, [definition, separators]);
|
|
14
14
|
return _jsx(KdaStateProvider, { value: state, children: children });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kda.js","sourceRoot":"","sources":["../../../src/kdaDialog/providers/Kda.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAY;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAsB,EAAE;QAC1C,OAAO;YACH,UAAU;YACV,UAAU;YACV,gBAAgB,EAAE,SAAS;YAC3B,
|
|
1
|
+
{"version":3,"file":"Kda.js","sourceRoot":"","sources":["../../../src/kdaDialog/providers/Kda.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAY;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAsB,EAAE;QAC1C,OAAO;YACH,UAAU;YACV,UAAU;YACV,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;SACtD,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7B,OAAO,KAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAoB,CAAC;AACzE,CAAC"}
|
package/esm/kdaDialog/utils.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ISeparators } from "@gooddata/number-formatter";
|
|
2
|
+
import { ICatalogAttribute, IDashboardAttributeFilter, ObjRef } from "@gooddata/sdk-model";
|
|
2
3
|
import { KdaDateOptions } from "./internalTypes.js";
|
|
3
4
|
import { IKdaDefinition } from "./types.js";
|
|
4
5
|
export declare function formatValue(definition: IKdaDefinition, value: number, separators?: ISeparators): string;
|
|
5
6
|
export declare function formatTitle(option: KdaDateOptions, splitter: string): string;
|
|
7
|
+
export declare function getOnlyRelevantFilters(all: IDashboardAttributeFilter[], relevantAttrs: ICatalogAttribute[]): IDashboardAttributeFilter[];
|
|
8
|
+
export declare function createNewAttributeFilter(attr: ICatalogAttribute, displayForm: ObjRef, id: string, value?: string): IDashboardAttributeFilter;
|
|
9
|
+
export declare function updateExistingAttributeFilter(f: IDashboardAttributeFilter, val: string): IDashboardAttributeFilter;
|
|
6
10
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EACH,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,EAKT,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,UAQ9F;AAID,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB5E;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,+BAQ1G;AAED,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,6BAmBjB;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,GAkB9E,yBAAyB,CACjC"}
|
package/esm/kdaDialog/utils.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { invariant } from "ts-invariant";
|
|
2
3
|
import { ClientFormatterFacade } from "@gooddata/number-formatter";
|
|
4
|
+
import { areObjRefsEqual, isAttributeElementsByRef, isAttributeElementsByValue, objRefToString, } from "@gooddata/sdk-model";
|
|
3
5
|
import { DateFilterHelpers } from "@gooddata/sdk-ui-filters";
|
|
4
6
|
import { DEFAULT_MEASURE_FORMAT } from "../presentation/alerting/DefaultAlertingDialog/constants.js";
|
|
5
7
|
//Format value
|
|
@@ -17,4 +19,48 @@ export function formatTitle(option, splitter) {
|
|
|
17
19
|
const pattern = from.format?.pattern ?? "yyyy-MM-dd";
|
|
18
20
|
return DateFilterHelpers.formatAbsoluteDateRange(new Date(from.date), new Date(to.date), pattern, splitter);
|
|
19
21
|
}
|
|
22
|
+
//Attribute filters
|
|
23
|
+
export function getOnlyRelevantFilters(all, relevantAttrs) {
|
|
24
|
+
return all.filter((f) => {
|
|
25
|
+
return relevantAttrs.some((r) => areObjRefsEqual(f.attributeFilter.displayForm, r.attribute) ||
|
|
26
|
+
r.displayForms.some((df) => areObjRefsEqual(f.attributeFilter.displayForm, df.ref)));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export function createNewAttributeFilter(attr, displayForm, id, value) {
|
|
30
|
+
const displayFormOf = attr.displayForms.find((df) => areObjRefsEqual(df.ref, displayForm));
|
|
31
|
+
invariant(displayFormOf);
|
|
32
|
+
const dashboardFilter = {
|
|
33
|
+
attributeFilter: {
|
|
34
|
+
displayForm: displayFormOf.ref,
|
|
35
|
+
negativeSelection: !value,
|
|
36
|
+
attributeElements: {
|
|
37
|
+
values: value ? [value] : [],
|
|
38
|
+
},
|
|
39
|
+
localIdentifier: `${objRefToString(displayFormOf.ref)}_${id}`,
|
|
40
|
+
title: displayFormOf.title,
|
|
41
|
+
selectionMode: "multi",
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
return dashboardFilter;
|
|
45
|
+
}
|
|
46
|
+
export function updateExistingAttributeFilter(f, val) {
|
|
47
|
+
return {
|
|
48
|
+
...f,
|
|
49
|
+
attributeFilter: {
|
|
50
|
+
...f.attributeFilter,
|
|
51
|
+
attributeElements: {
|
|
52
|
+
...(isAttributeElementsByRef(f.attributeFilter.attributeElements)
|
|
53
|
+
? {
|
|
54
|
+
uris: [val],
|
|
55
|
+
}
|
|
56
|
+
: {}),
|
|
57
|
+
...(isAttributeElementsByValue(f.attributeFilter.attributeElements)
|
|
58
|
+
? {
|
|
59
|
+
values: [val],
|
|
60
|
+
}
|
|
61
|
+
: {}),
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
20
66
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/kdaDialog/utils.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,qBAAqB,EAAe,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAErG,cAAc;AAEd,MAAM,UAAU,WAAW,CAAC,UAA0B,EAAE,KAAa,EAAE,UAAwB;IAC3F,MAAM,GAAG,GAAG,qBAAqB,CAAC,WAAW,CACzC,KAAK,EACL,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,sBAAsB,EAC1D,UAAU,CACb,CAAC;IAEF,OAAO,GAAG,CAAC,cAAc,CAAC;AAC9B,CAAC;AAED,cAAc;AAEd,MAAM,UAAU,WAAW,CAAC,MAAsB,EAAE,QAAgB;IAChE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEhD,cAAc;IACd,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,YAAY,CAAC;IAErD,OAAO,iBAAiB,CAAC,uBAAuB,CAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EACjB,OAAO,EACP,QAAQ,CACX,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/kdaDialog/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeSharingHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/changeSharingHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"changeSharingHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/changeSharingHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAA2B,MAAM,2BAA2B,CAAC;AAK7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAwH9D,wBAAiB,oBAAoB,CACjC,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,aAAa,GACnB,YAAY,CAAC,uBAAuB,CAAC,CAgCvC"}
|
|
@@ -14,16 +14,19 @@ function* createDashboardSaveSharingContext(cmd) {
|
|
|
14
14
|
const { newSharingProperties } = cmd.payload;
|
|
15
15
|
const persistedDashboard = yield select(selectPersistedDashboard);
|
|
16
16
|
invariant(persistedDashboard, "Cant change sharing of unsaved dashboard");
|
|
17
|
-
const { filterContext, ...otherDashboardProps } = persistedDashboard;
|
|
17
|
+
const { filterContext, tabs, ...otherDashboardProps } = persistedDashboard;
|
|
18
18
|
// ignore temp filter context to please TS as it can be present only during export
|
|
19
19
|
const filterContextProp = isFilterContext(filterContext)
|
|
20
20
|
? {
|
|
21
21
|
filterContext,
|
|
22
22
|
}
|
|
23
23
|
: {};
|
|
24
|
+
// Tabs in persisted dashboard are already resolved (IFilterContext), so they're compatible with IDashboardTabDefinition
|
|
25
|
+
const tabsProp = tabs ? { tabs } : {};
|
|
24
26
|
const dashboardFromState = {
|
|
25
27
|
...otherDashboardProps,
|
|
26
28
|
...filterContextProp,
|
|
29
|
+
...tabsProp,
|
|
27
30
|
};
|
|
28
31
|
const dashboardToSave = {
|
|
29
32
|
...dashboardFromState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeSharingHandler.js","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/changeSharingHandler.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"changeSharingHandler.js","sourceRoot":"","sources":["../../../../src/model/commandHandlers/dashboard/changeSharingHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { IDashboardLayout, ObjRef } from "@gooddata/sdk-model";
|
|
1
|
+
import { IDashboard, IDashboardLayout, ObjRef } from "@gooddata/sdk-model";
|
|
2
2
|
export declare function insightReferences(layout?: IDashboardLayout): ObjRef[];
|
|
3
|
+
/**
|
|
4
|
+
* Extracts insight references from a dashboard, including all tabs if present.
|
|
5
|
+
*/
|
|
6
|
+
export declare function insightReferencesFromDashboard(dashboard: IDashboard): ObjRef[];
|
|
3
7
|
//# sourceMappingURL=insightReferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insightReferences.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/insightReferences.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"insightReferences.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/insightReferences.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,UAAU,EACV,gBAAgB,EAEhB,MAAM,EAIT,MAAM,qBAAqB,CAAC;AA8B7B,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAerE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,EAAE,CA+B9E"}
|
|
@@ -43,4 +43,35 @@ export function insightReferences(layout) {
|
|
|
43
43
|
}
|
|
44
44
|
return insightRefsFromWidgets;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Extracts insight references from a dashboard, including all tabs if present.
|
|
48
|
+
*/
|
|
49
|
+
export function insightReferencesFromDashboard(dashboard) {
|
|
50
|
+
const insightRefsFromWidgets = [];
|
|
51
|
+
const collectInsightRefs = (widget) => {
|
|
52
|
+
if (isInsightWidget(widget)) {
|
|
53
|
+
insightRefsFromWidgets.push(...getReferencesFromInsightWidget(widget));
|
|
54
|
+
}
|
|
55
|
+
if (isVisualizationSwitcherWidget(widget)) {
|
|
56
|
+
insightRefsFromWidgets.push(...getReferencesFromVisualizationSwitcherWidget(widget));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
// Walk through tabs if they exist
|
|
60
|
+
if (dashboard.tabs && dashboard.tabs.length > 0) {
|
|
61
|
+
dashboard.tabs.forEach((tab) => {
|
|
62
|
+
if (tab.layout) {
|
|
63
|
+
walkLayout(tab.layout, {
|
|
64
|
+
widgetCallback: collectInsightRefs,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Also walk through root layout for backwards compatibility
|
|
70
|
+
if (dashboard.layout) {
|
|
71
|
+
walkLayout(dashboard.layout, {
|
|
72
|
+
widgetCallback: collectInsightRefs,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return insightRefsFromWidgets;
|
|
76
|
+
}
|
|
46
77
|
//# sourceMappingURL=insightReferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insightReferences.js","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/insightReferences.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"insightReferences.js","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/insightReferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,21 +3,7 @@ import { SagaIterator } from "redux-saga";
|
|
|
3
3
|
import { IAttributeDisplayFormMetadataObject, IDashboard, IDashboardAttributeFilter, IDashboardAttributeFilterConfig, IDataSetMetadataObject, IDateFilterConfig, IFilterContextDefinition, IInsight, ISettings, ObjRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
|
|
5
5
|
import { DashboardContext } from "../../../types/commonTypes.js";
|
|
6
|
-
|
|
7
|
-
* Returns a list of actions which when processed will initialize the essential parts of the dashboard
|
|
8
|
-
* state so that it shows a new, empty dashboard.
|
|
9
|
-
*
|
|
10
|
-
* @param ctx - dashboard context in which the initialization is done
|
|
11
|
-
* these insights in the state; it uses the insights to perform sanitization of the dashboard layout
|
|
12
|
-
* @param settings - settings currently in effect; note that this function will not create actions to store
|
|
13
|
-
* the settings in the state; it uses the settings during layout sanitization
|
|
14
|
-
* @param dateFilterConfig - effective date filter config to use; note that this function will not store
|
|
15
|
-
* the date filter config anywhere; it uses the config during filter context sanitization & determining
|
|
16
|
-
* which date option is selected
|
|
17
|
-
* @param displayForms - specify display forms that should be used for in-memory resolution of
|
|
18
|
-
* attribute filter display forms to metadata objects
|
|
19
|
-
*/
|
|
20
|
-
export declare function actionsToInitializeNewDashboard(ctx: DashboardContext, settings: ISettings, dateFilterConfig: IDateFilterConfig, displayForms?: ObjRefMap<IAttributeDisplayFormMetadataObject>): SagaIterator<{
|
|
6
|
+
export declare function actionsToInitializeNewDashboard(ctx: DashboardContext, settings: ISettings, dateFilterConfig: IDateFilterConfig, displayForms?: ObjRefMap<IAttributeDisplayFormMetadataObject>, initialTabId?: string): SagaIterator<{
|
|
21
7
|
initActions: Array<PayloadAction<any>>;
|
|
22
8
|
dashboard: IDashboard | undefined;
|
|
23
9
|
insights: IInsight[];
|
|
@@ -58,5 +44,5 @@ export declare function loadDataSets(ctx: DashboardContext, dataSetRefs: ObjRef[
|
|
|
58
44
|
* attribute filter display forms to metadata objects
|
|
59
45
|
* @param persistedDashboard - dashboard to use for the persisted dashboard state slice in case it needs to be different from the dashboard param
|
|
60
46
|
*/
|
|
61
|
-
export declare function actionsToInitializeExistingDashboard(ctx: DashboardContext, dashboard: IDashboard, insights: IInsight[], settings: ISettings, isImmediateAttributeFilterMigrationEnabled: boolean, originalFilterContextDefinition: IFilterContextDefinition | undefined, migratedAttributeFilters: IDashboardAttributeFilter[], migratedAttributeFilterConfigs: IDashboardAttributeFilterConfig[] | undefined, dateFilterConfig: IDateFilterConfig, displayForms?: ObjRefMap<IAttributeDisplayFormMetadataObject>, persistedDashboard?: IDashboard): SagaIterator<Array<PayloadAction<any>>>;
|
|
47
|
+
export declare function actionsToInitializeExistingDashboard(ctx: DashboardContext, dashboard: IDashboard, insights: IInsight[], settings: ISettings, isImmediateAttributeFilterMigrationEnabled: boolean, originalFilterContextDefinition: IFilterContextDefinition | undefined, migratedAttributeFilters: IDashboardAttributeFilter[], migratedAttributeFilterConfigs: IDashboardAttributeFilterConfig[] | undefined, dateFilterConfig: IDateFilterConfig, displayForms?: ObjRefMap<IAttributeDisplayFormMetadataObject>, persistedDashboard?: IDashboard, initialTabId?: string): SagaIterator<Array<PayloadAction<any>>>;
|
|
62
48
|
//# sourceMappingURL=stateInitializers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateInitializers.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/stateInitializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAEH,mCAAmC,EACnC,UAAU,EACV,yBAAyB,EACzB,+BAA+B,
|
|
1
|
+
{"version":3,"file":"stateInitializers.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/common/stateInitializers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAEH,mCAAmC,EACnC,UAAU,EACV,yBAAyB,EACzB,+BAA+B,EAO/B,sBAAsB,EACtB,iBAAiB,EAEjB,wBAAwB,EACxB,QAAQ,EACR,SAAS,EAGT,MAAM,EAOT,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAavE,OAAO,EACH,gBAAgB,EAGnB,MAAM,+BAA+B,CAAC;AAgEvC,wBAAiB,+BAA+B,CAC5C,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,CAAC,EAAE,SAAS,CAAC,mCAAmC,CAAC,EAC7D,YAAY,CAAC,EAAE,MAAM,GACtB,YAAY,CAAC;IACZ,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC,CAsED;AAkJD,wBAAgB,YAAY,CACxB,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAInC;AA+ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAiB,oCAAoC,CACjD,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,QAAQ,EAAE,EACpB,QAAQ,EAAE,SAAS,EACnB,0CAA0C,EAAE,OAAO,EACnD,+BAA+B,EAAE,wBAAwB,GAAG,SAAS,EACrE,wBAAwB,EAAE,yBAAyB,EAAE,EACrD,8BAA8B,EAAE,+BAA+B,EAAE,YAAK,EACtE,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,CAAC,EAAE,SAAS,CAAC,mCAAmC,CAAC,EAC7D,kBAAkB,CAAC,EAAE,UAAU,EAC/B,YAAY,CAAC,EAAE,MAAM,GACtB,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAgIzC"}
|