@gooddata/sdk-ui-dashboard 11.5.0-alpha.3 → 11.5.0-alpha.5
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/useRichTextFilters.d.ts.map +1 -1
- package/esm/_staging/sharedHooks/useRichTextFilters.js +2 -1
- package/esm/_staging/sharedHooks/useRichTextFilters.js.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryDrivers.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryDrivers.js +14 -10
- package/esm/kdaDialog/components/KdaSummaryDrivers.js.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryHeadline.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryHeadline.js +25 -5
- package/esm/kdaDialog/components/KdaSummaryHeadline.js.map +1 -1
- package/esm/kdaDialog/components/bars/AttributeBar.js +1 -1
- package/esm/kdaDialog/components/bars/AttributeBar.js.map +1 -1
- package/esm/kdaDialog/components/bars/DateBar.d.ts +4 -3
- package/esm/kdaDialog/components/bars/DateBar.d.ts.map +1 -1
- package/esm/kdaDialog/components/bars/DateBar.js +5 -4
- package/esm/kdaDialog/components/bars/DateBar.js.map +1 -1
- package/esm/kdaDialog/components/bars/MetricBar.d.ts +2 -2
- package/esm/kdaDialog/components/bars/MetricBar.d.ts.map +1 -1
- package/esm/kdaDialog/components/bars/MetricBar.js +1 -1
- package/esm/kdaDialog/components/bars/MetricBar.js.map +1 -1
- package/esm/kdaDialog/components/columns/driverColumn.d.ts +2 -2
- package/esm/kdaDialog/components/columns/driverColumn.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/driverColumn.js +17 -4
- package/esm/kdaDialog/components/columns/driverColumn.js.map +1 -1
- package/esm/kdaDialog/components/columns/driversCount.d.ts +2 -2
- package/esm/kdaDialog/components/columns/driversCount.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/driversCount.js +4 -1
- package/esm/kdaDialog/components/columns/driversCount.js.map +1 -1
- package/esm/kdaDialog/components/columns/titleColumn.d.ts +2 -2
- package/esm/kdaDialog/components/columns/titleColumn.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/titleColumn.js.map +1 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.d.ts.map +1 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.js +2 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.js.map +1 -1
- package/esm/kdaDialog/composition/FiltersBar.d.ts.map +1 -1
- package/esm/kdaDialog/composition/FiltersBar.js +22 -13
- package/esm/kdaDialog/composition/FiltersBar.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.js +5 -4
- package/esm/kdaDialog/composition/KeyDriversFooter.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversPanel.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversPanel.js +4 -19
- package/esm/kdaDialog/composition/KeyDriversPanel.js.map +1 -1
- package/esm/kdaDialog/composition/MetricsBar.js +1 -1
- package/esm/kdaDialog/composition/MetricsBar.js.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialog.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialog.js +5 -1
- package/esm/kdaDialog/dialog/KdaDialog.js.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialogSections.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialogSections.js +2 -2
- package/esm/kdaDialog/dialog/KdaDialogSections.js.map +1 -1
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts +2 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +123 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js.map +1 -0
- package/esm/kdaDialog/hooks/useAttribute.d.ts +3 -0
- package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useAttribute.js +14 -0
- package/esm/kdaDialog/hooks/useAttribute.js.map +1 -0
- package/esm/kdaDialog/hooks/useDateAttribute.d.ts +3 -0
- package/esm/kdaDialog/hooks/useDateAttribute.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useDateAttribute.js +14 -0
- package/esm/kdaDialog/hooks/useDateAttribute.js.map +1 -0
- package/esm/kdaDialog/hooks/useDriversList.d.ts +7 -0
- package/esm/kdaDialog/hooks/useDriversList.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useDriversList.js +26 -0
- package/esm/kdaDialog/hooks/useDriversList.js.map +1 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.d.ts +2 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.js +10 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.js.map +1 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts +3 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.js +42 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.js.map +1 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.d.ts +5 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.js +17 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.js.map +1 -0
- package/esm/kdaDialog/index.d.ts +1 -1
- package/esm/kdaDialog/index.d.ts.map +1 -1
- package/esm/kdaDialog/internal.d.ts +1 -0
- package/esm/kdaDialog/internal.d.ts.map +1 -1
- package/esm/kdaDialog/internal.js +1 -0
- package/esm/kdaDialog/internal.js.map +1 -1
- package/esm/kdaDialog/internalTypes.d.ts +22 -15
- package/esm/kdaDialog/internalTypes.d.ts.map +1 -1
- package/esm/kdaDialog/providers/Kda.d.ts +10 -0
- package/esm/kdaDialog/providers/Kda.d.ts.map +1 -0
- package/esm/kdaDialog/providers/Kda.js +15 -0
- package/esm/kdaDialog/providers/Kda.js.map +1 -0
- package/esm/kdaDialog/providers/KdaState.d.ts.map +1 -1
- package/esm/kdaDialog/providers/KdaState.js +9 -11
- package/esm/kdaDialog/providers/KdaState.js.map +1 -1
- package/esm/kdaDialog/types.d.ts +43 -0
- package/esm/kdaDialog/types.d.ts.map +1 -1
- package/esm/kdaDialog/utils.d.ts +6 -0
- package/esm/kdaDialog/utils.d.ts.map +1 -0
- package/esm/kdaDialog/utils.js +20 -0
- package/esm/kdaDialog/utils.js.map +1 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +3 -2
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts +6 -0
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts.map +1 -0
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +71 -0
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js.map +1 -0
- 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/commands/base.d.ts +1 -1
- package/esm/model/commands/base.d.ts.map +1 -1
- package/esm/model/commands/base.js +1 -0
- package/esm/model/commands/base.js.map +1 -1
- package/esm/model/commands/drill.d.ts +41 -2
- package/esm/model/commands/drill.d.ts.map +1 -1
- package/esm/model/commands/drill.js +24 -0
- package/esm/model/commands/drill.js.map +1 -1
- package/esm/model/commands/index.d.ts +4 -4
- package/esm/model/commands/index.d.ts.map +1 -1
- package/esm/model/commands/index.js +1 -1
- package/esm/model/commands/index.js.map +1 -1
- 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/drill.d.ts +95 -1
- package/esm/model/events/drill.d.ts.map +1 -1
- package/esm/model/events/drill.js +45 -0
- package/esm/model/events/drill.js.map +1 -1
- package/esm/model/events/index.d.ts +4 -4
- package/esm/model/events/index.d.ts.map +1 -1
- package/esm/model/events/index.js +1 -1
- package/esm/model/events/index.js.map +1 -1
- package/esm/model/store/config/configSelectors.js +1 -1
- 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 +3 -0
- package/esm/model/store/dashboardStore.js.map +1 -1
- package/esm/presentation/constants/zIndex.d.ts +2 -0
- package/esm/presentation/constants/zIndex.d.ts.map +1 -1
- package/esm/presentation/constants/zIndex.js +4 -0
- package/esm/presentation/constants/zIndex.js.map +1 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.d.ts +3 -2
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.js +13 -5
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.js.map +1 -1
- package/esm/presentation/drill/hooks/useDrills.d.ts +9 -2
- package/esm/presentation/drill/hooks/useDrills.d.ts.map +1 -1
- package/esm/presentation/drill/hooks/useDrills.js +9 -0
- package/esm/presentation/drill/hooks/useDrills.js.map +1 -1
- package/esm/presentation/drill/hooks/useKeyDriverAnalysis.d.ts +17 -0
- package/esm/presentation/drill/hooks/useKeyDriverAnalysis.d.ts.map +1 -0
- package/esm/presentation/drill/hooks/useKeyDriverAnalysis.js +16 -0
- package/esm/presentation/drill/hooks/useKeyDriverAnalysis.js.map +1 -0
- package/esm/presentation/drill/index.d.ts +1 -1
- package/esm/presentation/drill/index.d.ts.map +1 -1
- package/esm/presentation/drill/index.js +1 -0
- package/esm/presentation/drill/index.js.map +1 -1
- package/esm/presentation/drill/types.d.ts +23 -2
- package/esm/presentation/drill/types.d.ts.map +1 -1
- package/esm/presentation/drill/types.js.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.d.ts +10 -9
- package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.js +97 -22
- package/esm/presentation/drill/utils/kdaUtils.js.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.json +9 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.json +9 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.json +9 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-US.json +12 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +3 -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 +3 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/es-419.json +9 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.json +9 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.json +9 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.json +9 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.json +9 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.json +9 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.json +9 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.json +9 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.json +9 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.json +9 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.json +9 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.json +9 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.json +9 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.json +9 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.json +9 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.json +9 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.json +9 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +8 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +9 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +73 -29
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js.map +1 -1
- package/esm/presentation/widget/common/configuration/ConfigurationBubble.d.ts +0 -1
- package/esm/presentation/widget/common/configuration/ConfigurationBubble.d.ts.map +1 -1
- package/esm/presentation/widget/common/configuration/ConfigurationBubble.js +0 -7
- package/esm/presentation/widget/common/configuration/ConfigurationBubble.js.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.js +11 -2
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.js.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsightWithDrillSelect.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsightWithDrillSelect.js +2 -2
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsightWithDrillSelect.js.map +1 -1
- package/esm/presentation/widget/insight/types.d.ts +5 -1
- package/esm/presentation/widget/insight/types.d.ts.map +1 -1
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuBubble.d.ts.map +1 -1
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuBubble.js +6 -0
- package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuBubble.js.map +1 -1
- package/esm/sdk-ui-dashboard.d.ts +213 -6
- package/package.json +17 -17
- package/styles/css/insightConfiguration.css +27 -2
- package/styles/css/insightConfiguration.css.map +1 -1
- package/styles/css/main.css +27 -2
- package/styles/css/main.css.map +1 -1
- package/styles/scss/insightConfiguration.scss +33 -2
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025 GoodData Corporation
|
|
3
|
-
import { useEffect, useId
|
|
3
|
+
import { useEffect, useId } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
6
6
|
import { UiButton, UiButtonSegmentedControl, UiIcon, UiIconButton, UiListbox, UiSkeleton, UiTooltip, } from "@gooddata/sdk-ui-kit";
|
|
7
7
|
import { KeyDriverItem } from "../components/items/KeyDriverItem.js";
|
|
8
8
|
import { SummaryItem } from "../components/items/SummaryItem.js";
|
|
9
|
+
import { useSignificantDrives } from "../hooks/useDriversList.js";
|
|
9
10
|
import { useKdaState } from "../providers/KdaState.js";
|
|
10
11
|
export function KeyDriversPanel({ loading, detailsId }) {
|
|
11
12
|
const intl = useIntl();
|
|
@@ -13,23 +14,7 @@ export function KeyDriversPanel({ loading, detailsId }) {
|
|
|
13
14
|
const label = intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.title" });
|
|
14
15
|
const tooltip = intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.tooltip" });
|
|
15
16
|
const { state, setState } = useKdaState();
|
|
16
|
-
const trendUp
|
|
17
|
-
return item.data.from.value < item.data.to.value;
|
|
18
|
-
}), [state.items]);
|
|
19
|
-
const trendDown = useMemo(() => state.items.filter((item) => {
|
|
20
|
-
return item.data.from.value > item.data.to.value;
|
|
21
|
-
}), [state.items]);
|
|
22
|
-
const currentItems = useMemo(() => {
|
|
23
|
-
if (state.selectedTrend === "up") {
|
|
24
|
-
return trendUp;
|
|
25
|
-
}
|
|
26
|
-
return trendDown;
|
|
27
|
-
}, [state.selectedTrend, trendUp, trendDown]);
|
|
28
|
-
const maximum = useMemo(() => {
|
|
29
|
-
return Math.max(...currentItems.map((item) => {
|
|
30
|
-
return Math.abs(item.data.to.value - item.data.from.value);
|
|
31
|
-
}));
|
|
32
|
-
}, [currentItems]);
|
|
17
|
+
const { maximum, list, trendUp, trendDown } = useSignificantDrives();
|
|
33
18
|
// When there are no items for selected trend, switch to the other trend
|
|
34
19
|
useEffect(() => {
|
|
35
20
|
if (trendUp.length === 0 && trendDown.length > 0 && state.selectedTrend === "up") {
|
|
@@ -49,7 +34,7 @@ export function KeyDriversPanel({ loading, detailsId }) {
|
|
|
49
34
|
setState({ selectedTrend: "down" });
|
|
50
35
|
}, accessibilityConfig: {
|
|
51
36
|
ariaControls: listId,
|
|
52
|
-
} })] })) }), _jsx("div", { className: cx("gd-kda-key-drivers-panel-list"), children: loading ? (_jsxs("div", { className: cx("gd-kda-key-drivers-panel-list-loading"), children: [_jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 })] })) : (_jsx(_Fragment, { children:
|
|
37
|
+
} })] })) }), _jsx("div", { className: cx("gd-kda-key-drivers-panel-list"), children: loading ? (_jsxs("div", { className: cx("gd-kda-key-drivers-panel-list-loading"), children: [_jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 })] })) : (_jsx(_Fragment, { children: list.length > 0 ? (_jsx(UiListbox, { items: list, ariaAttributes: {
|
|
53
38
|
id: listId,
|
|
54
39
|
"aria-controls": detailsId,
|
|
55
40
|
}, InteractiveItemComponent: (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversPanel.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"KeyDriversPanel.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,6 @@ import { useKdaState } from "../providers/KdaState.js";
|
|
|
7
7
|
export function MetricsBar() {
|
|
8
8
|
const intl = useIntl();
|
|
9
9
|
const { state } = useKdaState();
|
|
10
|
-
return (_jsx(KdaBar, { title: intl.formatMessage({ id: "kdaDialog.dialog.bars.metric.title" }), content: _jsx(_Fragment, { children: state.
|
|
10
|
+
return (_jsx(KdaBar, { title: intl.formatMessage({ id: "kdaDialog.dialog.bars.metric.title" }), content: _jsx(_Fragment, { children: state.definition ? _jsx(MetricBar, { definition: state.definition }) : null }) }));
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=MetricsBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsBar.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/MetricsBar.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,UAAU;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhC,OAAO,CACH,KAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,oCAAoC,EAAE,CAAC,EACvE,OAAO,EAAE,4BAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MetricsBar.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/MetricsBar.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,UAAU;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhC,OAAO,CACH,KAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,oCAAoC,EAAE,CAAC,EACvE,OAAO,EAAE,4BAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAI,CAAC,CAAC,CAAC,IAAI,GAAI,GACvF,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK9C;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,eAAsB,EAAE,OAAO,EAAE,EAAE,eAAe,2CA2DxF"}
|
|
@@ -16,14 +16,18 @@ import { KeyDriversOverview } from "../composition/KeyDriversOverview.js";
|
|
|
16
16
|
import { KeyDriversPanel } from "../composition/KeyDriversPanel.js";
|
|
17
17
|
import { MetricsBar } from "../composition/MetricsBar.js";
|
|
18
18
|
import { useKdaState } from "../providers/KdaState.js";
|
|
19
|
+
import { useChangeAnalysis } from "./hooks/useChangeAnalysis.js";
|
|
19
20
|
const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
|
|
20
21
|
/**
|
|
21
22
|
* @internal
|
|
22
23
|
*/
|
|
23
24
|
export function KdaDialog({ className, showCloseButton = true, onClose }) {
|
|
24
25
|
const { state } = useKdaState();
|
|
25
|
-
const
|
|
26
|
+
const metric = state.definition?.metric.measure;
|
|
27
|
+
const title = metric?.alias ?? metric?.title ?? "";
|
|
28
|
+
const accessibilityConfig = useKdaDialogAccessibility(title);
|
|
26
29
|
const detailsId = useId();
|
|
30
|
+
useChangeAnalysis();
|
|
27
31
|
return (_jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(Dialog, { className: cx(accessibilityConfig.dialogId, className), isModal: accessibilityConfig.isModal, accessibilityConfig: accessibilityConfig, displayCloseButton: showCloseButton, closeOnEscape: showCloseButton, onClose: onClose, children: _jsx(KdaDialogSections, { header: _jsx(KdaHeader, { titleId: accessibilityConfig.titleElementId, title: accessibilityConfig.title, bars: _jsxs(_Fragment, { children: [_jsx(MetricsBar, {}), _jsx(FiltersBar, {})] }) }), content: _jsx(KdaContent, { leftContent: _jsx(KeyDriversPanel, { detailsId: detailsId }), leftLoader: _jsx(KeyDriversPanel, { detailsId: detailsId, loading: true }), leftError: _jsx(ErrorComponent, { message: "Unknown error", description: "Can not load key drivers attributes list. Please try again later." }), rightContent: _jsx(KeyDriversOverview, { detailsId: detailsId }), rightLoader: _jsx(KeyDriversOverview, { loading: true }), rightError: _jsx(ErrorComponent, { message: "Unknown error", description: "Can not load key driver details. Please try again later." }) }), footer: _jsx(KdaFooter, { content: _jsx(KeyDriversFooter, {}), onClose: onClose }) }) }) }));
|
|
28
32
|
}
|
|
29
33
|
//# sourceMappingURL=KdaDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialog.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaDialog.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialogSections.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialogSections.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASlC,UAAU,uBAAuB;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"KdaDialogSections.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialogSections.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASlC,UAAU,uBAAuB;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,uBAAuB,2CA2BrF"}
|
|
@@ -9,8 +9,8 @@ import { useKdaState } from "../providers/KdaState.js";
|
|
|
9
9
|
export function KdaDialogSections({ footer, content, header }) {
|
|
10
10
|
const { state } = useKdaState();
|
|
11
11
|
const isDashboardLoading = useDashboardSelector(selectIsDashboardLoading);
|
|
12
|
-
const isLoading = state.
|
|
13
|
-
const isError = state.
|
|
12
|
+
const isLoading = state.definitionStatus === "pending" || state.definitionStatus === "loading" || isDashboardLoading;
|
|
13
|
+
const isError = state.definitionStatus === "error";
|
|
14
14
|
return (_jsx("div", { className: cx("gd-kda-dialog-sections"), children: isLoading ? (_jsx(LoadingComponent, {})) : isError ? (_jsx(ErrorComponent, { message: "Unknown error", description: "Can not load key drivers data. Please try again later." })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: cx("gd-kda-dialog-sections-header"), children: header }), _jsx("div", { className: cx("gd-kda-dialog-sections-divider") }), _jsx("div", { className: cx("gd-kda-dialog-sections-content"), children: content }), _jsx("div", { className: cx("gd-kda-dialog-sections-divider") }), _jsx("div", { className: cx("gd-kda-dialog-sections-footer"), children: footer })] })) }));
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=KdaDialogSections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialogSections.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialogSections.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQvD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAA2B;IAClF,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC1E,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"KdaDialogSections.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialogSections.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQvD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAA2B;IAClF,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC1E,MAAM,SAAS,GACX,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,kBAAkB,CAAC;IACvG,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC;IAEnD,OAAO,CACH,cAAK,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,YACvC,SAAS,CAAC,CAAC,CAAC,CACT,KAAC,gBAAgB,KAAG,CACvB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACV,KAAC,cAAc,IACX,OAAO,EAAC,eAAe,EACvB,WAAW,EAAC,wDAAwD,GACtE,CACL,CAAC,CAAC,CAAC,CACA,8BACI,cAAK,SAAS,EAAE,EAAE,CAAC,+BAA+B,CAAC,YAAG,MAAM,GAAO,EACnE,cAAK,SAAS,EAAE,EAAE,CAAC,gCAAgC,CAAC,GAAI,EACxD,cAAK,SAAS,EAAE,EAAE,CAAC,gCAAgC,CAAC,YAAG,OAAO,GAAO,EACrE,cAAK,SAAS,EAAE,EAAE,CAAC,gCAAgC,CAAC,GAAI,EACxD,cAAK,SAAS,EAAE,EAAE,CAAC,+BAA+B,CAAC,YAAG,MAAM,GAAO,IACpE,CACN,GACC,CACT,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"AAgBA,wBAAgB,iBAAiB,SAehC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useEffect, useMemo } from "react";
|
|
3
|
+
import { ClientFormatterFacade } from "@gooddata/number-formatter";
|
|
4
|
+
import { isSimpleMeasure } from "@gooddata/sdk-model";
|
|
5
|
+
import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
6
|
+
import { useAttribute } from "../../hooks/useAttribute.js";
|
|
7
|
+
import { useDateAttribute } from "../../hooks/useDateAttribute.js";
|
|
8
|
+
import { useKdaState } from "../../providers/KdaState.js";
|
|
9
|
+
export function useChangeAnalysis() {
|
|
10
|
+
const { state, setState } = useKdaState();
|
|
11
|
+
const definition = state.definition;
|
|
12
|
+
const attributes = useMemo(() => {
|
|
13
|
+
return state.selectedAttributes;
|
|
14
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
+
}, [state.selectedUpdated]);
|
|
16
|
+
const results = useChangeAnalysisResults(definition, attributes);
|
|
17
|
+
const list = useKdaStateWithList(results, definition);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
setState(list);
|
|
20
|
+
}, [list, setState]);
|
|
21
|
+
}
|
|
22
|
+
function useChangeAnalysisResults(definition, attributes) {
|
|
23
|
+
const backend = useBackendStrict();
|
|
24
|
+
const workspace = useWorkspaceStrict();
|
|
25
|
+
const from = definition?.range[0].date;
|
|
26
|
+
const to = definition?.range[1].date;
|
|
27
|
+
const dateAttributeFinder = useDateAttribute();
|
|
28
|
+
return useCancelablePromise({
|
|
29
|
+
promise: () => {
|
|
30
|
+
const dateAttribute = dateAttributeFinder(definition?.dateAttribute);
|
|
31
|
+
if (!definition || !dateAttribute) {
|
|
32
|
+
return Promise.resolve(undefined);
|
|
33
|
+
}
|
|
34
|
+
const granularity = dateAttribute.granularity;
|
|
35
|
+
//TODO: This is hack: Replace this code for metric definition not only id
|
|
36
|
+
const ref = isSimpleMeasure(definition.metric)
|
|
37
|
+
? definition.metric.measure.definition.measureDefinition.item
|
|
38
|
+
: null;
|
|
39
|
+
if (!ref) {
|
|
40
|
+
return Promise.resolve(undefined);
|
|
41
|
+
}
|
|
42
|
+
return backend
|
|
43
|
+
.workspace(workspace)
|
|
44
|
+
.kda()
|
|
45
|
+
.computeChangeAnalysis({
|
|
46
|
+
dateAttribute: definition.dateAttribute,
|
|
47
|
+
from: from ?? "",
|
|
48
|
+
to: to ?? "",
|
|
49
|
+
granularity,
|
|
50
|
+
}, ref, attributes);
|
|
51
|
+
},
|
|
52
|
+
}, [backend, definition, attributes, workspace, from, to]);
|
|
53
|
+
}
|
|
54
|
+
function useKdaStateWithList({ result, status }, definition) {
|
|
55
|
+
const { state } = useKdaState();
|
|
56
|
+
const loadingStatus = definition ? status : "pending";
|
|
57
|
+
const attributeFinder = useAttribute();
|
|
58
|
+
const metric = definition?.metric;
|
|
59
|
+
const separators = state.separators;
|
|
60
|
+
const from = definition?.range[0].date;
|
|
61
|
+
const to = definition?.range[1].date;
|
|
62
|
+
const { items, attributes } = useMemo(() => {
|
|
63
|
+
const attributes = [];
|
|
64
|
+
function mapKeyDrive(keyDriver, i) {
|
|
65
|
+
const ref = keyDriver.displayForm;
|
|
66
|
+
const attribute = attributeFinder(ref);
|
|
67
|
+
if (attribute && !attributes.includes(attribute)) {
|
|
68
|
+
attributes.push(attribute);
|
|
69
|
+
}
|
|
70
|
+
if (attribute && metric && from && to) {
|
|
71
|
+
return createKdaItem(metric, attribute, keyDriver, i, from, to, separators);
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const list = result?.keyDrivers.map(mapKeyDrive) ?? [];
|
|
76
|
+
const items = list.filter(Boolean);
|
|
77
|
+
return {
|
|
78
|
+
items,
|
|
79
|
+
attributes,
|
|
80
|
+
};
|
|
81
|
+
}, [attributeFinder, from, metric, result?.keyDrivers, separators, to]);
|
|
82
|
+
return useMemo(() => {
|
|
83
|
+
return {
|
|
84
|
+
items,
|
|
85
|
+
selectedItem: "summary",
|
|
86
|
+
itemsStatus: loadingStatus,
|
|
87
|
+
selectedStatus: loadingStatus,
|
|
88
|
+
selectedAttributes: attributes.map((a) => a.defaultDisplayForm.ref),
|
|
89
|
+
};
|
|
90
|
+
}, [items, loadingStatus, attributes]);
|
|
91
|
+
}
|
|
92
|
+
function createKdaItem(metric, attribute, driver, i, from, to, separators) {
|
|
93
|
+
const stringTitle = `${attribute.attribute.title}: ${driver.value}`;
|
|
94
|
+
const id = `key_driver_${i}`;
|
|
95
|
+
return {
|
|
96
|
+
id,
|
|
97
|
+
stringTitle,
|
|
98
|
+
data: {
|
|
99
|
+
id,
|
|
100
|
+
attribute: attribute.defaultDisplayForm,
|
|
101
|
+
title: attribute.attribute.title,
|
|
102
|
+
description: attribute.attribute.description,
|
|
103
|
+
category: driver.value,
|
|
104
|
+
from: {
|
|
105
|
+
value: driver.metricValue.from,
|
|
106
|
+
date: from,
|
|
107
|
+
},
|
|
108
|
+
to: {
|
|
109
|
+
value: driver.metricValue.to,
|
|
110
|
+
date: to,
|
|
111
|
+
},
|
|
112
|
+
isSignificant: driver.isSignificantChange,
|
|
113
|
+
standardDeviation: driver.std,
|
|
114
|
+
mean: driver.mean,
|
|
115
|
+
formatValue: (value) => {
|
|
116
|
+
const format = metric.measure.format;
|
|
117
|
+
return ClientFormatterFacade.formatValue(value, format, separators).formattedValue;
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
type: "interactive",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=useChangeAnalysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.js","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAttribute.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useAttribute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAI9D,wBAAgB,YAAY,WAIb,MAAM,4DAWpB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
4
|
+
import { selectCatalogAttributes, useDashboardSelector } from "../../model/index.js";
|
|
5
|
+
export function useAttribute() {
|
|
6
|
+
const dateAttributes = useDashboardSelector(selectCatalogAttributes);
|
|
7
|
+
return useCallback((ref) => {
|
|
8
|
+
return ref
|
|
9
|
+
? (dateAttributes.find((a) => areObjRefsEqual(ref, a.attribute.ref) ||
|
|
10
|
+
a.attribute.displayForms.some((df) => areObjRefsEqual(df.ref, ref))) ?? null)
|
|
11
|
+
: null;
|
|
12
|
+
}, [dateAttributes]);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useAttribute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAttribute.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useAttribute.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAU,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,UAAU,YAAY;IACxB,MAAM,cAAc,GAAG,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IAErE,OAAO,WAAW,CACd,CAAC,GAAY,EAAE,EAAE;QACb,OAAO,GAAG;YACN,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACF,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC1E,IAAI,IAAI,CAAC;YACZ,CAAC,CAAC,IAAI,CAAC;IACf,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateAttribute.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useDateAttribute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAI9D,wBAAgB,gBAAgB,WAIjB,MAAM,gEAWpB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
4
|
+
import { selectCatalogDateAttributes, useDashboardSelector } from "../../model/index.js";
|
|
5
|
+
export function useDateAttribute() {
|
|
6
|
+
const dateAttributes = useDashboardSelector(selectCatalogDateAttributes);
|
|
7
|
+
return useCallback((ref) => {
|
|
8
|
+
return ref
|
|
9
|
+
? (dateAttributes.find((a) => areObjRefsEqual(ref, a.attribute.ref) ||
|
|
10
|
+
a.attribute.displayForms.some((df) => areObjRefsEqual(df.ref, ref))) ?? null)
|
|
11
|
+
: null;
|
|
12
|
+
}, [dateAttributes]);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useDateAttribute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDateAttribute.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useDateAttribute.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAU,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,UAAU,gBAAgB;IAC5B,MAAM,cAAc,GAAG,oBAAoB,CAAC,2BAA2B,CAAC,CAAC;IAEzE,OAAO,WAAW,CACd,CAAC,GAAY,EAAE,EAAE;QACb,OAAO,GAAG;YACN,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACF,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC1E,IAAI,IAAI,CAAC;YACZ,CAAC,CAAC,IAAI,CAAC;IACf,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function useSignificantDrives(): {
|
|
2
|
+
trendUp: import("@gooddata/sdk-ui-kit").IUiListboxInteractiveItem<import("../internalTypes.js").KdaItem>[];
|
|
3
|
+
trendDown: import("@gooddata/sdk-ui-kit").IUiListboxInteractiveItem<import("../internalTypes.js").KdaItem>[];
|
|
4
|
+
list: import("@gooddata/sdk-ui-kit").IUiListboxInteractiveItem<import("../internalTypes.js").KdaItem>[];
|
|
5
|
+
maximum: number;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=useDriversList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDriversList.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useDriversList.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB;;;;;EAyBnC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useTrendDrivers } from "./useTrendDrivers.js";
|
|
4
|
+
import { useKdaState } from "../providers/KdaState.js";
|
|
5
|
+
export function useSignificantDrives() {
|
|
6
|
+
const { state } = useKdaState();
|
|
7
|
+
const { trendUp, trendDown } = useTrendDrivers();
|
|
8
|
+
const list = useMemo(() => {
|
|
9
|
+
if (state.selectedTrend === "up") {
|
|
10
|
+
return trendUp;
|
|
11
|
+
}
|
|
12
|
+
return trendDown;
|
|
13
|
+
}, [state.selectedTrend, trendUp, trendDown]);
|
|
14
|
+
const maximum = useMemo(() => {
|
|
15
|
+
return Math.max(...list.map((item) => {
|
|
16
|
+
return Math.abs(item.data.to.value - item.data.from.value);
|
|
17
|
+
}));
|
|
18
|
+
}, [list]);
|
|
19
|
+
return {
|
|
20
|
+
trendUp,
|
|
21
|
+
trendDown,
|
|
22
|
+
list,
|
|
23
|
+
maximum,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useDriversList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDriversList.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useDriversList.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,oBAAoB;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;QACtB,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,OAAO,IAAI,CAAC,GAAG,CACX,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CACL,CAAC;IACN,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO;QACH,OAAO;QACP,SAAS;QACT,IAAI;QACJ,OAAO;KACV,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSignificantDrives.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSignificantDrives.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,sGAMnC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useKdaState } from "../providers/KdaState.js";
|
|
4
|
+
export function useSignificantDrives() {
|
|
5
|
+
const { state } = useKdaState();
|
|
6
|
+
return useMemo(() => {
|
|
7
|
+
return state.items.filter((s) => s.data.isSignificant);
|
|
8
|
+
}, [state.items]);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=useSignificantDrives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSignificantDrives.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useSignificantDrives.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,oBAAoB;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhC,OAAO,OAAO,CAAC,GAAG,EAAE;QAChB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +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,mBAkChC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { objRefToString } from "@gooddata/sdk-model";
|
|
4
|
+
import { useAttribute } from "./useAttribute.js";
|
|
5
|
+
import { useKdaState } from "../providers/KdaState.js";
|
|
6
|
+
export function useSummaryDrivers() {
|
|
7
|
+
const { state } = useKdaState();
|
|
8
|
+
const attributeFinder = useAttribute();
|
|
9
|
+
return useMemo(() => {
|
|
10
|
+
//Groups
|
|
11
|
+
const groups = state.items.reduce((prev, { data }) => {
|
|
12
|
+
const ref = objRefToString(data.attribute);
|
|
13
|
+
if (!prev[ref]) {
|
|
14
|
+
prev[ref] = createKdaGroup(ref, data.attribute, data.title, data.description);
|
|
15
|
+
}
|
|
16
|
+
prev[ref].items.push(data);
|
|
17
|
+
return prev;
|
|
18
|
+
}, {});
|
|
19
|
+
//Selected fill empty groups
|
|
20
|
+
state.selectedAttributes.reduce((prev, current) => {
|
|
21
|
+
const ref = objRefToString(current);
|
|
22
|
+
if (!prev[ref]) {
|
|
23
|
+
const attribute = attributeFinder(current);
|
|
24
|
+
if (attribute) {
|
|
25
|
+
prev[ref] = createKdaGroup(ref, current, attribute.attribute.title, attribute.attribute.description);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return prev;
|
|
29
|
+
}, groups);
|
|
30
|
+
return Object.values(groups).sort((a, b) => b.items.length - a.items.length);
|
|
31
|
+
}, [state.items, attributeFinder, state.selectedAttributes]);
|
|
32
|
+
}
|
|
33
|
+
function createKdaGroup(id, attribute, title, description) {
|
|
34
|
+
return {
|
|
35
|
+
id,
|
|
36
|
+
items: [],
|
|
37
|
+
attribute,
|
|
38
|
+
title,
|
|
39
|
+
description,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=useSummaryDrivers.js.map
|
|
@@ -0,0 +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,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,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,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,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAmB,CAAC;IACnG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EAAU,EAAE,SAAiB,EAAE,KAAa,EAAE,WAAmB;IACrF,OAAO;QACH,EAAE;QACF,KAAK,EAAE,EAAE;QACT,SAAS;QACT,KAAK;QACL,WAAW;KACd,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function useTrendDrivers(): {
|
|
2
|
+
trendUp: import("@gooddata/sdk-ui-kit").IUiListboxInteractiveItem<import("../internalTypes.js").KdaItem>[];
|
|
3
|
+
trendDown: import("@gooddata/sdk-ui-kit").IUiListboxInteractiveItem<import("../internalTypes.js").KdaItem>[];
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=useTrendDrivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTrendDrivers.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useTrendDrivers.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe;;;EAsB9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useSignificantDrives } from "./useSignificantDrives.js";
|
|
4
|
+
export function useTrendDrivers() {
|
|
5
|
+
const significantDrives = useSignificantDrives();
|
|
6
|
+
const trendUp = useMemo(() => significantDrives.filter((item) => {
|
|
7
|
+
return item.data.from.value < item.data.to.value;
|
|
8
|
+
}), [significantDrives]);
|
|
9
|
+
const trendDown = useMemo(() => significantDrives.filter((item) => {
|
|
10
|
+
return item.data.from.value > item.data.to.value;
|
|
11
|
+
}), [significantDrives]);
|
|
12
|
+
return {
|
|
13
|
+
trendUp,
|
|
14
|
+
trendDown,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useTrendDrivers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTrendDrivers.js","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useTrendDrivers.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,eAAe;IAC3B,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAEjD,MAAM,OAAO,GAAG,OAAO,CACnB,GAAG,EAAE,CACD,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;IACrD,CAAC,CAAC,EACN,CAAC,iBAAiB,CAAC,CACtB,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CACrB,GAAG,EAAE,CACD,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;IACrD,CAAC,CAAC,EACN,CAAC,iBAAiB,CAAC,CACtB,CAAC;IAEF,OAAO;QACH,OAAO;QACP,SAAS;KACZ,CAAC;AACN,CAAC"}
|
package/esm/kdaDialog/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/internal.ts"],"names":[],"mappings":"AAEA,mBAAmB,oBAAoB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/kdaDialog/internal.ts"],"names":[],"mappings":"AAEA,mBAAmB,oBAAoB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/kdaDialog/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/kdaDialog/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|