@gooddata/sdk-ui-dashboard 11.43.0-alpha.3 → 11.43.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/NOTICE +641 -841
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +3 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -2
- package/esm/model/react/useWidgetExecConfig.d.ts +5 -3
- package/esm/model/react/useWidgetExecConfig.d.ts.map +1 -1
- package/esm/model/react/useWidgetExecConfig.js +8 -4
- package/esm/model/store/config/configSelectors.js +1 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +19 -0
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.js +46 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +13 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.js +24 -30
- package/esm/presentation/automations/_staging/alerting/AlertingManagementDialog.d.ts +1 -1
- package/esm/presentation/automations/_staging/alerting/AlertingManagementDialog.d.ts.map +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentBasic.js +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogContentEnhanced.js +3 -3
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogNew.d.ts +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogNew.d.ts.map +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/components/Alert.js +2 -2
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/components/AlertDropdown.d.ts +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/components/AlertDropdown.d.ts.map +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/hooks/useAlertValidation.d.ts.map +1 -0
- package/esm/presentation/automations/_staging/alerting/{DefaultAlertingDialog → DefaultAlertingManagementDialog}/hooks/useAlertValidation.js +2 -2
- package/esm/presentation/automations/alerting/AlertingDialog.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/AlertingDialog.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +21 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/DefaultAlertingDialog.js +58 -56
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/DefaultLoadingAlertingDialog.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertComparisonOperatorSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertComparisonPeriodSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertDeleteDialog.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertDestinationSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertGranularitySelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertMeasureSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertSensitivitySelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertThresholdInput.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertTriggerIntervalSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/components/AlertTriggerModeSelect.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/constants.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertValidation.d.ts +7 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertValidation.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertValidation.js +16 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useAttributeValuesFromExecResults.d.ts +6 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAttributeValuesFromExecResults.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useAttributeValuesFromExecResults.js +31 -5
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useEditAlert.d.ts +7 -7
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useEditAlert.js +15 -45
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useOperators.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useThresholdValue.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/messages.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/convertors.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/cron.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/getters.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/granularity.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/guards.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/items.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/responsive.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/threshold.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/transformation.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/DeleteAlertConfirmDialog.d.ts +11 -0
- package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/DeleteAlertConfirmDialog.d.ts.map +1 -0
- package/esm/presentation/automations/alerting/DefaultAlertingManagementDialog/components/DeleteAlertConfirmDialog.js +35 -0
- package/esm/presentation/automations/alerting/hooks/useGetSupportedMeasures.d.ts.map +1 -0
- package/esm/presentation/automations/{_staging/alerting → alerting}/hooks/useGetSupportedMeasures.js +2 -6
- package/esm/presentation/automations/{_staging/alerting → alerting}/types.d.ts +5 -3
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -0
- package/esm/presentation/automations/connectors/AlertingConnector.d.ts +27 -0
- package/esm/presentation/automations/connectors/AlertingConnector.d.ts.map +1 -0
- package/esm/presentation/automations/connectors/AlertingConnector.js +72 -0
- package/esm/presentation/automations/connectors/hooks/sanitizeAutomationForSave.d.ts +15 -0
- package/esm/presentation/automations/connectors/hooks/sanitizeAutomationForSave.d.ts.map +1 -0
- package/esm/presentation/automations/connectors/hooks/sanitizeAutomationForSave.js +25 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts +9 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts.map +1 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.js +128 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.d.ts +2 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.d.ts.map +1 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.js +66 -0
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +65 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.js +27 -0
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +32 -0
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -0
- package/esm/presentation/automations/contexts/AlertingDialogContext.js +11 -0
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts +20 -1
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AutomationsContext.js +4 -1
- package/esm/presentation/automations/contexts/AutomationsContext.test.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +2 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useFiltersForDashboardScheduledExportInfo.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.js +19 -0
- package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProvider.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProvider.js +18 -4
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.d.ts +5 -4
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeChrome.js +30 -48
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts +37 -0
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.d.ts.map +1 -0
- package/esm/presentation/dashboard/DashboardSidebar/SidebarResizeContext.js +90 -0
- package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
- package/esm/presentation/dashboard/components/DashboardInner.js +24 -14
- package/esm/presentation/dashboard/components/DashboardRenderer.js +1 -1
- package/esm/presentation/dashboard/types.d.ts +1 -1
- package/esm/presentation/dashboard/types.d.ts.map +1 -1
- package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts +1 -1
- package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.js +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.d.ts +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js +6 -28
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.d.ts +0 -3
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.d.ts.map +1 -1
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.js +16 -3
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +11 -2
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +4 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -1
- package/esm/presentation/topBar/menuButton/DefaultMenuButton.d.ts.map +1 -1
- package/esm/presentation/topBar/menuButton/DefaultMenuButton.js +9 -9
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.d.ts +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertTitle.js +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts +2 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts +2 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +23 -14
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlertConfiguration.js +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts +2 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js +4 -4
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.d.ts +3 -3
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.js +5 -5
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.d.ts +0 -11
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.js +2 -17
- package/esm/presentation/widget/insight/configuration/InsightAlertsNew.js +3 -3
- package/esm/sdk-ui-dashboard.d.ts +18 -1
- package/package.json +20 -20
- package/styles/css/configurationPanel.css +2 -3
- package/styles/css/configurationPanel.css.map +1 -1
- package/styles/css/dashboard.css +7 -7
- package/styles/css/drillSelect.css +0 -49
- package/styles/css/drillSelect.css.map +1 -1
- package/styles/css/main.css +8799 -11451
- package/styles/css/main.css.map +1 -1
- package/styles/css/notifications_channels_dialog.css +7 -7
- package/styles/css/topBar.css +3 -5
- package/styles/css/topBar.css.map +1 -1
- package/styles/scss/configurationPanel.scss +2 -3
- package/styles/scss/drillSelect.scss +0 -65
- package/styles/scss/notifications_channels_dialog.scss +1 -1
- package/styles/scss/topBar.scss +3 -9
- package/esm/presentation/automations/_staging/alerting/AlertingDialog.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +0 -7
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertComparisonOperatorSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertComparisonPeriodSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertDeleteDialog.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertDestinationSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertGranularitySelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertMeasureSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertSensitivitySelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertThresholdInput.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertTriggerIntervalSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/components/AlertTriggerModeSelect.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/constants.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useAlertValidation.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useAttributeValuesFromExecResults.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useOperators.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useThresholdValue.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/messages.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/convertors.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/cron.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/getters.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/granularity.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/guards.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/items.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/responsive.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/threshold.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/utils/transformation.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/hooks/useGetSupportedMeasures.d.ts.map +0 -1
- package/esm/presentation/automations/_staging/alerting/types.d.ts.map +0 -1
- package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProviderNew.d.ts +0 -2
- package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProviderNew.d.ts.map +0 -1
- package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProviderNew.js +0 -28
- /package/esm/presentation/automations/_staging/alerting/{DefaultAlertingDialog → DefaultAlertingManagementDialog}/hooks/useAlertValidation.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/AlertingDialog.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/AlertingDialogHeader.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/AlertingDialogHeader.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertAttributeSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertAttributeSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertComparisonOperatorSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertComparisonOperatorSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertComparisonPeriodSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertComparisonPeriodSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertDeleteDialog.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertDeleteDialog.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertDestinationSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertDestinationSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertGranularitySelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertGranularitySelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertMeasureSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertMeasureSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertSensitivitySelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertSensitivitySelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertThresholdInput.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertThresholdInput.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertTriggerIntervalSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertTriggerIntervalSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertTriggerModeSelect.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/components/AlertTriggerModeSelect.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/constants.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/constants.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useOperators.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useOperators.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useThresholdValue.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/hooks/useThresholdValue.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/messages.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/messages.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/convertors.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/convertors.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/cron.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/cron.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/getters.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/getters.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/granularity.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/granularity.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/guards.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/guards.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/items.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/items.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/responsive.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/responsive.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/threshold.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/threshold.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/transformation.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/DefaultAlertingDialog/utils/transformation.js +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/hooks/useGetSupportedMeasures.d.ts +0 -0
- /package/esm/presentation/automations/{_staging/alerting → alerting}/types.js +0 -0
|
@@ -4,22 +4,13 @@ import { isEqual } from "lodash-es";
|
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { isAutomationExternalUserRecipient, isAutomationUnknownUserRecipient, isAutomationUserRecipient, } from "@gooddata/sdk-model";
|
|
6
6
|
import { fillMissingTitles } from "@gooddata/sdk-ui";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { selectDashboardDescriptor, selectDashboardId, } from "../../../../../../model/store/meta/metaSelectors.js";
|
|
15
|
-
import { selectWidgetLocalIdToTabIdMap } from "../../../../../../model/store/tabs/layout/layoutSelectors.js";
|
|
16
|
-
import { selectEffectiveParameterValuesForWidget } from "../../../../../../model/store/tabs/parameters/parametersSelectors.js";
|
|
17
|
-
import { selectCurrentUser } from "../../../../../../model/store/user/userSelectors.js";
|
|
18
|
-
import { selectUsers } from "../../../../../../model/store/users/usersSelectors.js";
|
|
19
|
-
import { isEmail } from "../../../../scheduledEmail/utils/validate.js";
|
|
20
|
-
import { setAlertExecutionParameters } from "../../../../shared/automationFilters/automationParameters.js";
|
|
21
|
-
import { useAutomationAlertParameters } from "../../../../shared/automationFilters/useAutomationAlertParameters.js";
|
|
22
|
-
import { getAppliedWidgetFilters, getVisibleFiltersByFilters, resolveMvfDimensionalityLocalRefs, } from "../../../../shared/automationFilters/utils.js";
|
|
7
|
+
import { useAlertingDialogContext } from "../../../contexts/AlertingDialogContext.js";
|
|
8
|
+
import { useAutomationsContext } from "../../../contexts/AutomationsContext.js";
|
|
9
|
+
import { isEmail } from "../../../scheduledEmail/utils/validate.js";
|
|
10
|
+
import { setAlertExecutionParameters } from "../../../shared/automationFilters/automationParameters.js";
|
|
11
|
+
import { useAutomationAlertParameters } from "../../../shared/automationFilters/useAutomationAlertParameters.js";
|
|
12
|
+
import { getAppliedWidgetFilters, getVisibleFiltersByFilters, resolveMvfDimensionalityLocalRefs, } from "../../../shared/automationFilters/utils.js";
|
|
13
|
+
import { convertCurrentUserToAutomationRecipient, convertCurrentUserToWorkspaceUser, convertExternalRecipientToAutomationRecipient, } from "../../../shared/utils/automationUtils.js";
|
|
23
14
|
import { createDefaultAlert } from "../utils/convertors.js";
|
|
24
15
|
import { getAlertAiOperator, getAlertAttribute, getAlertCompareOperator, getAlertComparison, getAlertGranularity, getAlertMeasure, getAlertRelativeOperator, getAlertSensitivity, getMeasureFormatsFromExecution, } from "../utils/getters.js";
|
|
25
16
|
import { isAlertValueDefined } from "../utils/guards.js";
|
|
@@ -28,33 +19,12 @@ import { transformAlertByAnomalyDetection, transformAlertByAttribute, transformA
|
|
|
28
19
|
import { useAlertValidation } from "./useAlertValidation.js";
|
|
29
20
|
import { useAttributeValuesFromExecResults } from "./useAttributeValuesFromExecResults.js";
|
|
30
21
|
import { useThresholdValue } from "./useThresholdValue.js";
|
|
31
|
-
|
|
32
|
-
export function useEditAlert({ alertToEdit, notificationChannels, insight, widget, editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
|
|
22
|
+
export function useEditAlert({ alertToEdit, notificationChannels, insight, widget, users, editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
|
|
33
23
|
const intl = useIntl();
|
|
34
|
-
|
|
35
|
-
const locale = useDashboardSelector(selectLocale);
|
|
36
|
-
const canManageComparison = useDashboardSelector(selectEnableComparisonInAlerting);
|
|
37
|
-
const catalogDateDatasets = useDashboardSelector(selectCatalogDateDatasets);
|
|
38
|
-
const execResult = useDashboardSelector(selectExecutionResultByRef(widget?.ref));
|
|
39
|
-
const catalogAttributes = useDashboardSelector(selectCatalogAttributes);
|
|
40
|
-
const currentUser = useDashboardSelector(selectCurrentUser);
|
|
41
|
-
const users = useDashboardSelector(selectUsers);
|
|
42
|
-
const enabledExternalRecipients = useDashboardSelector(selectEnableExternalRecipients);
|
|
43
|
-
const descriptor = useDashboardSelector(selectDashboardDescriptor);
|
|
44
|
-
const settings = useDashboardSelector(selectSettings);
|
|
45
|
-
const canManageAttributes = useDashboardSelector(selectEnableAlertAttributes);
|
|
46
|
-
const dashboardId = useDashboardSelector(selectDashboardId);
|
|
47
|
-
const separators = useDashboardSelector(selectSeparators);
|
|
48
|
-
const dashboardHiddenFilters = useDashboardSelector(selectDashboardHiddenFilters);
|
|
49
|
-
const enableAlertOncePerInterval = useDashboardSelector(selectEnableAlertOncePerInterval);
|
|
50
|
-
const commonDateFilterId = useDashboardSelector(selectAutomationCommonDateFilterId);
|
|
51
|
-
const weekStart = useDashboardSelector(selectWeekStart);
|
|
52
|
-
const timezone = useDashboardSelector(selectTimezone);
|
|
53
|
-
const parameterValues = useDashboardSelector(selectEffectiveParameterValuesForWidget(widget?.ref));
|
|
24
|
+
const { locale, catalogDateDatasets, catalogAttributes, currentUser, separators, weekStart, timezone, settings, allowHourlyRecurrence, features: { enableComparisonInAlerting: canManageComparison, enableExternalRecipients: enabledExternalRecipients, enableAlertAttributes: canManageAttributes, enableAlertOncePerInterval, }, } = useAutomationsContext();
|
|
54
25
|
const isInvalidConnectionToInsight = alertToEdit?.metadata?.widget && !insight;
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const widgetTabMap = useDashboardSelector(selectWidgetLocalIdToTabIdMap);
|
|
26
|
+
const { executionResultByRef, dashboardId, hiddenFilters: dashboardHiddenFilters, commonDateFilterId, dashboardEvaluationFrequency, widgetLocalIdToTabIdMap: widgetTabMap, parameterValues, } = useAlertingDialogContext();
|
|
27
|
+
const execResult = executionResultByRef(widget?.ref);
|
|
58
28
|
// Determine target tab ID if widget is present
|
|
59
29
|
const targetTabIdentifier = widget?.localIdentifier ? widgetTabMap[widget.localIdentifier] : undefined;
|
|
60
30
|
// Computed values
|
|
@@ -109,10 +79,10 @@ export function useEditAlert({ alertToEdit, notificationChannels, insight, widge
|
|
|
109
79
|
if (resolvedAlertToEdit) {
|
|
110
80
|
return resolvedAlertToEdit;
|
|
111
81
|
}
|
|
112
|
-
const defaultNewAlert = createDefaultAlert(getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, true, false), supportedMeasures, defaultMeasure, defaultNotificationChannelId, defaultRecipient, measureFormatMap, undefined,
|
|
82
|
+
const defaultNewAlert = createDefaultAlert(getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, true, false), supportedMeasures, defaultMeasure, defaultNotificationChannelId, defaultRecipient, measureFormatMap, undefined, dashboardEvaluationFrequency
|
|
113
83
|
? {
|
|
114
|
-
cron:
|
|
115
|
-
timezone: settings
|
|
84
|
+
cron: dashboardEvaluationFrequency,
|
|
85
|
+
timezone: settings?.alertDefault?.defaultTimezone,
|
|
116
86
|
}
|
|
117
87
|
: undefined, getVisibleFiltersByFilters(editedAutomationFilters, availableFiltersAsVisibleFilters, true), widget?.localIdentifier, dashboardId, widget?.title, targetTabIdentifier);
|
|
118
88
|
return defaultNewAlert && parameterValues.length > 0
|
|
@@ -135,7 +105,7 @@ export function useEditAlert({ alertToEdit, notificationChannels, insight, widge
|
|
|
135
105
|
const selectedNotificationChannel = notificationChannels.find((channel) => channel.id === editedAutomation?.notificationChannel);
|
|
136
106
|
const allowExternalRecipients = selectedNotificationChannel?.allowedRecipients === "external" && enabledExternalRecipients;
|
|
137
107
|
const allowOnlyLoggedUserRecipients = selectedNotificationChannel?.allowedRecipients === "creator";
|
|
138
|
-
const { isValid: isOriginalAutomationValid, invalidityReason } = useAlertValidation(originalAutomation);
|
|
108
|
+
const { isValid: isOriginalAutomationValid, invalidityReason } = useAlertValidation(originalAutomation, widget, insight, catalogDateDatasets, undefined, canManageComparison);
|
|
139
109
|
const isParentValid = invalidityReason !== "missingWidget";
|
|
140
110
|
//
|
|
141
111
|
// Handlers
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useOperators.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOperators.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useOperators.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,gBAAgB,CAAC;AAY7E,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,sBAAsB,EAAE,OAAO,wDAwB7F"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useThresholdValue.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThresholdValue.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useThresholdValue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAoC,MAAM,OAAO,CAAC;AAI5F,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAgCvE,wBAAgB,iBAAiB,CAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,EACpG,UAAU,CAAC,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,gBAAgB,EACxB,wBAAwB,GAAE;IACtB,sBAAsB,GAAG,SAAS;IAClC,gCAAgC,GAAG,SAAS;CACtB,EAC1B,eAAe,CAAC,EAAE,WAAW,EAC7B,iBAAiB,CAAC,EAAE,cAAc,EAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;;;;;EAkFhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/messages.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2InB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertors.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/convertors.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,wBAAwB,EAG7B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,OAAO,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,KAAK,iBAAiB,EAAqC,MAAM,cAAc,CAAC;AAGzF;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE,oBAAoB,EACjC,gBAAgB,EAAE,iBAAiB,EACnC,kBAAkB,GAAE,wBAAyC,EAC7D,QAAQ,CAAC,EAAE,mBAAmB,EAC9B,oBAAoB,CAAC,EAAE,wBAAwB,EAAE,EACjD,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,MAAM,GAC7B,mCAAmC,GAAG,SAAS,CAmDjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/cron.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iCAAiC,EAAE,KAAK,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE1G,wBAAgB,yBAAyB,CACrC,WAAW,CAAC,EAAE,iCAAiC,EAC/C,SAAS,CAAC,EAAE,SAAS,GACtB,MAAM,CAuBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/getters.ts"],"names":[],"mappings":"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"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/granularity.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"granularity.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/granularity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAoBpG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/guards.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAG5F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAKlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAKtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAEpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAE9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAWrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAEjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/items.ts"],"names":[],"mappings":"AAEA,OAAO,EAIH,KAAK,yBAAyB,EAE9B,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EAExB,KAAK,QAAQ,EAqBhB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAA6B,MAAM,gBAAgB,CAAC;AAgElG;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAChD,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACpC,YAAY,GAAE,mBAAmB,EAAO,EACxC,mBAAmB,GAAE,OAAe,EACpC,KAAK,CAAC,EAAE,yBAAyB,GAClC,WAAW,EAAE,CAoCf;AA4BD;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACpC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,YAAY,GAAE,mBAAmB,EAAO,EACxC,KAAK,CAAC,EAAE,yBAAyB,GAClC,cAAc,EAAE,CAMlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/responsive.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,eAA2D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/threshold.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoBxF"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/utils/transformation.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/utils/transformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type IAutomationMetadataObject } from "@gooddata/sdk-model";
|
|
2
|
+
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
3
|
+
interface IDeleteAlertConfirmDialogProps {
|
|
4
|
+
alert: IAutomationMetadataObject;
|
|
5
|
+
onCancel: () => void;
|
|
6
|
+
onSuccess?: (alert: IAutomationMetadataObject) => void;
|
|
7
|
+
onError?: (error: GoodDataSdkError) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function DeleteAlertConfirmDialog({ alert, onCancel, onSuccess, onError }: IDeleteAlertConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=DeleteAlertConfirmDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteAlertConfirmDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingManagementDialog/components/DeleteAlertConfirmDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,gBAAgB,EAAsD,MAAM,kBAAkB,CAAC;AAK7G,UAAU,8BAA8B;IACpC,KAAK,EAAE,yBAAyB,CAAC;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,wBAAwB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACV,EAAE,8BAA8B,2CA2DhC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FormattedMessage, useIntl } from "react-intl";
|
|
3
|
+
import { convertError, useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
4
|
+
import { ConfirmDialog } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
import { useAutomationsContext } from "../../../contexts/AutomationsContext.js";
|
|
6
|
+
export function DeleteAlertConfirmDialog({ alert, onCancel, onSuccess, onError, }) {
|
|
7
|
+
const effectiveBackend = useBackendStrict();
|
|
8
|
+
const effectiveWorkspace = useWorkspaceStrict();
|
|
9
|
+
const intl = useIntl();
|
|
10
|
+
const { features: { canManageWorkspace: canManageAutomations }, currentUser, } = useAutomationsContext();
|
|
11
|
+
const handleDeleteAlert = async () => {
|
|
12
|
+
try {
|
|
13
|
+
const alertCreatorId = alert.createdBy?.login;
|
|
14
|
+
const currentUserId = currentUser?.login;
|
|
15
|
+
const isAlertCreatedByCurrentUser = !!alertCreatorId && !!currentUserId && alertCreatorId === currentUserId;
|
|
16
|
+
const automationService = effectiveBackend.workspace(effectiveWorkspace).automations();
|
|
17
|
+
// If alert is created by current user, or user has permissions to manage automations, delete it, otherwise unsubscribe
|
|
18
|
+
const deleteMethod = canManageAutomations || isAlertCreatedByCurrentUser
|
|
19
|
+
? automationService.deleteAutomation.bind(automationService)
|
|
20
|
+
: automationService.unsubscribeAutomation.bind(automationService);
|
|
21
|
+
await deleteMethod(alert.id);
|
|
22
|
+
onSuccess?.(alert);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
onError?.(convertError(err));
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
return (_jsx(ConfirmDialog, { displayCloseButton: true, isPositive: false, headline: intl.formatMessage({ id: "dialogs.alerting.management.delete.dialog" }), cancelButtonText: intl.formatMessage({ id: "cancel" }), submitButtonText: intl.formatMessage({ id: "delete" }), onSubmit: () => {
|
|
29
|
+
void handleDeleteAlert();
|
|
30
|
+
}, onClose: onCancel, onCancel: onCancel, className: "gd-notifications-channel-delete-dialog s-alert-delete-dialog", containerClassName: "gd-notifications-channel-delete-dialog-overlay", children: _jsx("span", { className: "s-alert-delete-dialog-content", children: _jsx(FormattedMessage, { id: "dialogs.alerting.management.delete.dialog.confirm", values: {
|
|
31
|
+
b: (chunks) => (_jsxs("span", { className: "gd-notifications-channel-delete-dialog-text", children: [chunks, " ",
|
|
32
|
+
_jsx("strong", { children: alert.title })
|
|
33
|
+
] })),
|
|
34
|
+
} }) }) }));
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetSupportedMeasures.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/hooks/useGetSupportedMeasures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,kDAiBnC,CAAC"}
|
package/esm/presentation/automations/{_staging/alerting → alerting}/hooks/useGetSupportedMeasures.js
RENAMED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useEffect, useMemo, useState } from "react";
|
|
3
3
|
import { fillMissingTitles } from "@gooddata/sdk-ui";
|
|
4
|
-
import {
|
|
5
|
-
import { selectCatalogDateDatasets } from "../../../../../model/store/catalog/catalogSelectors.js";
|
|
6
|
-
import { selectEnableComparisonInAlerting, selectLocale, } from "../../../../../model/store/config/configSelectors.js";
|
|
4
|
+
import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
|
|
7
5
|
import { getSupportedInsightMeasuresByInsight } from "../DefaultAlertingDialog/utils/items.js";
|
|
8
6
|
/**
|
|
9
7
|
* Hook that calculates supported alertable measures for an insight.
|
|
@@ -13,9 +11,7 @@ import { getSupportedInsightMeasuresByInsight } from "../DefaultAlertingDialog/u
|
|
|
13
11
|
* @internal
|
|
14
12
|
*/
|
|
15
13
|
export const useGetSupportedMeasures = (insight) => {
|
|
16
|
-
const catalogDateDatasets =
|
|
17
|
-
const canManageComparison = useDashboardSelector(selectEnableComparisonInAlerting);
|
|
18
|
-
const locale = useDashboardSelector(selectLocale);
|
|
14
|
+
const { catalogDateDatasets, locale, features: { enableComparisonInAlerting: canManageComparison }, } = useAutomationsContext();
|
|
19
15
|
const [effectiveInsight, setEffectiveInsight] = useState(undefined);
|
|
20
16
|
useEffect(() => {
|
|
21
17
|
if (insight) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type ComponentType } from "react";
|
|
2
|
-
import { type DateAttributeGranularity, type IAttribute, type IAutomationMetadataObject, type IDataSetMetadataObject, type IInsight, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWorkspaceUser } from "@gooddata/sdk-model";
|
|
2
|
+
import { type DateAttributeGranularity, type IAttribute, type IAutomationMetadataObject, type IDataSetMetadataObject, type IInsight, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWidget, type IWorkspaceUser } from "@gooddata/sdk-model";
|
|
3
3
|
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
4
|
-
import type { ExtendedDashboardWidget } from "../../../../model/types/layoutTypes.js";
|
|
5
4
|
/**
|
|
6
5
|
* @alpha
|
|
7
6
|
*/
|
|
@@ -26,8 +25,11 @@ export interface IAlertingDialogProps {
|
|
|
26
25
|
* Widget to be used for alert.
|
|
27
26
|
*
|
|
28
27
|
* Note: this is available only when alerting for widget, not dashboard.
|
|
28
|
+
* Typed as IWidget (not ExtendedDashboardWidget) because the dialog only
|
|
29
|
+
* supports insight widgets; custom widgets and nested layouts are not valid
|
|
30
|
+
* alert targets and were silently discarded at the connector boundary anyway.
|
|
29
31
|
*/
|
|
30
|
-
widget?:
|
|
32
|
+
widget?: IWidget;
|
|
31
33
|
/**
|
|
32
34
|
* Insight to be used for alert.
|
|
33
35
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,OAAO,EACZ,KAAK,cAAc,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,yBAAyB,CAAC;IAExC;;OAEG;IACH,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;OAEG;IACH,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAE9F;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAEjE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAElC;;OAEG;IACH,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAE9F;;OAEG;IACH,WAAW,EAAE,yBAAyB,EAAE,CAAC;IAEzC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAElD;;;;OAIG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3E;;;;OAIG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnE;AAMD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,uCAAuC,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD;;GAEG;AACH,oBAAY,yBAAyB;IACjC,cAAc,IAAA;IACd,sBAAsB,IAAA;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,yBAAyB,CAAC;IAEtC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,WAAW,CAAC,EAAE,wBAAwB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,qBAAqB,EAAE,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;CACvC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Provides AutomationsContext to its children, built from dashboard Redux state.
|
|
4
|
+
* Use this to wrap alerting dialog subtrees that need access to automation data
|
|
5
|
+
* (e.g. the management dialog bridge in AlertingDialogProvider).
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function AlertingAutomationsProvider({ children }: {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}): ReactElement;
|
|
12
|
+
/**
|
|
13
|
+
* Connector component that reads from the dashboard Redux store and wires up
|
|
14
|
+
* the alerting dialog tree via context providers.
|
|
15
|
+
*
|
|
16
|
+
* This is the primary bridge between dashboard store state and the alerting
|
|
17
|
+
* dialog tree. One transitive exception remains: useAutomationAlertParameters
|
|
18
|
+
* (in shared/automationFilters) still reads the store via useDashboardSelector,
|
|
19
|
+
* so alerting is not yet fully decoupled. That coupling is an explicit
|
|
20
|
+
* carve-out frozen in the `automationFilters` allowlist of .dependency-cruiser.js
|
|
21
|
+
* (see the GDP-3167 note there) and is tracked for a Phase 3 move behind this
|
|
22
|
+
* connector.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare function AlertingConnector(): ReactElement | null;
|
|
27
|
+
//# sourceMappingURL=AlertingConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertingConnector.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/AlertingConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB1D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAG/F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,GAAG,IAAI,CAMvD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { isWidget } from "@gooddata/sdk-model";
|
|
3
|
+
import { useDashboardAlerts } from "../../../model/react/useDashboardAlerting/useDashboardAlerts.js";
|
|
4
|
+
import { useWorkspaceUsers } from "../../../model/react/useWorkspaceUsers.js";
|
|
5
|
+
import { AlertingDialog } from "../alerting/AlertingDialog.js";
|
|
6
|
+
import { AlertingDialogContextProvider } from "../contexts/AlertingDialogContext.js";
|
|
7
|
+
import { AutomationsContextProvider } from "../contexts/AutomationsContext.js";
|
|
8
|
+
import { useBuildAlertingDialogContext } from "./hooks/useBuildAlertingDialogContext.js";
|
|
9
|
+
import { useBuildAutomationsContext } from "./hooks/useBuildAutomationsContext.js";
|
|
10
|
+
/**
|
|
11
|
+
* Provides AutomationsContext to its children, built from dashboard Redux state.
|
|
12
|
+
* Use this to wrap alerting dialog subtrees that need access to automation data
|
|
13
|
+
* (e.g. the management dialog bridge in AlertingDialogProvider).
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export function AlertingAutomationsProvider({ children }) {
|
|
18
|
+
const automationsCtx = useBuildAutomationsContext();
|
|
19
|
+
return _jsx(AutomationsContextProvider, { value: automationsCtx, children: children });
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Connector component that reads from the dashboard Redux store and wires up
|
|
23
|
+
* the alerting dialog tree via context providers.
|
|
24
|
+
*
|
|
25
|
+
* This is the primary bridge between dashboard store state and the alerting
|
|
26
|
+
* dialog tree. One transitive exception remains: useAutomationAlertParameters
|
|
27
|
+
* (in shared/automationFilters) still reads the store via useDashboardSelector,
|
|
28
|
+
* so alerting is not yet fully decoupled. That coupling is an explicit
|
|
29
|
+
* carve-out frozen in the `automationFilters` allowlist of .dependency-cruiser.js
|
|
30
|
+
* (see the GDP-3167 note there) and is tracked for a Phase 3 move behind this
|
|
31
|
+
* connector.
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export function AlertingConnector() {
|
|
36
|
+
const alerts = useDashboardAlerts();
|
|
37
|
+
if (!alerts.isInitialized) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return _jsx(AlertingConnectorInitialized, { ...alerts });
|
|
41
|
+
}
|
|
42
|
+
function AlertingConnectorInitialized(alerts) {
|
|
43
|
+
if (!alerts.isAlertDialogOpen) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return _jsx(AlertingConnectorWithData, { alerts: alerts });
|
|
47
|
+
}
|
|
48
|
+
function AlertingConnectorWithData({ alerts }) {
|
|
49
|
+
const { alertToEdit, automationsLoading, notificationChannels, isAlertDialogOpen, onAlertingCancel, onAlertingCreateSuccess, onAlertingCreateError, onAlertingSaveSuccess, onAlertingSaveError, onAlertingManagementDeleteSuccess, onAlertingManagementDeleteError, widget, insight, } = alerts;
|
|
50
|
+
const insightWidget = isWidget(widget) ? widget : undefined;
|
|
51
|
+
const alertingCtx = useBuildAlertingDialogContext({
|
|
52
|
+
mode: alertToEdit ? "edit" : "create",
|
|
53
|
+
widget: insightWidget,
|
|
54
|
+
insight,
|
|
55
|
+
});
|
|
56
|
+
return (_jsx(AlertingDialogContextProvider, { value: alertingCtx, children: isAlertDialogOpen ? (
|
|
57
|
+
// TODO(GDP-3167 phase3): notificationChannels, users, usersError, and isLoading
|
|
58
|
+
// are still prop-threaded here because DefaultAlertingDialog reads them from props,
|
|
59
|
+
// not from AutomationsContext. Once all dialog fields are migrated to read from
|
|
60
|
+
// context, remove these props and the corresponding prop types.
|
|
61
|
+
_jsx(AlertingDialogWithUsers, { alertToEdit: alertToEdit, notificationChannels: notificationChannels, widget: insightWidget, insight: insight, isLoading: automationsLoading, onCancel: onAlertingCancel, onError: onAlertingCreateError, onSuccess: onAlertingCreateSuccess, onSaveError: onAlertingSaveError, onSaveSuccess: onAlertingSaveSuccess, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError })) : null }));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Loads workspace users only while the create/edit dialog is mounted. Keeping the
|
|
65
|
+
* `useWorkspaceUsers()` call in this child (rather than in AlertingConnectorWithData) means that
|
|
66
|
+
* opening only the management dialog — which does not consume users — never dispatches the
|
|
67
|
+
* workspace-users load, matching the pre-separation behavior.
|
|
68
|
+
*/
|
|
69
|
+
function AlertingDialogWithUsers(props) {
|
|
70
|
+
const { users, status: usersStatus, usersError } = useWorkspaceUsers();
|
|
71
|
+
return (_jsx(AlertingDialog, { ...props, users: users ?? [], usersError: usersError, isLoading: props.isLoading || usersStatus === "pending" || usersStatus === "loading" }));
|
|
72
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes an automation before it is persisted. Drops the backend-derived
|
|
4
|
+
* `schedule.cronDescription` and strips noop (all-values) attribute filters from
|
|
5
|
+
* the alert execution.
|
|
6
|
+
*
|
|
7
|
+
* Shared by the create/edit save path and the management pause/resume path so
|
|
8
|
+
* every `saveAlert` dispatch sanitizes identically — pause/resume must not
|
|
9
|
+
* round-trip payloads that the normal save intentionally removes.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function sanitizeAutomationForSave(automation: IAutomationMetadataObject): IAutomationMetadataObject;
|
|
14
|
+
export declare function sanitizeAutomationForSave(automation: IAutomationMetadataObjectDefinition): IAutomationMetadataObjectDefinition;
|
|
15
|
+
//# sourceMappingURL=sanitizeAutomationForSave.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizeAutomationForSave.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/sanitizeAutomationForSave.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EAG3C,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,yBAAyB,GAAG,yBAAyB,CAAC;AAC5G,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,mCAAmC,GAChD,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { omit } from "lodash-es";
|
|
3
|
+
import { isAllValuesAttributeFilter, } from "@gooddata/sdk-model";
|
|
4
|
+
export function sanitizeAutomationForSave(automation) {
|
|
5
|
+
let sanitized = { ...automation };
|
|
6
|
+
if (sanitized.schedule) {
|
|
7
|
+
sanitized.schedule = omit(sanitized.schedule, ["cronDescription"]);
|
|
8
|
+
}
|
|
9
|
+
if (sanitized.alert?.execution?.filters) {
|
|
10
|
+
sanitized = {
|
|
11
|
+
...sanitized,
|
|
12
|
+
alert: {
|
|
13
|
+
...sanitized.alert,
|
|
14
|
+
execution: {
|
|
15
|
+
...sanitized.alert.execution,
|
|
16
|
+
filters: removeNoopFiltersFromAlertFilters(sanitized.alert.execution.filters),
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return sanitized;
|
|
22
|
+
}
|
|
23
|
+
function removeNoopFiltersFromAlertFilters(filters) {
|
|
24
|
+
return filters.filter((filter) => !isAllValuesAttributeFilter(filter));
|
|
25
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type IInsight, type IWidget } from "@gooddata/sdk-model";
|
|
2
|
+
import type { IAlertingDialogContextValue } from "../../contexts/AlertingDialogContext.js";
|
|
3
|
+
export interface IUseBuildAlertingDialogContextOpts {
|
|
4
|
+
mode: "create" | "edit";
|
|
5
|
+
widget?: IWidget;
|
|
6
|
+
insight?: IInsight;
|
|
7
|
+
}
|
|
8
|
+
export declare function useBuildAlertingDialogContext(opts: IUseBuildAlertingDialogContextOpts): IAlertingDialogContextValue;
|
|
9
|
+
//# sourceMappingURL=useBuildAlertingDialogContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBuildAlertingDialogContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,QAAQ,EACb,KAAK,OAAO,EAEf,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAI3F,MAAM,WAAW,kCAAkC;IAC/C,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,kCAAkC,GACzC,2BAA2B,CAqJ7B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
3
|
+
import { serializeObjRef, } from "@gooddata/sdk-model";
|
|
4
|
+
import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
5
|
+
import { createAlert, saveAlert } from "../../../../model/commands/alerts.js";
|
|
6
|
+
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
7
|
+
import { useDashboardCommandProcessing } from "../../../../model/react/useDashboardCommandProcessing.js";
|
|
8
|
+
import { selectExecutionResultEntities } from "../../../../model/store/executionResults/executionResultsSelectors.js";
|
|
9
|
+
import { selectAutomationCommonDateFilterId, selectAutomationDefaultSelectedFilters, selectDashboardHiddenFilters, } from "../../../../model/store/filtering/dashboardFilterSelectors.js";
|
|
10
|
+
import { selectDashboardId, selectEvaluationFrequency } from "../../../../model/store/meta/metaSelectors.js";
|
|
11
|
+
import { selectWidgetLocalIdToTabIdMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
|
|
12
|
+
import { selectEffectiveParameterValuesForWidget } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
|
|
13
|
+
import { getWidgetTitle } from "../../../../model/utils/dashboardItemUtils.js";
|
|
14
|
+
import { sanitizeAutomationForSave } from "./sanitizeAutomationForSave.js";
|
|
15
|
+
export function useBuildAlertingDialogContext(opts) {
|
|
16
|
+
const { mode, widget, insight } = opts;
|
|
17
|
+
const backend = useBackendStrict();
|
|
18
|
+
const workspace = useWorkspaceStrict();
|
|
19
|
+
const dashboardFilters = useDashboardSelector(selectAutomationDefaultSelectedFilters);
|
|
20
|
+
const hiddenFilters = useDashboardSelector(selectDashboardHiddenFilters);
|
|
21
|
+
const dashboardId = useDashboardSelector(selectDashboardId);
|
|
22
|
+
const widgetLocalIdToTabIdMap = useDashboardSelector(selectWidgetLocalIdToTabIdMap);
|
|
23
|
+
const executionResultEntities = useDashboardSelector(selectExecutionResultEntities);
|
|
24
|
+
const commonDateFilterId = useDashboardSelector(selectAutomationCommonDateFilterId);
|
|
25
|
+
const dashboardEvaluationFrequency = useDashboardSelector(selectEvaluationFrequency);
|
|
26
|
+
const parameterValues = useDashboardSelector(selectEffectiveParameterValuesForWidget(widget?.ref));
|
|
27
|
+
const widgetTitle = useMemo(() => {
|
|
28
|
+
if (widget) {
|
|
29
|
+
return getWidgetTitle(widget);
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}, [widget]);
|
|
33
|
+
// Keep a ref so the callback below is stable and doesn't cause alertingCtx to
|
|
34
|
+
// change on every execution result arrival (which would reset the Overlay alignment timer).
|
|
35
|
+
const executionResultEntitiesRef = useRef(executionResultEntities);
|
|
36
|
+
executionResultEntitiesRef.current = executionResultEntities;
|
|
37
|
+
const executionResultByRef = useCallback((ref) => {
|
|
38
|
+
if (!ref) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const key = serializeObjRef(ref);
|
|
42
|
+
// Return the store envelope directly. Allocating a fresh wrapper object here
|
|
43
|
+
// would give a new reference on every render, making the consumer's
|
|
44
|
+
// useAttributeValuesFromExecResults useEffect([execResult]) re-fire each render
|
|
45
|
+
// (readAll -> setState -> re-render -> ...), an infinite loop that keeps the
|
|
46
|
+
// alerting dialog Overlay from ever stabilizing (it stays hidden).
|
|
47
|
+
return executionResultEntitiesRef.current[key];
|
|
48
|
+
}, []);
|
|
49
|
+
const createPendingRef = useRef(null);
|
|
50
|
+
const { run: runCreate } = useDashboardCommandProcessing({
|
|
51
|
+
commandCreator: createAlert,
|
|
52
|
+
errorEvent: "GDC.DASH/EVT.COMMAND.FAILED",
|
|
53
|
+
successEvent: "GDC.DASH/EVT.ALERT.CREATED",
|
|
54
|
+
onSuccess: (event) => {
|
|
55
|
+
createPendingRef.current?.resolve(event.payload.alert);
|
|
56
|
+
createPendingRef.current = null;
|
|
57
|
+
},
|
|
58
|
+
onError: (event) => {
|
|
59
|
+
const error = event.payload.error ?? new Error(event.payload.message);
|
|
60
|
+
createPendingRef.current?.reject(error);
|
|
61
|
+
createPendingRef.current = null;
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const createAlertFn = useCallback((alert) => {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
createPendingRef.current = { resolve, reject };
|
|
67
|
+
runCreate(sanitizeAutomationForSave(alert));
|
|
68
|
+
});
|
|
69
|
+
}, [runCreate]);
|
|
70
|
+
const savePendingRef = useRef(null);
|
|
71
|
+
const { run: runSave } = useDashboardCommandProcessing({
|
|
72
|
+
commandCreator: saveAlert,
|
|
73
|
+
errorEvent: "GDC.DASH/EVT.COMMAND.FAILED",
|
|
74
|
+
successEvent: "GDC.DASH/EVT.ALERT.SAVED",
|
|
75
|
+
onSuccess: (event) => {
|
|
76
|
+
savePendingRef.current?.resolve(event.payload.alert);
|
|
77
|
+
savePendingRef.current = null;
|
|
78
|
+
},
|
|
79
|
+
onError: (event) => {
|
|
80
|
+
const error = event.payload.error ?? new Error(event.payload.message);
|
|
81
|
+
savePendingRef.current?.reject(error);
|
|
82
|
+
savePendingRef.current = null;
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
const saveAlertFn = useCallback((alert) => {
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
savePendingRef.current = { resolve, reject };
|
|
88
|
+
runSave(sanitizeAutomationForSave(alert));
|
|
89
|
+
});
|
|
90
|
+
}, [runSave]);
|
|
91
|
+
const deleteAlertFn = useCallback(async (alert) => {
|
|
92
|
+
const automationService = backend.workspace(workspace).automations();
|
|
93
|
+
await automationService.deleteAutomation(alert.id);
|
|
94
|
+
}, [backend, workspace]);
|
|
95
|
+
return useMemo(() => ({
|
|
96
|
+
mode,
|
|
97
|
+
widget,
|
|
98
|
+
insight,
|
|
99
|
+
widgetTitle,
|
|
100
|
+
dashboardId,
|
|
101
|
+
dashboardFilters,
|
|
102
|
+
hiddenFilters,
|
|
103
|
+
widgetLocalIdToTabIdMap,
|
|
104
|
+
executionResultByRef,
|
|
105
|
+
parameterValues,
|
|
106
|
+
commonDateFilterId,
|
|
107
|
+
dashboardEvaluationFrequency,
|
|
108
|
+
createAlert: createAlertFn,
|
|
109
|
+
saveAlert: saveAlertFn,
|
|
110
|
+
deleteAlert: deleteAlertFn,
|
|
111
|
+
}), [
|
|
112
|
+
mode,
|
|
113
|
+
widget,
|
|
114
|
+
insight,
|
|
115
|
+
widgetTitle,
|
|
116
|
+
dashboardId,
|
|
117
|
+
dashboardFilters,
|
|
118
|
+
hiddenFilters,
|
|
119
|
+
widgetLocalIdToTabIdMap,
|
|
120
|
+
executionResultByRef,
|
|
121
|
+
parameterValues,
|
|
122
|
+
commonDateFilterId,
|
|
123
|
+
dashboardEvaluationFrequency,
|
|
124
|
+
createAlertFn,
|
|
125
|
+
saveAlertFn,
|
|
126
|
+
deleteAlertFn,
|
|
127
|
+
]);
|
|
128
|
+
}
|
package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBuildAlertingDialogContext.test.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.tsx"],"names":[],"mappings":""}
|