@gooddata/sdk-ui-dashboard 11.58.0-alpha.2 → 11.58.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +8 -8
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +5 -5
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -3
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -1
- package/esm/internal.js +1 -0
- package/esm/model/DashboardTester.d.ts.map +1 -1
- package/esm/model/DashboardTester.js +7 -1
- package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.d.ts.map +1 -1
- package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.js +6 -1
- package/esm/model/commandHandlers/common/validateDrills.d.ts.map +1 -1
- package/esm/model/commandHandlers/common/validateDrills.js +12 -3
- package/esm/model/commandHandlers/dashboard/dashboardDrillReferences.d.ts +4 -0
- package/esm/model/commandHandlers/dashboard/dashboardDrillReferences.d.ts.map +1 -0
- package/esm/model/commandHandlers/dashboard/dashboardDrillReferences.js +53 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +13 -6
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js +4 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +30 -6
- package/esm/model/commandHandlers/drill/drillToAttributeUrlHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToAttributeUrlHandler.js +2 -0
- package/esm/model/commandHandlers/drill/drillToCustomUrlHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToCustomUrlHandler.js +2 -0
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +2 -0
- package/esm/model/commandHandlers/drill/drillToInsightHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/drillToInsightHandler.js +3 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +30 -29
- package/esm/model/commandHandlers/drill/validateDrillAccess.d.ts +6 -0
- package/esm/model/commandHandlers/drill/validateDrillAccess.d.ts.map +1 -0
- package/esm/model/commandHandlers/drill/validateDrillAccess.js +10 -0
- package/esm/model/commandHandlers/parameters/filterParameterDependenciesWorker.d.ts +45 -0
- package/esm/model/commandHandlers/parameters/filterParameterDependenciesWorker.d.ts.map +1 -0
- package/esm/model/commandHandlers/parameters/filterParameterDependenciesWorker.js +99 -0
- package/esm/model/commandHandlers/parameters/insightParameterDependenciesWorker.d.ts +11 -0
- package/esm/model/commandHandlers/parameters/insightParameterDependenciesWorker.d.ts.map +1 -0
- package/esm/model/commandHandlers/parameters/insightParameterDependenciesWorker.js +71 -0
- package/esm/model/commandHandlers/parameters/loadFilterParameterDependencies.d.ts +22 -0
- package/esm/model/commandHandlers/parameters/loadFilterParameterDependencies.d.ts.map +1 -0
- package/esm/model/commandHandlers/parameters/loadFilterParameterDependencies.js +39 -0
- package/esm/model/commandHandlers/parameters/loadInsightParameterDependencies.d.ts +21 -0
- package/esm/model/commandHandlers/parameters/loadInsightParameterDependencies.d.ts.map +1 -0
- package/esm/model/commandHandlers/parameters/loadInsightParameterDependencies.js +86 -0
- package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
- package/esm/model/react/useInitializeDashboardStore.js +4 -0
- package/esm/model/react/useWidgetExecConfig.d.ts +4 -4
- package/esm/model/react/useWidgetExecConfig.d.ts.map +1 -1
- package/esm/model/react/useWidgetExecConfig.js +2 -2
- package/esm/model/store/catalog/catalogReducers.d.ts +16 -4
- package/esm/model/store/catalog/catalogReducers.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogReducers.js +15 -3
- package/esm/model/store/catalog/catalogSelectors.d.ts +47 -7
- package/esm/model/store/catalog/catalogSelectors.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogSelectors.js +33 -7
- package/esm/model/store/catalog/catalogState.d.ts +30 -9
- package/esm/model/store/catalog/catalogState.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogState.js +2 -1
- package/esm/model/store/catalog/index.d.ts +4 -1
- package/esm/model/store/catalog/index.d.ts.map +1 -1
- package/esm/model/store/filtering/dashboardFilterSelectors.d.ts +8 -2
- package/esm/model/store/filtering/dashboardFilterSelectors.d.ts.map +1 -1
- package/esm/model/store/filtering/dashboardFilterSelectors.js +41 -25
- package/esm/model/store/filtering/types.d.ts +5 -0
- package/esm/model/store/filtering/types.d.ts.map +1 -1
- package/esm/model/store/tabs/layout/layoutSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/layout/layoutSelectors.js +2 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +42 -8
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.js +88 -19
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +13 -6
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.js +24 -13
- package/esm/model/store/ui/index.d.ts +1 -0
- package/esm/model/store/ui/index.d.ts.map +1 -1
- package/esm/model/store/ui/uiReducers.d.ts +5 -1
- package/esm/model/store/ui/uiReducers.d.ts.map +1 -1
- package/esm/model/store/ui/uiReducers.js +8 -4
- package/esm/model/store/ui/uiSelectors.d.ts +5 -1
- package/esm/model/store/ui/uiSelectors.d.ts.map +1 -1
- package/esm/model/store/ui/uiSelectors.js +4 -0
- package/esm/model/store/ui/uiState.d.ts +2 -1
- package/esm/model/store/ui/uiState.d.ts.map +1 -1
- package/esm/model/store/ui/uiState.js +1 -0
- package/esm/model/store/widgetDrills/drillRestrictionSelectors.d.ts +23 -0
- package/esm/model/store/widgetDrills/drillRestrictionSelectors.d.ts.map +1 -0
- package/esm/model/store/widgetDrills/drillRestrictionSelectors.js +5 -0
- package/esm/model/store/widgetDrills/drillRestrictionUtils.d.ts +5 -0
- package/esm/model/store/widgetDrills/drillRestrictionUtils.d.ts.map +1 -0
- package/esm/model/store/widgetDrills/drillRestrictionUtils.js +27 -0
- package/esm/model/store/widgetDrills/widgetDrillSelectors.d.ts.map +1 -1
- package/esm/model/store/widgetDrills/widgetDrillSelectors.js +9 -5
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +1 -0
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts +4 -2
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/useAlertDraftFilterWrites.js +12 -3
- package/esm/presentation/automations/alerting/utils/items.js +8 -14
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +8 -2
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts +4 -2
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/hooks/useExportTimezones.js +1 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +1 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts +4 -2
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDraftFilterWrites.js +25 -6
- package/esm/presentation/automations/shared/automationFilters/components/AutomationAttributeFilter.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationAttributeFilter.js +16 -2
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.js +16 -11
- package/esm/presentation/automations/shared/automationFilters/components/AutomationRestrictedFilters.d.ts +9 -0
- package/esm/presentation/automations/shared/automationFilters/components/AutomationRestrictedFilters.d.ts.map +1 -0
- package/esm/presentation/automations/shared/automationFilters/components/AutomationRestrictedFilters.js +22 -0
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts +2 -2
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +17 -5
- package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts +8 -0
- package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +54 -10
- package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.js +3 -2
- package/esm/presentation/automations/shared/filters/conversions.d.ts +10 -2
- package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
- package/esm/presentation/automations/shared/filters/conversions.js +15 -6
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.js +3 -4
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.js +20 -7
- package/esm/presentation/dialogs/ExportCsvDialog.d.ts.map +1 -1
- package/esm/presentation/dialogs/ExportCsvDialog.js +2 -1
- package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/IdentifierParametersSection.js +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts +2 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.js +19 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/WithDrillSelect.js +12 -4
- package/esm/presentation/drill/DrillSelect/types.d.ts +1 -0
- package/esm/presentation/drill/DrillSelect/types.d.ts.map +1 -1
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.d.ts.map +1 -1
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.js +4 -2
- package/esm/presentation/insightNotSavedDialog/InsightNotSavedDialog.d.ts.map +1 -1
- package/esm/presentation/insightNotSavedDialog/InsightNotSavedDialog.js +4 -5
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +21 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +27 -7
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +5 -2
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +5 -2
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +5 -2
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +5 -2
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +5 -2
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +3 -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 +5 -2
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts +4 -8
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts.map +1 -1
- package/esm/presentation/widget/common/RestrictedPlaceholder.js +16 -23
- package/esm/presentation/widget/insight/DefaultInsightBody/DefaultInsightBody.d.ts.map +1 -1
- package/esm/presentation/widget/insight/DefaultInsightBody/DefaultInsightBody.js +2 -4
- package/esm/presentation/widget/insight/LayeredTableView.d.ts +1 -1
- package/esm/presentation/widget/insight/LayeredTableView.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +2 -3
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.js +1 -1
- package/esm/presentation/widget/insight/types.d.ts +1 -1
- package/esm/presentation/widget/insight/types.d.ts.map +1 -1
- package/esm/presentation/widget/richText/RestrictedReferencesDialog.d.ts.map +1 -1
- package/esm/presentation/widget/richText/RestrictedReferencesDialog.js +5 -6
- package/esm/presentation/widget/visualizationSwitcher/ViewModeDashboardVisualizationSwitcher.js +1 -1
- package/esm/presentation/widget/visualizationSwitcher/configuration/VisualizationsList/VisualizationListItem.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/configuration/VisualizationsList/VisualizationListItem.js +1 -4
- package/esm/presentation/widget/widget/InsightWidget/DefaultDashboardInsightWidget.js +2 -3
- package/esm/sdk-ui-dashboard.d.ts +88 -61
- package/package.json +21 -21
- package/styles/css/dashboard.css +1 -7
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/dashboardSettingsDialog.css +4 -0
- package/styles/css/dashboardSettingsDialog.css.map +1 -1
- package/styles/css/export.css +0 -6
- package/styles/css/export.css.map +1 -1
- package/styles/css/main.css +13 -20
- package/styles/css/main.css.map +1 -1
- package/styles/css/notifications_channels_dialog.css +1 -7
- package/styles/css/notifications_channels_dialog.css.map +1 -1
- package/styles/css/richTextWidget.css +4 -0
- package/styles/css/richTextWidget.css.map +1 -1
- package/styles/scss/dashboardSettingsDialog.scss +5 -0
- package/styles/scss/export.scss +0 -9
- package/styles/scss/notifications_channels_dialog.scss +1 -10
- package/styles/scss/richTextWidget.scss +5 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadMeasureParameterDependencies.d.ts +0 -13
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadMeasureParameterDependencies.d.ts.map +0 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadMeasureParameterDependencies.js +0 -98
- package/esm/model/types/drillTypes.d.ts +0 -13
- package/esm/model/types/drillTypes.d.ts.map +0 -1
- package/esm/model/types/drillTypes.js +0 -14
- package/esm/presentation/widget/insight/geoDefaultDisplayFormRefs.d.ts +0 -5
- package/esm/presentation/widget/insight/geoDefaultDisplayFormRefs.d.ts.map +0 -1
- package/esm/presentation/widget/insight/geoDefaultDisplayFormRefs.js +0 -28
- package/esm/presentation/widget/insight/insightToTable.d.ts +0 -74
- package/esm/presentation/widget/insight/insightToTable.d.ts.map +0 -1
- package/esm/presentation/widget/insight/insightToTable.js +0 -482
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { createSelector } from "@reduxjs/toolkit";
|
|
3
3
|
import { isEqual, uniq } from "lodash-es";
|
|
4
|
-
import { areObjRefsEqual, objRefToString, } from "@gooddata/sdk-model";
|
|
4
|
+
import { areObjRefsEqual, insightRef, objRefToString, serializeObjRef, } from "@gooddata/sdk-model";
|
|
5
5
|
import { createMemoizedSelector } from "../../_infra/selectors.js";
|
|
6
|
-
import {
|
|
6
|
+
import { selectCatalogFilterParameters, selectCatalogFilterParametersStatus, selectCatalogInsightParameters, selectCatalogInsightParametersStatus, selectCatalogParameterByRef, selectCatalogParameters, selectCatalogParametersIsLoaded, } from "../../catalog/catalogSelectors.js";
|
|
7
7
|
import { selectEnableParameters, selectEnableStringParameters } from "../../config/configSelectors.js";
|
|
8
8
|
import { selectInsightsMap } from "../../insights/insightsSelectors.js";
|
|
9
9
|
import { selectIsInEditMode } from "../../renderMode/renderModeSelectors.js";
|
|
10
10
|
import { selectAllTabsInsightWidgetContexts, selectAllTabsWidgetContexts, } from "../layout/layoutSelectors.js";
|
|
11
11
|
import { selectActiveOrDefaultTabLocalIdentifier, selectActiveTab, selectTabs } from "../tabsSelectors.js";
|
|
12
12
|
import { DEFAULT_TAB_ID } from "../tabsState.js";
|
|
13
|
-
import { EMPTY_EXPORT_PARAMETERS_BY_TAB, applyDisplayOverride, applyRuntimeOverride, buildPersistedByTabAndRef, buildWorkspaceParametersByRef, classifyParameterReconciliation, collectAppliedParameterValues, collectExportOverrides, collectParameterReconciliations,
|
|
13
|
+
import { EMPTY_EXPORT_PARAMETERS_BY_TAB, applyDisplayOverride, applyRuntimeOverride, buildPersistedByTabAndRef, buildWorkspaceParametersByRef, classifyParameterReconciliation, collectAppliedParameterValues, collectExportOverrides, collectParameterReconciliations, collectWidgetFilterParameterRefs, computeParameterResetTargets, computeParameterResetValue, displayOverride, hydrateParameterEntry, isGatedStringEntry, resolveEffectiveParameterValuesForRefs, smartPersistResolvedEntry, ungatedInsightParameterValues, ungatedTabEntries, unionParameterRefs, } from "./parametersHelpers.js";
|
|
14
14
|
import { parametersInitialState, pickTabParametersSource, } from "./parametersState.js";
|
|
15
15
|
const EMPTY_PARAMETERS = [];
|
|
16
16
|
const EMPTY_EXPORT_PARAMETERS = [];
|
|
@@ -18,6 +18,7 @@ const EMPTY_PARAMETER_VALUES = [];
|
|
|
18
18
|
const EMPTY_TABS = [];
|
|
19
19
|
const EMPTY_RESET_TARGETS = [];
|
|
20
20
|
const EMPTY_RECONCILIATIONS = [];
|
|
21
|
+
const EMPTY_REFS = [];
|
|
21
22
|
const EMPTY_WORKSPACE_PARAMETERS_BY_REF = new Map();
|
|
22
23
|
const selectParametersState = createSelector(selectActiveTab, (activeTab) => activeTab?.parameters ?? parametersInitialState);
|
|
23
24
|
const selectPersistedParametersFromMeta = (state) => state.meta?.persistedDashboard?.parameters ?? EMPTY_PARAMETERS;
|
|
@@ -274,21 +275,31 @@ export const selectParameterReconciliationByRef = createMemoizedSelector((ref) =
|
|
|
274
275
|
return classifyParameterReconciliation(applyDisplayOverride(entry), workspaceParameter);
|
|
275
276
|
}));
|
|
276
277
|
/**
|
|
277
|
-
* Owning-tab parameter entries
|
|
278
|
+
* Owning-tab parameter entries, the insight → parameter map and the widget's dashboard-filter
|
|
279
|
+
* parameter refs for a widget, keyed by ref.
|
|
280
|
+
*
|
|
281
|
+
* @remarks
|
|
282
|
+
* The filter half degrades to "no filter dependencies" while its map is not loaded (or failed to load),
|
|
283
|
+
* so a dashboard whose filter dependency request failed still injects the parameters its insights
|
|
284
|
+
* depend on.
|
|
278
285
|
*
|
|
279
286
|
* @internal
|
|
280
287
|
*/
|
|
281
|
-
export const selectWidgetParameterContext = createMemoizedSelector((ref) => createSelector(selectAllTabsInsightWidgetContexts, selectEnableParameters, selectEnableStringParameters,
|
|
282
|
-
if (!isEnabled || !ref ||
|
|
288
|
+
export const selectWidgetParameterContext = createMemoizedSelector((ref) => createSelector(selectAllTabsInsightWidgetContexts, selectEnableParameters, selectEnableStringParameters, selectCatalogInsightParameters, selectCatalogInsightParametersStatus, selectCatalogFilterParameters, selectCatalogFilterParametersStatus, selectWorkspaceParametersByRef, (contexts, isEnabled, isStringEnabled, insightParameters, insightParametersStatus, filterParameters, filterParametersStatus, workspaceParameterByRef) => {
|
|
289
|
+
if (!isEnabled || !ref || insightParametersStatus !== "loaded") {
|
|
283
290
|
return undefined;
|
|
284
291
|
}
|
|
285
292
|
const context = contexts.find((ctx) => areObjRefsEqual(ctx.widget.ref, ref));
|
|
286
293
|
if (!context) {
|
|
287
294
|
return undefined;
|
|
288
295
|
}
|
|
296
|
+
const filterParameterRefs = filterParametersStatus === "loaded"
|
|
297
|
+
? collectWidgetFilterParameterRefs(context.widget.ignoreDashboardFilters, context.tab, filterParameters)
|
|
298
|
+
: EMPTY_REFS;
|
|
289
299
|
return {
|
|
290
300
|
entries: ungatedTabEntries(context.tab, isStringEnabled),
|
|
291
|
-
|
|
301
|
+
insightParameters,
|
|
302
|
+
filterParameterRefs,
|
|
292
303
|
workspaceParameterByRef,
|
|
293
304
|
widgetInsightRef: context.widget.insight,
|
|
294
305
|
isStringEnabled,
|
|
@@ -300,12 +311,12 @@ const selectWidgetInsightAndReferencedRefs = createMemoizedSelector((ref) => cre
|
|
|
300
311
|
if (!resolved) {
|
|
301
312
|
return undefined;
|
|
302
313
|
}
|
|
303
|
-
const { entries,
|
|
314
|
+
const { entries, insightParameters, filterParameterRefs, workspaceParameterByRef, widgetInsightRef, isStringEnabled, } = resolved;
|
|
304
315
|
const insight = insights.get(widgetInsightRef);
|
|
305
316
|
if (!insight) {
|
|
306
317
|
return undefined;
|
|
307
318
|
}
|
|
308
|
-
const referencedRefs =
|
|
319
|
+
const referencedRefs = unionParameterRefs(insightParameters[serializeObjRef(insightRef(insight))] ?? EMPTY_REFS, filterParameterRefs);
|
|
309
320
|
const insightParameterValues = ungatedInsightParameterValues(insight, isStringEnabled);
|
|
310
321
|
return { insightParameterValues, referencedRefs, entries, workspaceParameterByRef };
|
|
311
322
|
}));
|
|
@@ -313,14 +324,14 @@ const selectWidgetInsightAndReferencedRefs = createMemoizedSelector((ref) => cre
|
|
|
313
324
|
* Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`.
|
|
314
325
|
*
|
|
315
326
|
* @remarks
|
|
316
|
-
* For each parameter
|
|
317
|
-
*
|
|
327
|
+
* For each parameter the widget's insight depends on (via the dashboard-wide
|
|
328
|
+
* insight → parameter dependency map), the value is resolved in this order:
|
|
318
329
|
*
|
|
319
330
|
* 1. dashboard chip on the widget's tab with `runtimeOverride !== undefined`,
|
|
320
331
|
* 2. else `insight.parameters` entry for that ref (AD-authored per-insight override),
|
|
321
332
|
* 3. else nothing (backend uses workspace default).
|
|
322
333
|
*
|
|
323
|
-
* Parameters
|
|
334
|
+
* Parameters the widget's insight does not depend on are excluded so that adding/removing
|
|
324
335
|
* unrelated parameters does not invalidate the widget's `defFingerprint`. Returns `[]` when
|
|
325
336
|
* `enableParameters` is off or while the dependency map has not been loaded.
|
|
326
337
|
*
|
|
@@ -335,7 +346,7 @@ export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((r
|
|
|
335
346
|
}));
|
|
336
347
|
/**
|
|
337
348
|
* The insight half of {@link selectEffectiveParameterValuesForWidget}: insight-authored values for
|
|
338
|
-
* the
|
|
349
|
+
* the refs the insight depends on, flag-gated and ref-filtered, with no dashboard chip overrides.
|
|
339
350
|
*
|
|
340
351
|
* @remarks
|
|
341
352
|
* Raw CSV export inlines a resolved AFM, so it must carry parameters explicitly rather than letting
|
|
@@ -31,6 +31,7 @@ export declare const uiActions: {
|
|
|
31
31
|
openSaveAsDialog: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uiSlice/openSaveAsDialog">;
|
|
32
32
|
closeSaveAsDialog: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uiSlice/closeSaveAsDialog">;
|
|
33
33
|
openInsightNotSavedDialog: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uiSlice/openInsightNotSavedDialog">;
|
|
34
|
+
setInsightNotSavedDialogDraftInsightsToPersist: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("@gooddata/sdk-model").IInsight[], "uiSlice/setInsightNotSavedDialogDraftInsightsToPersist">;
|
|
34
35
|
closeInsightNotSavedDialog: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uiSlice/closeInsightNotSavedDialog">;
|
|
35
36
|
confirmInsightNotSavedDialogSubmit: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uiSlice/confirmInsightNotSavedDialogSubmit">;
|
|
36
37
|
setFilterBarExpanded: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "uiSlice/setFilterBarExpanded">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAQ7D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAmB,CAAC;AAGjE;;;;GAIG;AACH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAQ7D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAmB,CAAC;AAGjE;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Action, type AnyAction, type CaseReducer } from "@reduxjs/toolkit";
|
|
2
|
-
import { type IDrillToCustomUrl, type IInsightWidget, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IDrillToCustomUrl, type IInsight, type IInsightWidget, type ObjRef } from "@gooddata/sdk-model";
|
|
3
3
|
import { type DraggableLayoutItem } from "../../../presentation/dragAndDrop/types.js";
|
|
4
4
|
import { type DashboardDensity, type DropZoneType, type IAlertDialogContext, type ILayoutItemPath, type ILayoutSectionPath, type IMenuButtonItemsVisibility, type IScheduleEmailContext } from "../../../types.js";
|
|
5
5
|
import { type IDashboardWidgetOverlay } from "../../types/commonTypes.js";
|
|
@@ -52,6 +52,10 @@ export declare const uiReducers: {
|
|
|
52
52
|
openSaveAsDialog: UiReducer<AnyAction>;
|
|
53
53
|
closeSaveAsDialog: UiReducer<AnyAction>;
|
|
54
54
|
openInsightNotSavedDialog: UiReducer<AnyAction>;
|
|
55
|
+
setInsightNotSavedDialogDraftInsightsToPersist: UiReducer<{
|
|
56
|
+
payload: IInsight[];
|
|
57
|
+
type: string;
|
|
58
|
+
}>;
|
|
55
59
|
closeInsightNotSavedDialog: UiReducer<AnyAction>;
|
|
56
60
|
confirmInsightNotSavedDialogSubmit: UiReducer<AnyAction>;
|
|
57
61
|
setFilterBarExpanded: UiReducer<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAErG,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,MAAM,EAMd,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACH,KAAK,oBAAoB,EAEzB,KAAK,QAAQ,EAChB,MAAM,cAAc,CAAC;AAEtB,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uiReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAErG,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,MAAM,EAMd,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACH,KAAK,oBAAoB,EAEzB,KAAK,QAAQ,EAChB,MAAM,cAAc,CAAC;AAEtB,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAqaxE,KAAK,oBAAoB,GAAG;IACxB,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAwEF,eAAO,MAAM,UAAU;;;;;;;;;;;yBA9euE,MAAM;;;;;;;;;;;;yBA+C3C,MAAM;;;;;;;yBA4BR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAoQjC,cAAc;2BAAiB,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DpD,eAAe;oCAA0B,YAAY;;;;;;;;;;;;;;;;;;;mBA7M1D,OAAO;mBACP,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;uBAwSV,MAAM;2CAAiC,MAAM;;;;CAkF3E,CAAC"}
|
|
@@ -7,18 +7,17 @@ const openScheduleEmailDialog = (state, action) => {
|
|
|
7
7
|
state.scheduleEmailDialog.open = true;
|
|
8
8
|
if (schedule) {
|
|
9
9
|
state.scheduleEmailDialog.context = {
|
|
10
|
-
...
|
|
10
|
+
...state.scheduleEmailDialog.context,
|
|
11
11
|
schedule,
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
if (widgetRef) {
|
|
15
15
|
state.scheduleEmailDialog.context = {
|
|
16
|
-
...
|
|
16
|
+
...state.scheduleEmailDialog.context,
|
|
17
17
|
widgetRef,
|
|
18
18
|
};
|
|
19
19
|
if (openedFrom === "widget") {
|
|
20
|
-
|
|
21
|
-
state.scheduleEmailDialog.returnFocusTo = returnFocusTo;
|
|
20
|
+
state.scheduleEmailDialog.returnFocusTo = getDashboardInsightMenuButtonId(objRefToString(widgetRef));
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
if (openedFrom === "dashboard") {
|
|
@@ -94,9 +93,13 @@ const closeSaveAsDialog = (state) => {
|
|
|
94
93
|
const openInsightNotSavedDialog = (state) => {
|
|
95
94
|
state.insightNotSavedDialog.open = true;
|
|
96
95
|
};
|
|
96
|
+
const setInsightNotSavedDialogDraftInsightsToPersist = (state, action) => {
|
|
97
|
+
state.insightNotSavedDialog.draftInsightsToPersist = action.payload;
|
|
98
|
+
};
|
|
97
99
|
const closeInsightNotSavedDialog = (state) => {
|
|
98
100
|
state.insightNotSavedDialog.open = false;
|
|
99
101
|
state.insightNotSavedDialog.saveConfirmed = false;
|
|
102
|
+
state.insightNotSavedDialog.draftInsightsToPersist = [];
|
|
100
103
|
};
|
|
101
104
|
const confirmInsightNotSavedDialogSubmit = (state) => {
|
|
102
105
|
state.insightNotSavedDialog.saveConfirmed = true;
|
|
@@ -363,6 +366,7 @@ export const uiReducers = {
|
|
|
363
366
|
openSaveAsDialog,
|
|
364
367
|
closeSaveAsDialog,
|
|
365
368
|
openInsightNotSavedDialog,
|
|
369
|
+
setInsightNotSavedDialogDraftInsightsToPersist,
|
|
366
370
|
closeInsightNotSavedDialog,
|
|
367
371
|
confirmInsightNotSavedDialogSubmit,
|
|
368
372
|
setFilterBarExpanded,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ObjRef } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IInsight, type ObjRef } from "@gooddata/sdk-model";
|
|
2
2
|
import { type DraggableLayoutItem } from "../../../presentation/dragAndDrop/types.js";
|
|
3
3
|
import { type DashboardDensity, type DropZoneType, type IAlertDialogContext, type ILayoutCoordinates, type ILayoutItemPath, type ILayoutSectionPath, type IMenuButtonItemsVisibility, type IScheduleEmailContext } from "../../../types.js";
|
|
4
4
|
import { type IDashboardWidgetOverlay } from "../../types/commonTypes.js";
|
|
@@ -60,6 +60,10 @@ export declare const selectIsInsightNotSavedDialogOpen: DashboardSelector<boolea
|
|
|
60
60
|
* @internal
|
|
61
61
|
*/
|
|
62
62
|
export declare const selectIsInsightNotSavedDialogSaveConfirmed: DashboardSelector<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export declare const selectInsightNotSavedDialogDraftInsightsToPersist: DashboardSelector<IInsight[]>;
|
|
63
67
|
/**
|
|
64
68
|
* @alpha
|
|
65
69
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAmC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"uiSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiSelectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,10 @@ export const selectIsInsightNotSavedDialogOpen = createSelector(selectSelf, (sta
|
|
|
66
66
|
* @internal
|
|
67
67
|
*/
|
|
68
68
|
export const selectIsInsightNotSavedDialogSaveConfirmed = createSelector(selectSelf, (state) => state.insightNotSavedDialog.saveConfirmed);
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
export const selectInsightNotSavedDialogDraftInsightsToPersist = createSelector(selectSelf, (state) => state.insightNotSavedDialog.draftInsightsToPersist);
|
|
69
73
|
/**
|
|
70
74
|
* @alpha
|
|
71
75
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Identifier, type ObjRef, type Uri } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IInsight, type Identifier, type ObjRef, type Uri } from "@gooddata/sdk-model";
|
|
2
2
|
import { type DraggableLayoutItem } from "../../../presentation/dragAndDrop/types.js";
|
|
3
3
|
import { type DashboardDensity, type DropZoneType, type IAlertDialogContext, type ILayoutItemPath, type ILayoutSectionPath, type IMenuButtonItemsVisibility, type IScheduleEmailContext } from "../../../types.js";
|
|
4
4
|
import { type IDashboardWidgetOverlay } from "../../types/commonTypes.js";
|
|
@@ -48,6 +48,7 @@ export interface IUiState {
|
|
|
48
48
|
insightNotSavedDialog: {
|
|
49
49
|
open: boolean;
|
|
50
50
|
saveConfirmed: boolean;
|
|
51
|
+
draftInsightsToPersist: IInsight[];
|
|
51
52
|
};
|
|
52
53
|
settingsDialog: {
|
|
53
54
|
open: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"uiState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/ui/uiState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type DashboardDrillDefinition } from "../../../types.js";
|
|
2
|
+
export declare const selectIsDrillRestricted: ((state: import("../types.js").DashboardState) => (drill: DashboardDrillDefinition) => boolean) & {
|
|
3
|
+
clearCache: () => void;
|
|
4
|
+
resultsCount: () => number;
|
|
5
|
+
resetResultsCount: () => void;
|
|
6
|
+
} & {
|
|
7
|
+
resultFunc: (resultFuncArgs_0: import("@gooddata/sdk-backend-spi").IUnavailableDashboardReference[]) => (drill: DashboardDrillDefinition) => boolean;
|
|
8
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("@gooddata/sdk-backend-spi").IUnavailableDashboardReference[]) => (drill: DashboardDrillDefinition) => boolean) & {
|
|
9
|
+
clearCache: () => void;
|
|
10
|
+
resultsCount: () => number;
|
|
11
|
+
resetResultsCount: () => void;
|
|
12
|
+
};
|
|
13
|
+
lastResult: () => (drill: DashboardDrillDefinition) => boolean;
|
|
14
|
+
dependencies: [import("../types.js").DashboardSelector<import("@gooddata/sdk-backend-spi").IUnavailableDashboardReference[]>];
|
|
15
|
+
recomputations: () => number;
|
|
16
|
+
resetRecomputations: () => void;
|
|
17
|
+
dependencyRecomputations: () => number;
|
|
18
|
+
resetDependencyRecomputations: () => void;
|
|
19
|
+
} & {
|
|
20
|
+
memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
21
|
+
argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=drillRestrictionSelectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drillRestrictionSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/widgetDrills/drillRestrictionSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAKlE,eAAO,MAAM,uBAAuB,4DAGpB,wBAAwB,KAAG,OAAO;;;;;oHAAlC,wBAAwB,KAAG,OAAO;;;;;;8BAAlC,wBAAwB,KAAG,OAAO;;;;;;;;;CAEjD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { createSelector } from "@reduxjs/toolkit";
|
|
3
|
+
import { selectUnavailableObjects } from "../unavailableObjects/unavailableObjectsSelectors.js";
|
|
4
|
+
import { isDrillRestricted } from "./drillRestrictionUtils.js";
|
|
5
|
+
export const selectIsDrillRestricted = createSelector(selectUnavailableObjects, (unavailable) => (drill) => isDrillRestricted(drill, unavailable));
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IUnavailableDashboardReference } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type DashboardDrillDefinition } from "../../../types.js";
|
|
3
|
+
/** Identifies positively reported restrictions; missing metadata alone is not a permission signal. */
|
|
4
|
+
export declare function isDrillRestricted(drill: DashboardDrillDefinition, unavailable: IUnavailableDashboardReference[]): boolean;
|
|
5
|
+
//# sourceMappingURL=drillRestrictionUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drillRestrictionUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/store/widgetDrills/drillRestrictionUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAYhF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,sGAAsG;AACtG,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,wBAAwB,EAC/B,WAAW,EAAE,8BAA8B,EAAE,GAC9C,OAAO,CAiCT"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { isComputedAttributeRef, isDrillToAttributeUrl, isDrillToCustomUrl, isDrillToDashboard, isDrillToInsight, isIdentifierRef, } from "@gooddata/sdk-model";
|
|
3
|
+
import { getDrillToCustomUrlReferences } from "@gooddata/sdk-model/internal";
|
|
4
|
+
import { isDashboardObjectRestricted } from "../filtering/restrictedFilterUtils.js";
|
|
5
|
+
/** Identifies positively reported restrictions; missing metadata alone is not a permission signal. */
|
|
6
|
+
export function isDrillRestricted(drill, unavailable) {
|
|
7
|
+
if (unavailable.length === 0) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (isDrillToInsight(drill)) {
|
|
11
|
+
return isDashboardObjectRestricted(drill.target, "insight", unavailable);
|
|
12
|
+
}
|
|
13
|
+
if (isDrillToDashboard(drill)) {
|
|
14
|
+
return (!!drill.target && isDashboardObjectRestricted(drill.target, "analyticalDashboard", unavailable));
|
|
15
|
+
}
|
|
16
|
+
const isLabelRestricted = (ref) => isDashboardObjectRestricted(ref, isComputedAttributeRef(ref) ? "computedAttribute" : "displayForm", unavailable);
|
|
17
|
+
if (isDrillToAttributeUrl(drill)) {
|
|
18
|
+
return (isLabelRestricted(drill.target.displayForm) ||
|
|
19
|
+
isLabelRestricted(drill.target.hyperlinkDisplayForm));
|
|
20
|
+
}
|
|
21
|
+
if (isDrillToCustomUrl(drill)) {
|
|
22
|
+
return getDrillToCustomUrlReferences(drill.target).some((ref) => isIdentifierRef(ref) &&
|
|
23
|
+
ref.type !== undefined &&
|
|
24
|
+
isDashboardObjectRestricted(ref, ref.type, unavailable));
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetDrillSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/widgetDrills/widgetDrillSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EASH,KAAK,mBAAmB,EAGxB,KAAK,MAAM,EAad,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,KAAK,aAAa,EAGlB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACxB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,4CAA4C,EACpD,MAAM,mBAAmB,CAAC;AA0C3B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"widgetDrillSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/widgetDrills/widgetDrillSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EASH,KAAK,mBAAmB,EAGxB,KAAK,MAAM,EAad,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,KAAK,aAAa,EAGlB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACxB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,4CAA4C,EACpD,MAAM,mBAAmB,CAAC;AA0C3B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAClC;AA2TD;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAC9C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4BAA4B,EAAE,CAuCpD,CAAC;AA+JF;;GAEG;AACH,eAAO,MAAM,mDAAmD,EAAE,CAC9D,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4CAA4C,EAAE,CA6BpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,CAChD,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,8BAA8B,EAAE,CA2DtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oCAAoC,EAAE,CAC/C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4BAA4B,EAAE,CAcpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,CAC5C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4BAA4B,EAAE,CAgDpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sCAAsC,EAAE,CACjD,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4BAA4B,EAAE,CAiDpD,CAAC;AAgCF;;GAEG;AACH,eAAO,MAAM,4CAA4C,EAAE,CACvD,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,4BAA4B,EAAE,CAuCpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,aAAa,EAAE,CAkC3F,CAAC;AAMN;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,CACtD,qBAAqB,EAAE,sBAAsB,GAAG,SAAS,EACzD,2BAA2B,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAC9D,mBAAmB,EAAE,OAAO,GAAG,SAAS,KACvC,iBAAiB,CAAC,4BAA4B,EAAE,CA4CpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,CACtD,qBAAqB,EAAE,sBAAsB,GAAG,SAAS,EACzD,2BAA2B,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAC9D,mBAAmB,EAAE,OAAO,GAAG,SAAS,KACvC,iBAAiB,CAAC,gBAAgB,EAAE,CAgBxC,CAAC"}
|
|
@@ -9,7 +9,7 @@ import { existBlacklistHierarchyPredicate } from "../../utils/attributeHierarchy
|
|
|
9
9
|
import { createMemoizedSelector } from "../_infra/selectors.js";
|
|
10
10
|
import { selectAccessibleDashboardsLoaded, selectAccessibleDashboardsMap, } from "../accessibleDashboards/accessibleDashboardsSelectors.js";
|
|
11
11
|
import { selectBackendCapabilities, selectSupportsAttributeHierarchies, selectSupportsCrossFiltering, } from "../backendCapabilities/backendCapabilitiesSelectors.js";
|
|
12
|
-
import {
|
|
12
|
+
import { selectAllCatalogAttributesMap, selectAllCatalogDisplayFormsMap, selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectCatalogDateAttributes, selectCatalogIsLoaded, selectDrillableAttributeHierarchies, } from "../catalog/catalogSelectors.js";
|
|
13
13
|
import { selectDisableDefaultDrills, selectEnableDrillToUrlByDefault, selectEnableKda, selectEnableSecondGranularities, selectIsDisabledCrossFiltering, selectIsDisabledKda, selectIsEmbedded, } from "../config/configSelectors.js";
|
|
14
14
|
import { selectDrillableItems } from "../drill/drillSelectors.js";
|
|
15
15
|
import { selectDrillTargetsByWidgetRef } from "../drillTargets/drillTargetsSelectors.js";
|
|
@@ -17,6 +17,7 @@ import { selectInsightByWidgetRef, selectInsightsMap } from "../insights/insight
|
|
|
17
17
|
import { getKeyDriverAnalysisSupportedGranularities } from "../keyDriverAnalysis/const.js";
|
|
18
18
|
import { selectDisableDashboardCrossFiltering, selectDisableDashboardKda } from "../meta/metaSelectors.js";
|
|
19
19
|
import { selectIgnoredDrillDownHierarchiesByWidgetRef, selectIgnoredDrillToUrlAttributesByWidgetRef, selectWidgetDrills, } from "../tabs/layout/layoutSelectors.js";
|
|
20
|
+
import { selectIsDrillRestricted } from "./drillRestrictionSelectors.js";
|
|
20
21
|
function drillDefinitionToPredicates(drill) {
|
|
21
22
|
let origin;
|
|
22
23
|
if (isDrillFromMeasure(drill.origin)) {
|
|
@@ -204,7 +205,7 @@ function getGlobalDrillDownAttributeHierarchyDefinitions(catalogAttributeHierarc
|
|
|
204
205
|
/**
|
|
205
206
|
* @internal
|
|
206
207
|
*/
|
|
207
|
-
export const selectImplicitDrillsDownByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies, selectInsightByWidgetRef(ref), selectIgnoredDrillDownHierarchiesByWidgetRef(ref),
|
|
208
|
+
export const selectImplicitDrillsDownByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies, selectInsightByWidgetRef(ref), selectIgnoredDrillDownHierarchiesByWidgetRef(ref), selectDrillableAttributeHierarchies, selectBackendCapabilities, (availableDrillTargets, attributesWithHierarchyDescendants, allCatalogAttributesMap, isDrillDownEnabled, widgetInsight, ignoredHierarchies, allCatalogAttributeHierarchies, backendCapabilities) => {
|
|
208
209
|
const isWidgetEnableDrillDown = !widgetInsight?.insight?.properties?.["controls"]?.disableDrillDown;
|
|
209
210
|
if (isDrillDownEnabled && isWidgetEnableDrillDown) {
|
|
210
211
|
const availableDrillAttributes = availableDrillTargets?.availableDrillTargets?.attributes ?? [];
|
|
@@ -286,7 +287,7 @@ const selectKdaByWidgetRef = createMemoizedSelector((ref) => createSelector(sele
|
|
|
286
287
|
/**
|
|
287
288
|
* @internal
|
|
288
289
|
*/
|
|
289
|
-
export const selectGlobalDrillsDownAttributeHierarchyByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref),
|
|
290
|
+
export const selectGlobalDrillsDownAttributeHierarchyByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectDrillableAttributeHierarchies, selectIgnoredDrillDownHierarchiesByWidgetRef(ref), selectSupportsAttributeHierarchies, selectInsightByWidgetRef(ref), (availableDrillTargets, catalogAttributeHierarchies, ignoredDrillDownHierarchies, supportAttributeHierarchies, widgetInsight) => {
|
|
290
291
|
const isWidgetEnableDrillDown = !widgetInsight?.insight?.properties?.["controls"]?.disableDrillDown;
|
|
291
292
|
const enableDrillDown = supportAttributeHierarchies && isWidgetEnableDrillDown;
|
|
292
293
|
if (enableDrillDown) {
|
|
@@ -369,8 +370,11 @@ export const selectConfiguredDrillsByWidgetRef = createMemoizedSelector((ref) =>
|
|
|
369
370
|
/**
|
|
370
371
|
* @internal
|
|
371
372
|
*/
|
|
372
|
-
export const selectValidConfiguredDrillsByWidgetRef = createMemoizedSelector((ref) => createSelector(selectConfiguredDrillsByWidgetRef(ref), selectAllCatalogDisplayFormsMap, selectAccessibleDashboardsMap, selectInsightsMap, (drills = [], displayFormsMap, accessibleDashboardsMap, insightsMap) => {
|
|
373
|
+
export const selectValidConfiguredDrillsByWidgetRef = createMemoizedSelector((ref) => createSelector(selectConfiguredDrillsByWidgetRef(ref), selectAllCatalogDisplayFormsMap, selectAccessibleDashboardsMap, selectInsightsMap, selectIsDrillRestricted, (drills = [], displayFormsMap, accessibleDashboardsMap, insightsMap, isRestricted) => {
|
|
373
374
|
return drills.filter((drill) => {
|
|
375
|
+
if (isRestricted(drill.drillDefinition)) {
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
374
378
|
switch (drill.drillDefinition.type) {
|
|
375
379
|
case "drillToAttributeUrl": {
|
|
376
380
|
return displayFormsMap.get(drill.drillDefinition.target.hyperlinkDisplayForm);
|
|
@@ -454,7 +458,7 @@ export const selectDrillableItemsByWidgetRef = createMemoizedSelector((ref) => c
|
|
|
454
458
|
/**
|
|
455
459
|
* @internal
|
|
456
460
|
*/
|
|
457
|
-
export const selectImplicitDrillsByAvailableDrillTargets = createMemoizedSelector((availableDrillTargets, ignoredDrillDownHierarchies = [], disableDrillIntoURL) => createSelector(selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies,
|
|
461
|
+
export const selectImplicitDrillsByAvailableDrillTargets = createMemoizedSelector((availableDrillTargets, ignoredDrillDownHierarchies = [], disableDrillIntoURL) => createSelector(selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies, selectDrillableAttributeHierarchies, selectBackendCapabilities, selectEnableDrillToUrlByDefault, (attributesWithLink, attributesWithHierarchyDescendants, allCatalogAttributesMap, isDrillDownEnabled, allCatalogHierarchies, backendCapabilities, enableDrillToUrlByDefault) => {
|
|
458
462
|
const isDrillToUrlDisabled = disableDrillIntoURL ?? !enableDrillToUrlByDefault;
|
|
459
463
|
const availableDrillAttributes = availableDrillTargets?.attributes ?? [];
|
|
460
464
|
const drillDownDrills = isDrillDownEnabled
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from "react";
|
|
2
|
-
import { type FilterContextItem, type IAutomationMetadataObjectDefinition, type IAutomationVisibleFilter, type IInsight, type IWidget, type WeekStart } from "@gooddata/sdk-model";
|
|
2
|
+
import { type FilterContextItem, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IAutomationVisibleFilter, type IInsight, type IWidget, type WeekStart } from "@gooddata/sdk-model";
|
|
3
3
|
import { type AlertAttribute, type AlertMetric } from "../types.js";
|
|
4
4
|
import { type IMeasureFormatMap } from "../utils/getters.js";
|
|
5
5
|
/**
|
|
@@ -8,6 +8,8 @@ import { type IMeasureFormatMap } from "../utils/getters.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export interface IUseAlertDraftFilterWritesProps {
|
|
10
10
|
setEditedAutomation: Dispatch<SetStateAction<IAutomationMetadataObjectDefinition | undefined>>;
|
|
11
|
+
/** The alert as it was loaded; the source of the visible-filter entries only it can name. */
|
|
12
|
+
alertToEdit?: IAutomationMetadataObject;
|
|
11
13
|
dashboardHiddenFilters: FilterContextItem[];
|
|
12
14
|
commonDateFilterId?: string;
|
|
13
15
|
widget?: IWidget;
|
|
@@ -27,7 +29,7 @@ export interface IUseAlertDraftFilterWritesProps {
|
|
|
27
29
|
*
|
|
28
30
|
* @internal
|
|
29
31
|
*/
|
|
30
|
-
export declare function useAlertDraftFilterWrites({ setEditedAutomation, dashboardHiddenFilters, commonDateFilterId, widget, insight, availableFiltersAsVisibleFilters, supportedMeasures, supportedAttributes, measureFormatMap, selectedMeasure, selectedAttribute, selectedValue, weekStart, timezone, }: IUseAlertDraftFilterWritesProps): {
|
|
32
|
+
export declare function useAlertDraftFilterWrites({ setEditedAutomation, alertToEdit, dashboardHiddenFilters, commonDateFilterId, widget, insight, availableFiltersAsVisibleFilters, supportedMeasures, supportedAttributes, measureFormatMap, selectedMeasure, selectedAttribute, selectedValue, weekStart, timezone, }: IUseAlertDraftFilterWritesProps): {
|
|
31
33
|
applyFiltersToDraft: (filters: FilterContextItem[]) => void;
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=useAlertDraftFilterWrites.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAlertDraftFilterWrites.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/useAlertDraftFilterWrites.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"useAlertDraftFilterWrites.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/useAlertDraftFilterWrites.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAwB,MAAM,OAAO,CAAC;AAEjF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,SAAS,EACjB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC5C,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/F,6FAA6F;IAC7F,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,mBAAmB,EAAE,cAAc,EAAE,CAAC;IACtC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,iBAAiB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,EACN,OAAO,EACP,gCAAgC,EAChC,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,QAAQ,GACX,EAAE,+BAA+B,GAAG;IAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAA;CAAE,CAgGnG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { useCallback } from "react";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
|
|
3
4
|
import { getAppliedWidgetFilters, getVisibleFiltersByFilters } from "../../shared/filters/index.js";
|
|
4
5
|
import { transformAlertByAttribute, transformAlertByMetric } from "../utils/transformation.js";
|
|
5
6
|
/**
|
|
@@ -7,14 +8,21 @@ import { transformAlertByAttribute, transformAlertByMetric } from "../utils/tran
|
|
|
7
8
|
*
|
|
8
9
|
* @internal
|
|
9
10
|
*/
|
|
10
|
-
export function useAlertDraftFilterWrites({ setEditedAutomation, dashboardHiddenFilters, commonDateFilterId, widget, insight, availableFiltersAsVisibleFilters, supportedMeasures, supportedAttributes, measureFormatMap, selectedMeasure, selectedAttribute, selectedValue, weekStart, timezone, }) {
|
|
11
|
+
export function useAlertDraftFilterWrites({ setEditedAutomation, alertToEdit, dashboardHiddenFilters, commonDateFilterId, widget, insight, availableFiltersAsVisibleFilters, supportedMeasures, supportedAttributes, measureFormatMap, selectedMeasure, selectedAttribute, selectedValue, weekStart, timezone, }) {
|
|
12
|
+
const { isFilterRestricted } = useAutomationsContext();
|
|
13
|
+
// Read from the loaded alert, not from the draft, so an entry the dashboard cannot name survives
|
|
14
|
+
// every rewrite of the filter list.
|
|
15
|
+
const restrictedFallback = useMemo(() => ({
|
|
16
|
+
storedVisibleFilters: alertToEdit?.metadata?.visibleFilters,
|
|
17
|
+
isFilterRestricted,
|
|
18
|
+
}), [alertToEdit, isFilterRestricted]);
|
|
11
19
|
const applyFiltersToDraft = useCallback((filters) => {
|
|
12
20
|
setEditedAutomation((s) => {
|
|
13
21
|
if (!s) {
|
|
14
22
|
return undefined;
|
|
15
23
|
}
|
|
16
24
|
const appliedFilters = getAppliedWidgetFilters(filters, dashboardHiddenFilters, widget, insight, commonDateFilterId, true, !s.metadata?.widget);
|
|
17
|
-
const visibleFilters = getVisibleFiltersByFilters(filters, availableFiltersAsVisibleFilters, true);
|
|
25
|
+
const visibleFilters = getVisibleFiltersByFilters(filters, availableFiltersAsVisibleFilters, true, restrictedFallback);
|
|
18
26
|
const updatedAutomationWithFilters = {
|
|
19
27
|
...s,
|
|
20
28
|
alert: {
|
|
@@ -41,6 +49,7 @@ export function useAlertDraftFilterWrites({ setEditedAutomation, dashboardHidden
|
|
|
41
49
|
}, [
|
|
42
50
|
setEditedAutomation,
|
|
43
51
|
availableFiltersAsVisibleFilters,
|
|
52
|
+
restrictedFallback,
|
|
44
53
|
widget,
|
|
45
54
|
insight,
|
|
46
55
|
dashboardHiddenFilters,
|
|
@@ -219,26 +219,20 @@ function collectAllMetric(insight, alert) {
|
|
|
219
219
|
if (alert.alert?.condition.type === "comparison") {
|
|
220
220
|
const left = alert.alert?.condition.left;
|
|
221
221
|
return {
|
|
222
|
-
primaries:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
newMeasure(left.id, (a) => a.format(left.format).title(left.title).localId(left.id)),
|
|
226
|
-
]
|
|
227
|
-
: []),
|
|
228
|
-
],
|
|
222
|
+
primaries: left
|
|
223
|
+
? [newMeasure(left.id, (a) => a.format(left.format).title(left.title).localId(left.id))]
|
|
224
|
+
: [],
|
|
229
225
|
others: [],
|
|
230
226
|
};
|
|
231
227
|
}
|
|
232
228
|
if (alert.alert?.condition.type === "anomalyDetection") {
|
|
233
229
|
const measure = alert.alert?.condition.measure;
|
|
234
230
|
return {
|
|
235
|
-
primaries:
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
: []),
|
|
241
|
-
],
|
|
231
|
+
primaries: measure
|
|
232
|
+
? [
|
|
233
|
+
newMeasure(measure.id, (a) => a.format(measure.format).title(measure.title).localId(measure.id)),
|
|
234
|
+
]
|
|
235
|
+
: [],
|
|
242
236
|
others: [],
|
|
243
237
|
};
|
|
244
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildAutomationsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useBuildAutomationsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.ts"],"names":[],"mappings":"AA2FA,OAAO,KAAK,EACR,wBAAwB,EAG3B,MAAM,sCAAsC,CAAC;AAI9C,wBAAgB,0BAA0B,IAAI,wBAAwB,CAiQrE"}
|