@gooddata/sdk-ui-dashboard 11.51.0-alpha.1 → 11.51.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +4 -4
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/assets/timezone.svg +1 -0
- package/esm/index.d.ts +11 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +10 -2
- package/esm/model/react/useWidgetExecConfig.d.ts +9 -0
- package/esm/model/react/useWidgetExecConfig.d.ts.map +1 -1
- package/esm/model/react/useWidgetExecConfig.js +21 -3
- package/esm/model/store/config/configSelectors.d.ts +6 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +8 -0
- package/esm/model/store/meta/index.d.ts +1 -0
- package/esm/model/store/meta/index.d.ts.map +1 -1
- package/esm/model/store/meta/metaReducers.d.ts +5 -1
- package/esm/model/store/meta/metaReducers.d.ts.map +1 -1
- package/esm/model/store/meta/metaReducers.js +9 -0
- package/esm/model/store/meta/metaSelectors.d.ts +35 -1
- package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.js +51 -2
- package/esm/model/store/meta/metaState.d.ts +1 -1
- package/esm/model/store/meta/metaState.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +9 -9
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts +7 -2
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +6 -8
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.js +5 -2
- package/esm/presentation/automations/alerting/types.d.ts +30 -5
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/AlertingConnector.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/AlertingConnector.js +22 -25
- package/esm/presentation/automations/connectors/AlertingConnector.test.js +71 -5
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +30 -32
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +90 -9
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts +7 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.js +12 -2
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.js +28 -2
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.d.ts +8 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js +12 -3
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js +38 -8
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts +6 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.js +6 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.js +7 -1
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +29 -1
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AlertingDialogContext.js +12 -0
- package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts +14 -0
- package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AlertingManagementDialogContext.js +12 -0
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts +13 -0
- package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AutomationsContext.js +9 -0
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +35 -1
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +14 -0
- package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts +20 -1
- package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.js +12 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts +7 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +17 -25
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +6 -12
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +5 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.d.ts +12 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.js +41 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.d.ts +1 -3
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.js +2 -2
- package/esm/presentation/automations/scheduledEmail/types.d.ts +35 -5
- package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/utils/timezone.d.ts +4 -1
- package/esm/presentation/automations/scheduledEmail/utils/timezone.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/utils/timezone.js +14 -138
- package/esm/presentation/dashboard/DashboardHeader/SettingsDialogProvider.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/SettingsDialogProvider.js +1 -0
- package/esm/presentation/dashboard/components/DashboardLoading.js +1 -1
- package/esm/presentation/dashboardContexts/useSlideData.d.ts +5 -10
- package/esm/presentation/dashboardContexts/useSlideData.d.ts.map +1 -1
- package/esm/presentation/dashboardContexts/useSlideData.js +16 -10
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.js +52 -14
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts +11 -0
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts.map +1 -0
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.js +36 -0
- package/esm/presentation/dashboardSettingsDialog/types.d.ts +2 -1
- package/esm/presentation/dashboardSettingsDialog/types.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/useDialogData.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/useDialogData.js +4 -1
- package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts.map +1 -1
- package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.js +30 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSection.js +29 -8
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderDescription.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutSectionHeaderDescription.js +3 -5
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/EditableHeader/SectionHeaderEditable.js +3 -5
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.d.ts +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/ExportableDashboardLayoutSectionRenderer.js +2 -5
- package/esm/presentation/insightList/InsightList.d.ts.map +1 -1
- package/esm/presentation/insightList/InsightList.js +4 -5
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +48 -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 +48 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +11 -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 +13 -2
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +11 -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 +11 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +11 -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 +12 -1
- package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.d.ts +10 -0
- package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.d.ts.map +1 -0
- package/esm/presentation/topBar/timezoneIndicator/DefaultTimezoneIndicator.js +19 -0
- package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts +13 -0
- package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts.map +1 -0
- package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.js +27 -0
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts +13 -0
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts.map +1 -0
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.js +20 -0
- package/esm/presentation/topBar/timezoneIndicator/types.d.ts +47 -0
- package/esm/presentation/topBar/timezoneIndicator/types.d.ts.map +1 -0
- package/esm/presentation/topBar/timezoneIndicator/types.js +2 -0
- package/esm/presentation/topBar/topBar/DefaultTopBar.d.ts.map +1 -1
- package/esm/presentation/topBar/topBar/DefaultTopBar.js +15 -4
- package/esm/presentation/topBar/topBar/types.d.ts +2 -0
- package/esm/presentation/topBar/topBar/types.d.ts.map +1 -1
- package/esm/presentation/widget/description/ExportModeInsightWidgetDescription.d.ts.map +1 -1
- package/esm/presentation/widget/description/ExportModeInsightWidgetDescription.js +3 -5
- package/esm/presentation/widget/description/InsightWidgetDescriptionTrigger.d.ts.map +1 -1
- package/esm/presentation/widget/description/InsightWidgetDescriptionTrigger.js +3 -6
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/InsightDrillDialog.js +5 -6
- package/esm/presentation/widget/insight/configuration/InsightDescriptionConfig/InsightDescription.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightDescriptionConfig/InsightDescription.js +3 -6
- package/esm/presentation/widget/richText/EditModeDashboardRichText.d.ts.map +1 -1
- package/esm/presentation/widget/richText/EditModeDashboardRichText.js +3 -5
- package/esm/presentation/widget/richText/ViewModeDashboardRichText.d.ts.map +1 -1
- package/esm/presentation/widget/richText/ViewModeDashboardRichText.js +3 -5
- package/esm/sdk-ui-dashboard.d.ts +528 -12
- package/package.json +21 -21
- package/styles/css/main.css +28 -1
- package/styles/css/main.css.map +1 -1
- package/styles/css/timezoneIndicator.css +20 -0
- package/styles/css/timezoneIndicator.css.map +1 -0
- package/styles/css/topBar.css +9 -1
- package/styles/css/topBar.css.map +1 -1
- package/styles/scss/main.scss +1 -0
- package/styles/scss/timezoneIndicator.scss +23 -0
- package/styles/scss/topBar.scss +13 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IAccessControlAware, type IDashboard, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardMeasureValueFilterConfig, type IDashboardTab, type IDashboardWidget, type IFilterContext, type IFilterContextDefinition, type ITempFilterContext, type IdentifierRef, type ObjRef, type ShareStatus, type UriRef } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IAccessControlAware, type IDashboard, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardMeasureValueFilterConfig, type IDashboardTab, type IDashboardTimezoneConfig, type IDashboardWidget, type IFilterContext, type IFilterContextDefinition, type ITempFilterContext, type IdentifierRef, type ObjRef, type ShareStatus, type UriRef } from "@gooddata/sdk-model";
|
|
2
2
|
import { type DashboardSelector, type DashboardState } from "../types.js";
|
|
3
3
|
import { type DashboardDescriptor } from "./metaState.js";
|
|
4
4
|
/**
|
|
@@ -261,6 +261,34 @@ export declare const selectDisableFilterViews: DashboardSelector<boolean>;
|
|
|
261
261
|
* @public
|
|
262
262
|
*/
|
|
263
263
|
export declare const selectEvaluationFrequency: DashboardSelector<string | undefined>;
|
|
264
|
+
/**
|
|
265
|
+
* Selects dashboard timezone configuration.
|
|
266
|
+
*
|
|
267
|
+
* @alpha
|
|
268
|
+
*/
|
|
269
|
+
export declare const selectDashboardTimezoneConfig: DashboardSelector<IDashboardTimezoneConfig | undefined>;
|
|
270
|
+
/**
|
|
271
|
+
* Selects the effective dashboard timezone as a concrete IANA timezone ID.
|
|
272
|
+
*
|
|
273
|
+
* @remarks
|
|
274
|
+
* Returns undefined when the dashboard timezone feature is disabled or when the dashboard has no
|
|
275
|
+
* timezone configured. The browser-detected sentinel is resolved to the browser's IANA timezone
|
|
276
|
+
* here — this selector is the single place where the sentinel is resolved, so consumers always
|
|
277
|
+
* receive a concrete timezone ID safe to pass to executions and exports.
|
|
278
|
+
*
|
|
279
|
+
* @alpha
|
|
280
|
+
*/
|
|
281
|
+
export declare const selectEffectiveDashboardTimezone: DashboardSelector<string | undefined>;
|
|
282
|
+
/**
|
|
283
|
+
* Selects persisted "timezoneConfig", the value that was used to initialize the rest
|
|
284
|
+
* of the dashboard state of the dashboard component during the initial load of the dashboard.
|
|
285
|
+
*
|
|
286
|
+
* Note that this may be undefined when the dashboard component works with a dashboard that has not yet
|
|
287
|
+
* been persisted (typically newly created dashboard being edited).
|
|
288
|
+
*
|
|
289
|
+
* @alpha
|
|
290
|
+
*/
|
|
291
|
+
export declare const selectPersistedDashboardTimezoneConfig: DashboardSelector<IDashboardTimezoneConfig | undefined>;
|
|
264
292
|
/**
|
|
265
293
|
* Selects a boolean indication if he dashboard has any changes to the dashboard filter compared to the persisted version (if any)
|
|
266
294
|
*
|
|
@@ -343,6 +371,12 @@ export declare const selectEvaluationFrequencyChanged: DashboardSelector<boolean
|
|
|
343
371
|
* @internal
|
|
344
372
|
*/
|
|
345
373
|
export declare const selectIsSectionHeadersDateDataSetChanged: DashboardSelector<boolean>;
|
|
374
|
+
/**
|
|
375
|
+
* Selects a boolean indication if the dashboard has any changes to the timezone configuration compared to the persisted version (if any)
|
|
376
|
+
*
|
|
377
|
+
* @internal
|
|
378
|
+
*/
|
|
379
|
+
export declare const selectIsTimezoneConfigChanged: DashboardSelector<boolean>;
|
|
346
380
|
/**
|
|
347
381
|
* Selects a boolean indication if he dashboard has any changes to the title compared to the persisted version (if any)
|
|
348
382
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEf,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,kCAAkC,EAEvC,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"metaSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaSelectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ import { createSelector } from "@reduxjs/toolkit";
|
|
|
3
3
|
import { isEqual } from "lodash-es";
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
5
|
import { isDashboardLayoutEmpty } from "@gooddata/sdk-backend-spi";
|
|
6
|
-
import { idRef, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, isDashboardTextAttributeFilter, isTempFilterContext, uriRef, } from "@gooddata/sdk-model";
|
|
6
|
+
import { idRef, isDashboardAttributeFilter, isDashboardCommonDateFilter, isDashboardDateFilterWithDimension, isDashboardMeasureValueFilter, isDashboardTextAttributeFilter, isTempFilterContext, normalizeDashboardTimezoneConfig, resolveTimezoneId, uriRef, } from "@gooddata/sdk-model";
|
|
7
|
+
import { selectEnableDashboardTimezone } from "../config/configSelectors.js";
|
|
7
8
|
import { selectAttributeFilterConfigsOverridesByTab } from "../tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
8
9
|
import { selectDateFilterConfigOverrides, selectDateFilterConfigOverridesByTab, } from "../tabs/dateFilterConfig/dateFilterConfigSelectors.js";
|
|
9
10
|
import { selectDateFilterConfigsOverridesByTab } from "../tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
|
|
@@ -442,6 +443,31 @@ export const selectDisableFilterViews = createSelector(selectDashboardDescriptor
|
|
|
442
443
|
export const selectEvaluationFrequency = createSelector(selectDashboardDescriptor, (state) => {
|
|
443
444
|
return state.evaluationFrequency;
|
|
444
445
|
});
|
|
446
|
+
/**
|
|
447
|
+
* Selects dashboard timezone configuration.
|
|
448
|
+
*
|
|
449
|
+
* @alpha
|
|
450
|
+
*/
|
|
451
|
+
export const selectDashboardTimezoneConfig = createSelector(selectDashboardDescriptor, (state) => {
|
|
452
|
+
return state.timezoneConfig;
|
|
453
|
+
});
|
|
454
|
+
/**
|
|
455
|
+
* Selects the effective dashboard timezone as a concrete IANA timezone ID.
|
|
456
|
+
*
|
|
457
|
+
* @remarks
|
|
458
|
+
* Returns undefined when the dashboard timezone feature is disabled or when the dashboard has no
|
|
459
|
+
* timezone configured. The browser-detected sentinel is resolved to the browser's IANA timezone
|
|
460
|
+
* here — this selector is the single place where the sentinel is resolved, so consumers always
|
|
461
|
+
* receive a concrete timezone ID safe to pass to executions and exports.
|
|
462
|
+
*
|
|
463
|
+
* @alpha
|
|
464
|
+
*/
|
|
465
|
+
export const selectEffectiveDashboardTimezone = createSelector(selectEnableDashboardTimezone, selectDashboardTimezoneConfig, (isEnabled, timezoneConfig) => {
|
|
466
|
+
if (!isEnabled || !timezoneConfig?.timezoneId) {
|
|
467
|
+
return undefined;
|
|
468
|
+
}
|
|
469
|
+
return resolveTimezoneId(timezoneConfig.timezoneId);
|
|
470
|
+
});
|
|
445
471
|
//
|
|
446
472
|
//
|
|
447
473
|
//
|
|
@@ -465,6 +491,18 @@ const selectPersistedDashboardTitle = createSelector(selectSelf, (state) => {
|
|
|
465
491
|
const selectPersistedDashboardDisableCrossFiltering = createSelector(selectSelf, (state) => {
|
|
466
492
|
return state.persistedDashboard?.disableCrossFiltering;
|
|
467
493
|
});
|
|
494
|
+
/**
|
|
495
|
+
* Selects persisted "timezoneConfig", the value that was used to initialize the rest
|
|
496
|
+
* of the dashboard state of the dashboard component during the initial load of the dashboard.
|
|
497
|
+
*
|
|
498
|
+
* Note that this may be undefined when the dashboard component works with a dashboard that has not yet
|
|
499
|
+
* been persisted (typically newly created dashboard being edited).
|
|
500
|
+
*
|
|
501
|
+
* @alpha
|
|
502
|
+
*/
|
|
503
|
+
export const selectPersistedDashboardTimezoneConfig = createSelector(selectSelf, (state) => {
|
|
504
|
+
return state.persistedDashboard?.timezoneConfig;
|
|
505
|
+
});
|
|
468
506
|
/**
|
|
469
507
|
* Selects persisted "disableUserFilterReset", the value that was used to initialize the rest
|
|
470
508
|
* of the dashboard state of the dashboard component during the initial load of the dashboard.
|
|
@@ -678,6 +716,16 @@ export const selectEvaluationFrequencyChanged = createSelector(selectPersistedDa
|
|
|
678
716
|
export const selectIsSectionHeadersDateDataSetChanged = createSelector(selectPersistedDashboardSectionHeadersDateDataSet, selectSectionHeadersDateDataSet, (persistedDateDataSet, currentDateDataSet) => {
|
|
679
717
|
return !isEqual(persistedDateDataSet, currentDateDataSet);
|
|
680
718
|
});
|
|
719
|
+
/**
|
|
720
|
+
* Selects a boolean indication if the dashboard has any changes to the timezone configuration compared to the persisted version (if any)
|
|
721
|
+
*
|
|
722
|
+
* @internal
|
|
723
|
+
*/
|
|
724
|
+
export const selectIsTimezoneConfigChanged = createSelector(selectPersistedDashboardTimezoneConfig, selectDashboardTimezoneConfig, (persistedTimezoneConfig, currentTimezoneConfig) => {
|
|
725
|
+
// normalize both sides so that a persisted config carrying explicit default (false)
|
|
726
|
+
// values compares equal to an absent configuration
|
|
727
|
+
return !isEqual(normalizeDashboardTimezoneConfig(persistedTimezoneConfig), normalizeDashboardTimezoneConfig(currentTimezoneConfig));
|
|
728
|
+
});
|
|
681
729
|
/**
|
|
682
730
|
* Selects a boolean indication if the dashboard has any changes to the tabs compared to the persisted version (if any)
|
|
683
731
|
* Compares only the tabs identifiers and titles.
|
|
@@ -733,7 +781,7 @@ export const selectIsLayoutChanged = createSelector(selectPersistedDashboardLayo
|
|
|
733
781
|
*
|
|
734
782
|
* @internal
|
|
735
783
|
*/
|
|
736
|
-
export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selectBasicLayout, selectIsFiltersChanged, selectIsTitleChanged, selectIsLayoutChanged, selectIsDateFilterConfigChanged, selectIsDisableCrossFilteringChanged, selectIsDisableUserFilterResetChanged, selectIsDisableUserFilterSaveChanged, selectIsDisableFilterViewsChanged, selectIsDisablePersistentFiltersAcrossTabsChanged, selectEvaluationFrequencyChanged, selectIsSectionHeadersDateDataSetChanged, selectIsTabsChanged, selectIsParametersChanged, (isNew, layout, isFiltersChanged, isTitleChanged, isLayoutChanged, isDateFilterConfigChanged, isDisableCrossFilteringChanged, isDisableUserFilterResetChanged, isDisableUserFilterSaveChanged, isDisableFilterViewsChanged, isDisablePersistentFiltersAcrossTabsChanged, isEvaluationFrequencyChanged, isSectionHeadersDateDataSetChanged, isTabsChanged, isParametersChanged) => {
|
|
784
|
+
export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selectBasicLayout, selectIsFiltersChanged, selectIsTitleChanged, selectIsLayoutChanged, selectIsDateFilterConfigChanged, selectIsDisableCrossFilteringChanged, selectIsDisableUserFilterResetChanged, selectIsDisableUserFilterSaveChanged, selectIsDisableFilterViewsChanged, selectIsDisablePersistentFiltersAcrossTabsChanged, selectEvaluationFrequencyChanged, selectIsSectionHeadersDateDataSetChanged, selectIsTimezoneConfigChanged, selectIsTabsChanged, selectIsParametersChanged, (isNew, layout, isFiltersChanged, isTitleChanged, isLayoutChanged, isDateFilterConfigChanged, isDisableCrossFilteringChanged, isDisableUserFilterResetChanged, isDisableUserFilterSaveChanged, isDisableFilterViewsChanged, isDisablePersistentFiltersAcrossTabsChanged, isEvaluationFrequencyChanged, isSectionHeadersDateDataSetChanged, isTimezoneConfigChanged, isTabsChanged, isParametersChanged) => {
|
|
737
785
|
if (isNew) {
|
|
738
786
|
return !isDashboardLayoutEmpty(layout);
|
|
739
787
|
}
|
|
@@ -749,6 +797,7 @@ export const selectIsDashboardDirty = createSelector(selectIsNewDashboard, selec
|
|
|
749
797
|
isDisablePersistentFiltersAcrossTabsChanged,
|
|
750
798
|
isEvaluationFrequencyChanged,
|
|
751
799
|
isSectionHeadersDateDataSetChanged,
|
|
800
|
+
isTimezoneConfigChanged,
|
|
752
801
|
isTabsChanged,
|
|
753
802
|
isParametersChanged,
|
|
754
803
|
].some(Boolean);
|
|
@@ -2,7 +2,7 @@ import { type IAccessControlAware, type IDashboard } from "@gooddata/sdk-model";
|
|
|
2
2
|
/**
|
|
3
3
|
* @public
|
|
4
4
|
*/
|
|
5
|
-
export type DashboardDescriptor = Pick<IDashboard, "title" | "description" | "tags" | "disableCrossFiltering" | "disableUserFilterReset" | "disableUserFilterSave" | "disableFilterViews" | "disablePersistentFiltersAcrossTabs" | "evaluationFrequency" | "sectionHeadersDateDataSet"> & IAccessControlAware;
|
|
5
|
+
export type DashboardDescriptor = Pick<IDashboard, "title" | "description" | "tags" | "disableCrossFiltering" | "disableUserFilterReset" | "disableUserFilterSave" | "disableFilterViews" | "disablePersistentFiltersAcrossTabs" | "evaluationFrequency" | "sectionHeadersDateDataSet" | "timezoneConfig"> & IAccessControlAware;
|
|
6
6
|
export declare const EmptyDashboardDescriptor: DashboardDescriptor;
|
|
7
7
|
/**
|
|
8
8
|
* @beta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,UAAU,EACR,OAAO,GACP,aAAa,GACb,MAAM,GACN,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,oCAAoC,GACpC,qBAAqB,GACrB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"metaState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/meta/metaState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,UAAU,EACR,OAAO,GACP,aAAa,GACb,MAAM,GACN,uBAAuB,GACvB,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,oCAAoC,GACpC,qBAAqB,GACrB,2BAA2B,GAC3B,gBAAgB,CACrB,GACG,mBAAmB,CAAC;AAExB,eAAO,MAAM,wBAAwB,EAAE,mBAItC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAI9B,CAAC"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IAlertingDialogProps } from "../types.js";
|
|
2
|
-
export declare function AlertingDialogRenderer({
|
|
2
|
+
export declare function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess }: IAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
/**
|
|
4
4
|
* Default implementation of the alerting create/edit dialog.
|
|
5
5
|
*
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA4BxD,wBAAgB,sBAAsB,CAAC,EACnC,
|
|
1
|
+
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA4BxD,wBAAgB,sBAAsB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CA+iBtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAchE"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js
CHANGED
|
@@ -37,11 +37,15 @@ import { isMobileView } from "./utils/responsive.js";
|
|
|
37
37
|
const OVERLAY_POSITION_TYPE = "sameAsTarget";
|
|
38
38
|
const CLOSE_ON_PARENT_SCROLL = true;
|
|
39
39
|
const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
|
|
40
|
-
export function AlertingDialogRenderer({
|
|
40
|
+
export function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess, }) {
|
|
41
41
|
const intl = useIntl();
|
|
42
42
|
const dialogTitleRef = useRef(null);
|
|
43
43
|
const { isWhiteLabeled, isSecondaryTitleVisible, externalRecipient: externalRecipientOverride, maxAutomationsRecipients, isExecutionTimestampMode, features: { enableAlertOncePerInterval, enableAnomalyDetectionAlert, canUseAiAssistant: enableAiAssistant, }, } = useAutomationsContext();
|
|
44
|
-
|
|
44
|
+
// Read from context because this component calls useAutomationFiltersSelect and
|
|
45
|
+
// useValidateExistingAutomationFilters directly, and the filter-select call must run before
|
|
46
|
+
// useEditAlert, which consumes its output. Removed with the filter read-model consolidation
|
|
47
|
+
// (EB-867), which retires these call sites.
|
|
48
|
+
const { widgetTitle, alertToEdit, widget, insight } = useAlertingDialogContext();
|
|
45
49
|
const [alertToDelete, setAlertToDelete] = useState(null);
|
|
46
50
|
const handleAlertDeleteSuccess = (alert) => {
|
|
47
51
|
onDeleteSuccess?.(alert);
|
|
@@ -51,16 +55,11 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
|
|
|
51
55
|
automationToEdit: alertToEdit,
|
|
52
56
|
widget,
|
|
53
57
|
});
|
|
54
|
-
const { onTitleChange, onRecipientsChange, onFiltersChange, onApplyCurrentFilters, dropStaleParameters, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, onMeasureChange, getAttributeValues, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onChange, onBlur, onComparisonTypeChange, onDestinationChange, onTriggerModeChange, onTriggerIntervalChange, selectedMeasure, canChangeMeasure, supportedMeasures, selectedAttribute, selectedValue, supportedAttributes, catalogAttributes, catalogDateDatasets, isResultLoading, selectedComparisonOperator, selectedRelativeOperator, selectedAiOperator, value, selectedComparator, selectedSensitivity, onSensitivityChange, selectedGranularity, onGranularityChange, separators, defaultUser, originalAutomation, editedAutomation, allowOnlyLoggedUserRecipients, allowExternalRecipients, warningMessage, validationErrorMessage, isInvalidConnectionToInsight, isSubmitDisabled, isParentValid, thresholdErrorMessage, allowHourlyRecurrence, } = useEditAlert({
|
|
55
|
-
insight,
|
|
56
|
-
widget,
|
|
57
|
-
alertToEdit,
|
|
58
|
-
users,
|
|
58
|
+
const { onTitleChange, onRecipientsChange, onFiltersChange, onApplyCurrentFilters, dropStaleParameters, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, onMeasureChange, getAttributeValues, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onChange, onBlur, onComparisonTypeChange, onDestinationChange, onTriggerModeChange, onTriggerIntervalChange, selectedMeasure, canChangeMeasure, supportedMeasures, selectedAttribute, selectedValue, supportedAttributes, catalogAttributes, catalogDateDatasets, isResultLoading, selectedComparisonOperator, selectedRelativeOperator, selectedAiOperator, value, selectedComparator, selectedSensitivity, onSensitivityChange, selectedGranularity, onGranularityChange, separators, defaultUser, originalAutomation, editedAutomation, allowOnlyLoggedUserRecipients, allowExternalRecipients, warningMessage, validationErrorMessage, isInvalidConnectionToInsight, isSubmitDisabled, isParentValid, thresholdErrorMessage, allowHourlyRecurrence, users, usersError, notificationChannels, } = useEditAlert({
|
|
59
59
|
editedAutomationFilters,
|
|
60
60
|
maxAutomationsRecipients,
|
|
61
61
|
availableFiltersAsVisibleFilters,
|
|
62
62
|
setEditedAutomationFilters,
|
|
63
|
-
notificationChannels,
|
|
64
63
|
filtersForNewAutomation,
|
|
65
64
|
externalRecipientOverride,
|
|
66
65
|
});
|
|
@@ -176,8 +175,9 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
|
|
|
176
175
|
* @alpha
|
|
177
176
|
*/
|
|
178
177
|
export function DefaultAlertingDialog(props) {
|
|
179
|
-
const {
|
|
178
|
+
const { onCancel } = props;
|
|
180
179
|
const { locale } = useAutomationsContext();
|
|
180
|
+
const { isLoading, alertToEdit } = useAlertingDialogContext();
|
|
181
181
|
if (isLoading) {
|
|
182
182
|
return _jsx(DefaultLoadingAlertingDialog, { onCancel: onCancel, alertToEdit: alertToEdit });
|
|
183
183
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type IAutomationMetadataObject } from "@gooddata/sdk-model";
|
|
2
|
+
interface IDefaultLoadingAlertingDialogProps {
|
|
3
|
+
alertToEdit?: IAutomationMetadataObject;
|
|
4
|
+
onCancel?: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function DefaultLoadingAlertingDialog({ alertToEdit, onCancel }: IDefaultLoadingAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
3
8
|
//# sourceMappingURL=DefaultLoadingAlertingDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLoadingAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DefaultLoadingAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAarE,UAAU,kCAAkC;IACxC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,4BAA4B,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,kCAAkC,2CAkDzG"}
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useIntl } from "react-intl";
|
|
|
4
4
|
import { ConfirmDialogBase, Overlay, OverlayController, OverlayControllerProvider, UiSkeleton, useId, } from "@gooddata/sdk-ui-kit";
|
|
5
5
|
import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
|
|
6
6
|
const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
|
|
7
|
-
export function DefaultLoadingAlertingDialog({ alertToEdit, onCancel
|
|
7
|
+
export function DefaultLoadingAlertingDialog({ alertToEdit, onCancel }) {
|
|
8
8
|
const intl = useIntl();
|
|
9
9
|
const titleElementId = useId();
|
|
10
10
|
return (_jsx(_Fragment, { children: _jsx(Overlay, { className: "gd-notifications-channels-dialog-overlay", isModal: true, positionType: "fixed", children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsxs(ConfirmDialogBase, { className: "gd-notifications-channels-dialog s-gd-notifications-channels-dialog", isPositive: true, cancelButtonText: intl.formatMessage({ id: "cancel" }), submitButtonText: alertToEdit
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import { type FilterContextItem, type
|
|
1
|
+
import { type FilterContextItem, type IAutomationVisibleFilter } from "@gooddata/sdk-model";
|
|
2
2
|
export interface IUseEditAlertProps {
|
|
3
|
-
alertToEdit?: IAutomationMetadataObject;
|
|
4
|
-
notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
5
3
|
maxAutomationsRecipients: number;
|
|
6
|
-
users: IWorkspaceUser[];
|
|
7
|
-
widget?: IWidget;
|
|
8
|
-
insight?: IInsight;
|
|
9
4
|
editedAutomationFilters?: FilterContextItem[];
|
|
10
5
|
setEditedAutomationFilters: (filters: FilterContextItem[]) => void;
|
|
11
6
|
availableFiltersAsVisibleFilters?: IAutomationVisibleFilter[] | undefined;
|
|
12
7
|
filtersForNewAutomation: FilterContextItem[];
|
|
13
8
|
externalRecipientOverride?: string;
|
|
14
9
|
}
|
|
15
|
-
export declare function useEditAlert({
|
|
10
|
+
export declare function useEditAlert({ editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride }: IUseEditAlertProps): {
|
|
16
11
|
onTitleChange: (value: string, isValid: boolean) => void;
|
|
17
12
|
onRecipientsChange: (updatedRecipients: import("@gooddata/sdk-model").IAutomationRecipient[]) => void;
|
|
18
13
|
onFiltersChange: (filters: FilterContextItem[]) => void;
|
|
@@ -60,9 +55,12 @@ export declare function useEditAlert({ alertToEdit, notificationChannels, insigh
|
|
|
60
55
|
selectedComparator: import("../../types.js").AlertMetricComparator | undefined;
|
|
61
56
|
separators: import("@gooddata/sdk-model").ISeparators;
|
|
62
57
|
warningMessage: string | undefined;
|
|
63
|
-
defaultUser: IWorkspaceUser;
|
|
58
|
+
defaultUser: import("@gooddata/sdk-model").IWorkspaceUser;
|
|
64
59
|
originalAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition | undefined;
|
|
65
60
|
editedAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition | undefined;
|
|
61
|
+
users: import("@gooddata/sdk-model").IWorkspaceUser[];
|
|
62
|
+
usersError: import("@gooddata/sdk-ui").GoodDataSdkError | undefined;
|
|
63
|
+
notificationChannels: import("@gooddata/sdk-model").INotificationChannelIdentifier[] | import("@gooddata/sdk-model").INotificationChannelMetadataObject[];
|
|
66
64
|
allowOnlyLoggedUserRecipients: boolean;
|
|
67
65
|
allowExternalRecipients: boolean;
|
|
68
66
|
validationErrorMessage: string | undefined;
|
package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY5F,MAAM,WAAW,kBAAkB;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,yBAAyB,EAC5B,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkMpB"}
|
|
@@ -7,10 +7,10 @@ import { useAlertFormValidation } from "./useAlertFormValidation.js";
|
|
|
7
7
|
import { useAlertSelectedValues } from "./useAlertSelectedValues.js";
|
|
8
8
|
import { useAlertSupportedMetrics } from "./useAlertSupportedMetrics.js";
|
|
9
9
|
import { useAlertThreshold } from "./useAlertThreshold.js";
|
|
10
|
-
export function useEditAlert({
|
|
10
|
+
export function useEditAlert({ editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
|
|
11
11
|
const { catalogDateDatasets, catalogAttributes, separators, weekStart, timezone, allowHourlyRecurrence } = useAutomationsContext();
|
|
12
|
+
const { hiddenFilters: dashboardHiddenFilters, commonDateFilterId, alertToEdit, users, usersError, notificationChannels, widget, insight, } = useAlertingDialogContext();
|
|
12
13
|
const isInvalidConnectionToInsight = alertToEdit?.metadata?.widget && !insight;
|
|
13
|
-
const { hiddenFilters: dashboardHiddenFilters, commonDateFilterId } = useAlertingDialogContext();
|
|
14
14
|
const { measureFormatMap, supportedMeasures, supportedAttributes, isResultLoading, getAttributeValues, getMetricValue, } = useAlertSupportedMetrics({ insight, widget, alertToEdit });
|
|
15
15
|
const { editedAutomation, setEditedAutomation, originalAutomation, defaultUser, defaultRecipient, automationParameters, availableParameters, onParameterChange, onParameterDelete, onParameterAdd, dropStaleParameters, onTitleChange, onMeasureChange, onAttributeChange, onComparisonOperatorChange, onRelativeOperatorChange, onAnomalyDetectionChange, onComparisonTypeChange, onSensitivityChange, onTriggerIntervalChange, onGranularityChange, onDestinationChange, onTriggerModeChange, onRecipientsChange, warningMessage, isTitleValid, } = useAlertFormState({
|
|
16
16
|
alertToEdit,
|
|
@@ -124,6 +124,9 @@ export function useEditAlert({ alertToEdit, notificationChannels, insight, widge
|
|
|
124
124
|
defaultUser,
|
|
125
125
|
originalAutomation,
|
|
126
126
|
editedAutomation,
|
|
127
|
+
users,
|
|
128
|
+
usersError,
|
|
129
|
+
notificationChannels,
|
|
127
130
|
allowOnlyLoggedUserRecipients,
|
|
128
131
|
allowExternalRecipients,
|
|
129
132
|
validationErrorMessage,
|
|
@@ -7,20 +7,29 @@ import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
|
7
7
|
export interface IAlertingDialogProps {
|
|
8
8
|
/**
|
|
9
9
|
* In case, we are not creating new alert, but editing existing one, this is the active alert to be edited.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated read `alertToEdit` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
10
12
|
*/
|
|
11
13
|
alertToEdit?: IAutomationMetadataObject;
|
|
12
14
|
/**
|
|
13
15
|
* Users in workspace
|
|
16
|
+
*
|
|
17
|
+
* @deprecated read `users` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
14
18
|
*/
|
|
15
|
-
users
|
|
19
|
+
users?: IWorkspaceUser[];
|
|
16
20
|
/**
|
|
17
21
|
* Error occurred while loading users
|
|
22
|
+
*
|
|
23
|
+
* @deprecated read `usersError` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
18
24
|
*/
|
|
19
25
|
usersError?: GoodDataSdkError;
|
|
20
26
|
/**
|
|
21
27
|
* Notification channels in organization
|
|
28
|
+
*
|
|
29
|
+
* @deprecated read `notificationChannels` from `useAlertingDialogContext()` instead.
|
|
30
|
+
* Prop will be removed.
|
|
22
31
|
*/
|
|
23
|
-
notificationChannels
|
|
32
|
+
notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
24
33
|
/**
|
|
25
34
|
* Widget to be used for alert.
|
|
26
35
|
*
|
|
@@ -28,16 +37,22 @@ export interface IAlertingDialogProps {
|
|
|
28
37
|
* Typed as IWidget (not ExtendedDashboardWidget) because the dialog only
|
|
29
38
|
* supports insight widgets; custom widgets and nested layouts are not valid
|
|
30
39
|
* alert targets and were silently discarded at the connector boundary anyway.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated read `widget` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
31
42
|
*/
|
|
32
43
|
widget?: IWidget;
|
|
33
44
|
/**
|
|
34
45
|
* Insight to be used for alert.
|
|
35
46
|
*
|
|
36
47
|
* Note: this is available only when alerting for widget, not dashboard.
|
|
48
|
+
*
|
|
49
|
+
* @deprecated read `insight` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
37
50
|
*/
|
|
38
51
|
insight?: IInsight;
|
|
39
52
|
/**
|
|
40
53
|
* Is alert dialog loading initial data, before it can be rendered?
|
|
54
|
+
*
|
|
55
|
+
* @deprecated read `isLoading` from `useAlertingDialogContext()` instead. Prop will be removed.
|
|
41
56
|
*/
|
|
42
57
|
isLoading?: boolean;
|
|
43
58
|
/**
|
|
@@ -75,20 +90,30 @@ export interface IAlertingDialogProps {
|
|
|
75
90
|
export interface IAlertingManagementDialogProps {
|
|
76
91
|
/**
|
|
77
92
|
* Is loading alert data?
|
|
93
|
+
*
|
|
94
|
+
* @deprecated not read by the default dialog. Prop will be removed.
|
|
78
95
|
*/
|
|
79
|
-
isLoadingAlertingData
|
|
96
|
+
isLoadingAlertingData?: boolean;
|
|
80
97
|
/**
|
|
81
98
|
* Error occurred while loading alert data?
|
|
99
|
+
*
|
|
100
|
+
* @deprecated not read by the default dialog. Prop will be removed.
|
|
82
101
|
*/
|
|
83
102
|
alertDataError?: GoodDataSdkError;
|
|
84
103
|
/**
|
|
85
104
|
* Notification channels in organization
|
|
105
|
+
*
|
|
106
|
+
* @deprecated not read by the default dialog. A replacement can read the dashboard's
|
|
107
|
+
* notification channels directly. Prop will be removed.
|
|
86
108
|
*/
|
|
87
|
-
notificationChannels
|
|
109
|
+
notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
88
110
|
/**
|
|
89
111
|
* Automations in workspace
|
|
112
|
+
*
|
|
113
|
+
* @deprecated not read by the default dialog. A replacement can read the dashboard's
|
|
114
|
+
* automations directly. Prop will be removed.
|
|
90
115
|
*/
|
|
91
|
-
automations
|
|
116
|
+
automations?: IAutomationMetadataObject[];
|
|
92
117
|
/**
|
|
93
118
|
* Callback to be called, when user adds new alert item.
|
|
94
119
|
*/
|
|
@@ -1 +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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AA8B1D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAG/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,GAAG,IAAI,CAMvD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { isWidget } from "@gooddata/sdk-model";
|
|
2
|
+
import { isWidget, } from "@gooddata/sdk-model";
|
|
3
3
|
import { useDashboardAlerts } from "../../../model/react/useDashboardAlerting/useDashboardAlerts.js";
|
|
4
4
|
import { useWorkspaceUsers } from "../../../model/react/useWorkspaceUsers.js";
|
|
5
5
|
import { AlertingDialog } from "../alerting/AlertingDialog.js";
|
|
@@ -11,6 +11,7 @@ import { useAutomationManagementEditRouting } from "./hooks/useAutomationManagem
|
|
|
11
11
|
import { useBuildAlertingDialogContext } from "./hooks/useBuildAlertingDialogContext.js";
|
|
12
12
|
import { useBuildAlertingManagementDialogContext } from "./hooks/useBuildAlertingManagementDialogContext.js";
|
|
13
13
|
import { useBuildAutomationsContext } from "./hooks/useBuildAutomationsContext.js";
|
|
14
|
+
const EMPTY_USERS = [];
|
|
14
15
|
/**
|
|
15
16
|
* Provides AutomationsContext to its children, built from dashboard Redux state.
|
|
16
17
|
* Wraps the alerting dialog subtree (both the create/edit and management dialogs reach
|
|
@@ -57,39 +58,35 @@ function AlertingConnectorWithData({ alerts }) {
|
|
|
57
58
|
// Shared Local State
|
|
58
59
|
alertToEdit,
|
|
59
60
|
// Data
|
|
60
|
-
|
|
61
|
+
automationsLoading, notificationChannels,
|
|
61
62
|
// Single Alert Dialog
|
|
62
63
|
isAlertDialogOpen, onAlertingCancel, onAlertingCreateSuccess, onAlertingCreateError, onAlertingSaveSuccess, onAlertingSaveError,
|
|
63
64
|
// Management / List Dialog
|
|
64
65
|
isAlertManagementDialogOpen, onAlertingManagementClose, onAlertingManagementAdd, onAlertingManagementEdit, onAlertingManagementDeleteSuccess, onAlertingManagementDeleteError, onAlertingManagementPauseSuccess, onAlertingManagementPauseError, widget, insight, } = alerts;
|
|
65
66
|
const handleManagementEdit = useAutomationManagementEditRouting(onAlertingManagementEdit);
|
|
66
67
|
const insightWidget = isWidget(widget) ? widget : undefined;
|
|
67
|
-
const alertingCtx = useBuildAlertingDialogContext({
|
|
68
|
-
mode: alertToEdit ? "edit" : "create",
|
|
69
|
-
widget: insightWidget,
|
|
70
|
-
insight,
|
|
71
|
-
});
|
|
72
68
|
const managementCtx = useBuildAlertingManagementDialogContext();
|
|
73
|
-
|
|
74
|
-
return (_jsx(AlertingDialogContextProvider, { value: alertingCtx, children: _jsxs(AlertingManagementDialogContextProvider, { value: managementCtx, children: [isAlertManagementDialogOpen ? (
|
|
75
|
-
// TODO(GDP-3167 phase3): automations, notificationChannels, and alertDataError
|
|
76
|
-
// are still prop-threaded here because DefaultAlertingManagementDialog reads
|
|
77
|
-
// them from props, not from AutomationsContext. Once all dialog fields are
|
|
78
|
-
// migrated to read from context, remove these props and the corresponding prop types.
|
|
79
|
-
_jsx(AlertingManagementDialog, { automations: automations, notificationChannels: notificationChannels, alertDataError: automationsError, isLoadingAlertingData: isManagementLoading, onAdd: onAlertingManagementAdd, onEdit: handleManagementEdit, onClose: onAlertingManagementClose, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError, onPauseSuccess: onAlertingManagementPauseSuccess, onPauseError: onAlertingManagementPauseError })) : null, isAlertDialogOpen ? (
|
|
80
|
-
// TODO(GDP-3167 phase3): notificationChannels, users, usersError, and isLoading
|
|
81
|
-
// are still prop-threaded here because DefaultAlertingDialog reads them from props,
|
|
82
|
-
// not from AutomationsContext. Once all dialog fields are migrated to read from
|
|
83
|
-
// context, remove these props and the corresponding prop types.
|
|
84
|
-
_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] }) }));
|
|
69
|
+
return (_jsxs(AlertingManagementDialogContextProvider, { value: managementCtx, children: [isAlertManagementDialogOpen ? (_jsx(AlertingManagementDialog, { onAdd: onAlertingManagementAdd, onEdit: handleManagementEdit, onClose: onAlertingManagementClose, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError, onPauseSuccess: onAlertingManagementPauseSuccess, onPauseError: onAlertingManagementPauseError })) : null, isAlertDialogOpen ? (_jsx(AlertingCreateEditConnector, { alertToEdit: alertToEdit, notificationChannels: notificationChannels, widget: insightWidget, insight: insight, automationsLoading: automationsLoading, onCancel: onAlertingCancel, onError: onAlertingCreateError, onSuccess: onAlertingCreateSuccess, onSaveError: onAlertingSaveError, onSaveSuccess: onAlertingSaveSuccess, onDeleteSuccess: onAlertingManagementDeleteSuccess, onDeleteError: onAlertingManagementDeleteError })) : null] }));
|
|
85
70
|
}
|
|
86
71
|
/**
|
|
87
|
-
* Loads workspace users
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* workspace-users load, matching the pre-separation behavior.
|
|
72
|
+
* Loads workspace users and hydrates the alerting create/edit context. Both live here rather than in
|
|
73
|
+
* the parent so that opening only the management dialog — which consumes neither — never dispatches the
|
|
74
|
+
* workspace-users load.
|
|
91
75
|
*/
|
|
92
|
-
function
|
|
76
|
+
function AlertingCreateEditConnector(props) {
|
|
77
|
+
const { alertToEdit, notificationChannels, widget, insight, automationsLoading, onCancel, onError, onSuccess, onSaveError, onSaveSuccess, onDeleteSuccess, onDeleteError, } = props;
|
|
93
78
|
const { users, status: usersStatus, usersError } = useWorkspaceUsers();
|
|
94
|
-
|
|
79
|
+
const isLoading = automationsLoading || usersStatus === "pending" || usersStatus === "loading";
|
|
80
|
+
const effectiveUsers = users ?? EMPTY_USERS;
|
|
81
|
+
const alertingCtx = useBuildAlertingDialogContext({
|
|
82
|
+
mode: alertToEdit ? "edit" : "create",
|
|
83
|
+
widget,
|
|
84
|
+
insight,
|
|
85
|
+
alertToEdit,
|
|
86
|
+
users: effectiveUsers,
|
|
87
|
+
usersError,
|
|
88
|
+
notificationChannels,
|
|
89
|
+
isLoading,
|
|
90
|
+
});
|
|
91
|
+
return (_jsx(AlertingDialogContextProvider, { value: alertingCtx, children: _jsx(AlertingDialog, { onCancel: onCancel, onError: onError, onSuccess: onSuccess, onSaveError: onSaveError, onSaveSuccess: onSaveSuccess, onDeleteSuccess: onDeleteSuccess, onDeleteError: onDeleteError }) }));
|
|
95
92
|
}
|