@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,6 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2019-2026 GoodData Corporation
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { defineMessage, useIntl } from "react-intl";
|
|
6
6
|
import { ValidationContextStore, createInvalidNode, useValidationContextValue } from "@gooddata/sdk-ui";
|
|
@@ -31,6 +31,7 @@ import { SubjectForm } from "./components/SubjectForm/SubjectForm.js";
|
|
|
31
31
|
import { SCHEDULED_EMAIL_DIALOG_ID } from "./constants.js";
|
|
32
32
|
import { DefaultLoadingScheduledEmailDialog } from "./DefaultLoadingScheduledEmailDialog.js";
|
|
33
33
|
import { useEditScheduledEmail } from "./hooks/useEditScheduledEmail.js";
|
|
34
|
+
import { useElementHeightSnapshot } from "./hooks/useElementHeightSnapshot.js";
|
|
34
35
|
import { useSaveScheduledEmailToBackend } from "./hooks/useSaveScheduledEmailToBackend.js";
|
|
35
36
|
const OVERLAY_POSITION_TYPE = "sameAsTarget";
|
|
36
37
|
const CLOSE_ON_PARENT_SCROLL = true;
|
|
@@ -39,16 +40,19 @@ function ScheduledEmailDialogFooter({ isWhiteLabeled, helpTextId, scheduledExpor
|
|
|
39
40
|
const intl = useIntl();
|
|
40
41
|
return (_jsxs("div", { className: "gd-notifications-channels-dialog-footer-link", children: [isWhiteLabeled ? null : (_jsx(Hyperlink, { text: intl.formatMessage({ id: helpTextId }), href: "https://www.gooddata.com/docs/cloud/create-dashboards/automation/scheduled-exports/#ScheduleExportsinDashboards-ScheduleExport", iconClass: "gd-icon-circle-question" })), scheduledExportToEdit ? (_jsx(Button, { className: "gd-button-link-dimmed", value: intl.formatMessage({ id: "delete" }), onClick: onDeleteClick, disabled: isSavingScheduledEmail })) : null] }));
|
|
41
42
|
}
|
|
42
|
-
export function ScheduledMailDialogRenderer({
|
|
43
|
+
export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, }) {
|
|
43
44
|
const intl = useIntl();
|
|
44
45
|
const dialogTitleRef = useRef(null);
|
|
45
46
|
const generalTabContentRef = useRef(null);
|
|
46
47
|
const filtersTabContentRef = useRef(null);
|
|
47
48
|
const [scheduledEmailToDelete, setScheduledEmailToDelete] = useState(null);
|
|
48
49
|
const [selectedTabId, setSelectedTabId] = useState("general");
|
|
49
|
-
const [tabContentHeight, setTabContentHeight] = useState(undefined);
|
|
50
50
|
const { isWhiteLabeled, externalRecipient: externalRecipientOverride, isSecondaryTitleVisible, } = useAutomationsContext();
|
|
51
|
-
|
|
51
|
+
// Read from context because this component calls useAutomationFiltersSelect,
|
|
52
|
+
// useAutomationExportParameters and useValidateExistingAutomationFilters directly, and the
|
|
53
|
+
// filter-select call must run before useEditScheduledEmail, which consumes its output. Removed
|
|
54
|
+
// with the filter read-model consolidation (EB-867), which retires these call sites.
|
|
55
|
+
const { exportTemplates, widgetTitle, hasMultipleTabs, scheduledExportToEdit, widget, insight, dashboardFilters, } = useScheduledEmailDialogContext();
|
|
52
56
|
const handleScheduleDeleteSuccess = () => {
|
|
53
57
|
onDeleteSuccess?.();
|
|
54
58
|
setScheduledEmailToDelete(null);
|
|
@@ -60,16 +64,9 @@ export function ScheduledMailDialogRenderer({ scheduledExportToEdit, users, user
|
|
|
60
64
|
widget,
|
|
61
65
|
});
|
|
62
66
|
const { locale, dashboardTitle, dateFormat, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isCrossFiltering, isExecutionTimestampMode, isSlidesExportEnabled, isAccessibilityModeEnabled, defaultPdfPageSize, } = useDefaultScheduledEmailDialogData();
|
|
63
|
-
const { defaultUser, editedAutomation, originalAutomation, isSubmitDisabled, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, startDate, allowExternalRecipients, allowOnlyLoggedUserRecipients, validationErrorMessage, selectedAttachments, isParentValid, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, slidesTemplateIds, onSlidesTemplateIdChange, onDestinationChange, onMessageChange, onRecipientsChange, onRecurrenceChange, onEvaluationModeChange, onSubjectChange, onTitleChange, onFiltersChange, onApplyCurrentFilters, onStoreFiltersChange, onFiltersByTabChange, setParametersWire, enableAutomationEvaluationMode, } = useEditScheduledEmail({
|
|
64
|
-
notificationChannels,
|
|
65
|
-
insight,
|
|
66
|
-
widget,
|
|
67
|
-
users,
|
|
68
|
-
scheduledExportToEdit,
|
|
67
|
+
const { defaultUser, editedAutomation, originalAutomation, isSubmitDisabled, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, startDate, allowExternalRecipients, allowOnlyLoggedUserRecipients, validationErrorMessage, selectedAttachments, isParentValid, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, slidesTemplateIds, onSlidesTemplateIdChange, onDestinationChange, onMessageChange, onRecipientsChange, onRecurrenceChange, onEvaluationModeChange, onSubjectChange, onTitleChange, onFiltersChange, onApplyCurrentFilters, onStoreFiltersChange, onFiltersByTabChange, setParametersWire, enableAutomationEvaluationMode, users, usersError, notificationChannels, } = useEditScheduledEmail({
|
|
69
68
|
storeFilters,
|
|
70
69
|
editedAutomationFilters,
|
|
71
|
-
dashboardFilters,
|
|
72
|
-
widgetFilters,
|
|
73
70
|
maxAutomationsRecipients,
|
|
74
71
|
setEditedAutomationFilters,
|
|
75
72
|
setStoreFilters,
|
|
@@ -156,18 +153,12 @@ export function ScheduledMailDialogRenderer({ scheduledExportToEdit, users, user
|
|
|
156
153
|
const handleTabSelect = useCallback((tab) => {
|
|
157
154
|
setSelectedTabId(tab.id);
|
|
158
155
|
}, []);
|
|
159
|
-
// Measure General tab content height to maintain consistent dialog size
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const height = generalTabContentRef.current.scrollHeight;
|
|
166
|
-
setTabContentHeight(height);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
}, [selectedTabId]);
|
|
156
|
+
// Measure General tab content height to maintain consistent dialog size. Re-measures on
|
|
157
|
+
// content-size changes within the General tab itself (e.g. validation messages
|
|
158
|
+
// appearing/disappearing), not just on tab switch - otherwise the Filters tab could
|
|
159
|
+
// inherit a stale minHeight from before the change. The last measured value is kept
|
|
160
|
+
// internally so it survives the General tab unmounting when the user switches to Filters.
|
|
161
|
+
const tabContentHeight = useElementHeightSnapshot(generalTabContentRef, selectedTabId);
|
|
171
162
|
if (isApplyCurrentFiltersDialogOpen) {
|
|
172
163
|
return (_jsx(ApplyCurrentFiltersConfirmDialog, { automationType: "schedule", onCancel: () => onCancel?.(), onEdit: () => {
|
|
173
164
|
onApplyCurrentFilters();
|
|
@@ -226,7 +217,8 @@ export function ScheduledMailDialogRenderer({ scheduledExportToEdit, users, user
|
|
|
226
217
|
* @alpha
|
|
227
218
|
*/
|
|
228
219
|
export function DefaultScheduledEmailDialog(props) {
|
|
229
|
-
const {
|
|
220
|
+
const { onCancel } = props;
|
|
221
|
+
const { isLoading, scheduledExportToEdit } = useScheduledEmailDialogContext();
|
|
230
222
|
if (isLoading) {
|
|
231
223
|
return (_jsx(DefaultLoadingScheduledEmailDialog, { onCancel: onCancel, scheduledExportToEdit: scheduledExportToEdit }));
|
|
232
224
|
}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
import { type FilterContextItem, type
|
|
1
|
+
import { type FilterContextItem, type IAutomationVisibleFilter, type IExportDefinitionVisualizationObjectSettings } from "@gooddata/sdk-model";
|
|
2
2
|
import type { IAutomationFiltersTab } from "../../../../../model/store/filtering/types.js";
|
|
3
3
|
export interface IUseEditScheduledEmailProps {
|
|
4
|
-
scheduledExportToEdit?: IAutomationMetadataObject;
|
|
5
|
-
notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
6
4
|
maxAutomationsRecipients: number;
|
|
7
|
-
/** Workspace users, lazy-loaded in the connector and passed via dialog props. */
|
|
8
|
-
users: IWorkspaceUser[];
|
|
9
|
-
widget?: IWidget;
|
|
10
|
-
insight?: IInsight;
|
|
11
|
-
widgetFilters?: IFilter[];
|
|
12
5
|
editedAutomationFilters?: FilterContextItem[];
|
|
13
|
-
dashboardFilters?: FilterContextItem[];
|
|
14
6
|
setEditedAutomationFilters: (filters: FilterContextItem[]) => void;
|
|
15
7
|
/**
|
|
16
8
|
* Edited filters structured by tab ID for dashboard automations with tabs enabled.
|
|
@@ -31,13 +23,15 @@ export interface IUseEditScheduledEmailProps {
|
|
|
31
23
|
externalRecipientOverride?: string;
|
|
32
24
|
defaultPdfPageSize?: IExportDefinitionVisualizationObjectSettings["pageSize"];
|
|
33
25
|
}
|
|
34
|
-
export declare function useEditScheduledEmail({
|
|
35
|
-
defaultUser: IWorkspaceUser;
|
|
26
|
+
export declare function useEditScheduledEmail({ editedAutomationFilters, editedAutomationFiltersByTab, maxAutomationsRecipients, setEditedAutomationFilters, setEditedAutomationFiltersByTab, availableFiltersAsVisibleFilters, storeFilters, setStoreFilters, filtersForNewAutomation, externalRecipientOverride, defaultPdfPageSize, filtersDataByTab, availableFiltersAsVisibleFiltersByTab }: IUseEditScheduledEmailProps): {
|
|
27
|
+
defaultUser: import("@gooddata/sdk-model").IWorkspaceUser;
|
|
36
28
|
areDashboardFiltersChanged: boolean;
|
|
37
29
|
originalAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition;
|
|
38
30
|
editedAutomation: import("@gooddata/sdk-model").IAutomationMetadataObjectDefinition;
|
|
39
31
|
isCronValid: boolean;
|
|
40
|
-
notificationChannels: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
32
|
+
notificationChannels: import("@gooddata/sdk-model").INotificationChannelIdentifier[] | import("@gooddata/sdk-model").INotificationChannelMetadataObject[];
|
|
33
|
+
users: import("@gooddata/sdk-model").IWorkspaceUser[];
|
|
34
|
+
usersError: import("@gooddata/sdk-ui").GoodDataSdkError | undefined;
|
|
41
35
|
isDashboardExportSelected: boolean;
|
|
42
36
|
isCsvExportSelected: boolean;
|
|
43
37
|
isXlsxExportSelected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,4CAA4C,EACpD,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAU3F,MAAM,WAAW,2BAA2B;IACxC,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAEnE;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnE;;;OAGG;IACH,+BAA+B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,KAAK,IAAI,CAAC;IACzF,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACvD,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,qCAAqC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAEnF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;CACjF;AAED,wBAAgB,qBAAqB,CAAC,EAClC,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,EAChC,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,qCAAqC,EACxC,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwL7B"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// (C) 2019-2026 GoodData Corporation
|
|
2
2
|
import { useAutomationsContext } from "../../../contexts/AutomationsContext.js";
|
|
3
|
+
import { useScheduledEmailDialogContext } from "../../../contexts/ScheduledEmailDialogContext.js";
|
|
3
4
|
import { useScheduledEmailEffectiveFilters } from "./useScheduledEmailEffectiveFilters.js";
|
|
4
5
|
import { useScheduledEmailExportSettings } from "./useScheduledEmailExportSettings.js";
|
|
5
6
|
import { useScheduledEmailFilters } from "./useScheduledEmailFilters.js";
|
|
6
7
|
import { useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
|
|
7
8
|
import { useScheduledEmailFormValidity } from "./useScheduledEmailFormValidity.js";
|
|
8
|
-
export function useEditScheduledEmail({
|
|
9
|
+
export function useEditScheduledEmail({ editedAutomationFilters, editedAutomationFiltersByTab, maxAutomationsRecipients, setEditedAutomationFilters, setEditedAutomationFiltersByTab, availableFiltersAsVisibleFilters, storeFilters, setStoreFilters, filtersForNewAutomation, externalRecipientOverride, defaultPdfPageSize, filtersDataByTab, availableFiltersAsVisibleFiltersByTab, }) {
|
|
9
10
|
const { features: { enableAutomationEvaluationMode }, } = useAutomationsContext();
|
|
11
|
+
const { scheduledExportToEdit, widget, insight, users, usersError, notificationChannels, dashboardFilters, } = useScheduledEmailDialogContext();
|
|
10
12
|
const areDashboardFiltersChanged = !!dashboardFilters;
|
|
11
13
|
const { effectiveWidgetFilters, effectiveWidgetFiltersWithInsight, effectiveVisibleWidgetFilters, effectiveDashboardFilters, effectiveDashboardFiltersByTab, effectiveVisibleDashboardFilters, effectiveVisibleDashboardFiltersByTab, parametersByTabForNewAutomation, } = useScheduledEmailEffectiveFilters({
|
|
12
14
|
widget,
|
|
@@ -79,6 +81,8 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
79
81
|
editedAutomation,
|
|
80
82
|
isCronValid,
|
|
81
83
|
notificationChannels,
|
|
84
|
+
users,
|
|
85
|
+
usersError,
|
|
82
86
|
isDashboardExportSelected,
|
|
83
87
|
isCsvExportSelected,
|
|
84
88
|
isXlsxExportSelected,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Tracks a DOM node's scrollHeight, keeping the last measured value even after the node
|
|
4
|
+
* unmounts. Uses a ResizeObserver to catch content-size changes while the node stays mounted,
|
|
5
|
+
* not just mount/unmount transitions (e.g. a tab switch).
|
|
6
|
+
*
|
|
7
|
+
* @param ref - ref to the observed node
|
|
8
|
+
* @param resubscribeKey - forces a resubscribe when the ref will point to a freshly mounted node
|
|
9
|
+
* (e.g. a tab id gating the node's conditional rendering)
|
|
10
|
+
*/
|
|
11
|
+
export declare function useElementHeightSnapshot(ref: RefObject<HTMLElement | null>, resubscribeKey: unknown): number | undefined;
|
|
12
|
+
//# sourceMappingURL=useElementHeightSnapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementHeightSnapshot.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AAElF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACpC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAClC,cAAc,EAAE,OAAO,GACxB,MAAM,GAAG,SAAS,CAuCpB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Tracks a DOM node's scrollHeight, keeping the last measured value even after the node
|
|
5
|
+
* unmounts. Uses a ResizeObserver to catch content-size changes while the node stays mounted,
|
|
6
|
+
* not just mount/unmount transitions (e.g. a tab switch).
|
|
7
|
+
*
|
|
8
|
+
* @param ref - ref to the observed node
|
|
9
|
+
* @param resubscribeKey - forces a resubscribe when the ref will point to a freshly mounted node
|
|
10
|
+
* (e.g. a tab id gating the node's conditional rendering)
|
|
11
|
+
*/
|
|
12
|
+
export function useElementHeightSnapshot(ref, resubscribeKey) {
|
|
13
|
+
const lastMeasuredHeightRef = useRef(undefined);
|
|
14
|
+
const subscribe = useCallback((onStoreChange) => {
|
|
15
|
+
const node = ref.current;
|
|
16
|
+
if (!node) {
|
|
17
|
+
return () => { };
|
|
18
|
+
}
|
|
19
|
+
const updateHeight = () => {
|
|
20
|
+
lastMeasuredHeightRef.current = node.scrollHeight;
|
|
21
|
+
onStoreChange();
|
|
22
|
+
};
|
|
23
|
+
// Measure once unconditionally - environments without ResizeObserver still need
|
|
24
|
+
// an initial (and only) measurement rather than never syncing at all.
|
|
25
|
+
updateHeight();
|
|
26
|
+
if (typeof ResizeObserver === "undefined") {
|
|
27
|
+
return () => { };
|
|
28
|
+
}
|
|
29
|
+
const observer = new ResizeObserver(updateHeight);
|
|
30
|
+
observer.observe(node);
|
|
31
|
+
return () => {
|
|
32
|
+
observer.disconnect();
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
// resubscribeKey is not read in the body, but must force a resubscribe once the ref
|
|
36
|
+
// points to a newly mounted node.
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
|
+
[ref, resubscribeKey]);
|
|
39
|
+
const getSnapshot = useCallback(() => lastMeasuredHeightRef.current, []);
|
|
40
|
+
return useSyncExternalStore(subscribe, getSnapshot);
|
|
41
|
+
}
|
|
@@ -2,5 +2,5 @@ import { type IScheduledEmailManagementDialogProps } from "../types.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* @alpha
|
|
4
4
|
*/
|
|
5
|
-
export declare function ScheduledEmailManagementDialog({ onAdd, onEdit, onClose
|
|
5
|
+
export declare function ScheduledEmailManagementDialog({ onAdd, onEdit, onClose }: IScheduledEmailManagementDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=DefaultScheduledEmailManagementDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultScheduledEmailManagementDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAIxE;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC3C,KAAK,EACL,MAAM,EACN,OAAO,
|
|
1
|
+
{"version":3,"file":"DefaultScheduledEmailManagementDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAIxE;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC3C,KAAK,EACL,MAAM,EACN,OAAO,EACV,EAAE,oCAAoC,2CAetC"}
|
|
@@ -5,9 +5,9 @@ import { DefaultScheduledEmailManagementDialogContent } from "./DefaultScheduled
|
|
|
5
5
|
/**
|
|
6
6
|
* @alpha
|
|
7
7
|
*/
|
|
8
|
-
export function ScheduledEmailManagementDialog({ onAdd, onEdit, onClose,
|
|
8
|
+
export function ScheduledEmailManagementDialog({ onAdd, onEdit, onClose, }) {
|
|
9
9
|
const handleScheduleEdit = useCallback((scheduledEmail) => {
|
|
10
10
|
onEdit?.(scheduledEmail);
|
|
11
11
|
}, [onEdit]);
|
|
12
|
-
return (_jsx(DefaultScheduledEmailManagementDialogContent, { onAdd: onAdd, onClose: onClose, onEdit: handleScheduleEdit
|
|
12
|
+
return (_jsx(DefaultScheduledEmailManagementDialogContent, { onAdd: onAdd, onClose: onClose, onEdit: handleScheduleEdit }));
|
|
13
13
|
}
|
|
@@ -3,9 +3,7 @@ interface IDefaultScheduledEmailManagementDialogContentProps {
|
|
|
3
3
|
onAdd?: () => void;
|
|
4
4
|
onClose?: () => void;
|
|
5
5
|
onEdit: (scheduledEmail: IAutomationMetadataObject) => void;
|
|
6
|
-
isLoadingScheduleData: boolean;
|
|
7
|
-
automations: IAutomationMetadataObject[];
|
|
8
6
|
}
|
|
9
|
-
export declare function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, onEdit
|
|
7
|
+
export declare function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, onEdit }: IDefaultScheduledEmailManagementDialogContentProps): import("react/jsx-runtime").JSX.Element;
|
|
10
8
|
export {};
|
|
11
9
|
//# sourceMappingURL=DefaultScheduledEmailManagementDialogContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultScheduledEmailManagementDialogContent.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA4BrE,UAAU,kDAAkD;IACxD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,cAAc,EAAE,yBAAyB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultScheduledEmailManagementDialogContent.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContent.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA4BrE,UAAU,kDAAkD;IACxD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,cAAc,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC/D;AAED,wBAAgB,4CAA4C,CAAC,EACzD,KAAK,EACL,OAAO,EACP,MAAM,EACT,EAAE,kDAAkD,2CA8JpD"}
|
|
@@ -16,13 +16,13 @@ import { SCHEDULED_EMAIL_DIALOG_ID } from "../DefaultScheduledEmailDialog/consta
|
|
|
16
16
|
import { useScheduleEmailDialogAccessibility } from "../hooks/useScheduleEmailDialogAccessibility.js";
|
|
17
17
|
import { isMobileView } from "../utils/responsive.js";
|
|
18
18
|
const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
|
|
19
|
-
export function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, onEdit,
|
|
19
|
+
export function DefaultScheduledEmailManagementDialogContent({ onAdd, onClose, onEdit, }) {
|
|
20
20
|
const intl = useIntl();
|
|
21
21
|
const isMobile = isMobileView();
|
|
22
22
|
const workspace = useWorkspace();
|
|
23
23
|
const backend = useBackend();
|
|
24
24
|
const { timezone, locale, settings, isWhiteLabeled, isExecutionTimestampMode, externalRecipient: externalRecipientOverride, features: { canCreateAutomation }, } = useAutomationsContext();
|
|
25
|
-
const { dashboardId, dashboardTitle, enableAccessibilityMode, isScheduleEmailDialogOpen: isEditDialogOpen, automationsInvalidationId, isEmbedded, maxAutomations, unlimitedAutomations, } = useScheduledEmailManagementDialogContext();
|
|
25
|
+
const { dashboardId, dashboardTitle, enableAccessibilityMode, isScheduleEmailDialogOpen: isEditDialogOpen, automationsInvalidationId, isEmbedded, maxAutomations, unlimitedAutomations, automations, isLoading: isLoadingScheduleData, } = useScheduledEmailManagementDialogContext();
|
|
26
26
|
const enableBulkActions = !enableAccessibilityMode;
|
|
27
27
|
const useHostRoute = computeUseHostRoute(settings);
|
|
28
28
|
const { returnFocusTo } = useScheduleEmailDialogAccessibility();
|
|
@@ -7,20 +7,29 @@ import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
|
7
7
|
export interface IScheduledEmailDialogProps {
|
|
8
8
|
/**
|
|
9
9
|
* In case, we are not creating new schedule, but editing existing one, this is the active schedule to be edited.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated read `scheduledExportToEdit` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
|
|
10
12
|
*/
|
|
11
13
|
scheduledExportToEdit?: IAutomationMetadataObject;
|
|
12
14
|
/**
|
|
13
15
|
* Users in workspace
|
|
16
|
+
*
|
|
17
|
+
* @deprecated read `users` from `useScheduledEmailDialogContext()` 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 `useScheduledEmailDialogContext()` 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 `useScheduledEmailDialogContext()` instead.
|
|
30
|
+
* Prop will be removed.
|
|
22
31
|
*/
|
|
23
|
-
notificationChannels
|
|
32
|
+
notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
24
33
|
/**
|
|
25
34
|
* Widget to be used for scheduled email.
|
|
26
35
|
*
|
|
@@ -28,12 +37,16 @@ export interface IScheduledEmailDialogProps {
|
|
|
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
|
* export targets and were silently discarded at the connector boundary anyway.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated read `widget` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
|
|
31
42
|
*/
|
|
32
43
|
widget?: IWidget;
|
|
33
44
|
/**
|
|
34
45
|
* Insight to be used for scheduled email.
|
|
35
46
|
*
|
|
36
47
|
* Note: this is available only when scheduling export for widget, not dashboard.
|
|
48
|
+
*
|
|
49
|
+
* @deprecated read `insight` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
|
|
37
50
|
*/
|
|
38
51
|
insight?: IInsight;
|
|
39
52
|
/**
|
|
@@ -47,6 +60,8 @@ export interface IScheduledEmailDialogProps {
|
|
|
47
60
|
* the export reflects the latest intended filter configuration and we don't want to save them.
|
|
48
61
|
*
|
|
49
62
|
* - If we are editing an existing scheduled export, this will contain its filters, as changing saved filters is currently not allowed.
|
|
63
|
+
*
|
|
64
|
+
* @deprecated read `dashboardFilters` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
|
|
50
65
|
*/
|
|
51
66
|
dashboardFilters?: FilterContextItem[];
|
|
52
67
|
/**
|
|
@@ -59,10 +74,15 @@ export interface IScheduledEmailDialogProps {
|
|
|
59
74
|
* - If the resulting filters include all-time date filter, it is excluded as it has no effect on the scheduled export execution.
|
|
60
75
|
*
|
|
61
76
|
* - If we are editing an existing scheduled export, this will contain its filters, as changing saved filters is currently not allowed.
|
|
77
|
+
*
|
|
78
|
+
* @deprecated not read by the default dialog; the effective widget filters are derived from the
|
|
79
|
+
* edited filters. Prop will be removed.
|
|
62
80
|
*/
|
|
63
81
|
widgetFilters?: IFilter[];
|
|
64
82
|
/**
|
|
65
83
|
* Is scheduled email dialog loading initial data, before it can be rendered?
|
|
84
|
+
*
|
|
85
|
+
* @deprecated read `isLoading` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
|
|
66
86
|
*/
|
|
67
87
|
isLoading?: boolean;
|
|
68
88
|
/**
|
|
@@ -113,20 +133,30 @@ export interface IScheduledEmailDialogProps {
|
|
|
113
133
|
export interface IScheduledEmailManagementDialogProps {
|
|
114
134
|
/**
|
|
115
135
|
* Is loading schedule data?
|
|
136
|
+
*
|
|
137
|
+
* @deprecated read `isLoading` from `useScheduledEmailManagementDialogContext()` instead. Prop will
|
|
138
|
+
* be removed.
|
|
116
139
|
*/
|
|
117
|
-
isLoadingScheduleData
|
|
140
|
+
isLoadingScheduleData?: boolean;
|
|
118
141
|
/**
|
|
119
142
|
* Error occurred while loading schedule data?
|
|
143
|
+
*
|
|
144
|
+
* @deprecated not read by the default dialog. Prop will be removed.
|
|
120
145
|
*/
|
|
121
146
|
scheduleDataError?: GoodDataSdkError;
|
|
122
147
|
/**
|
|
123
148
|
* Notification channels in organization
|
|
149
|
+
*
|
|
150
|
+
* @deprecated not read by the default dialog. Prop will be removed.
|
|
124
151
|
*/
|
|
125
|
-
notificationChannels
|
|
152
|
+
notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
|
|
126
153
|
/**
|
|
127
154
|
* Automations in workspace
|
|
155
|
+
*
|
|
156
|
+
* @deprecated read `automations` from `useScheduledEmailManagementDialogContext()` instead. Prop
|
|
157
|
+
* will be removed.
|
|
128
158
|
*/
|
|
129
|
-
automations
|
|
159
|
+
automations?: IAutomationMetadataObject[];
|
|
130
160
|
/**
|
|
131
161
|
* Callback to be called, when user adds new scheduled email item.
|
|
132
162
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/scheduledEmail/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,OAAO,EACZ,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,0BAA0B;IACvC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/scheduledEmail/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,OAAO,EACZ,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,0BAA0B;IACvC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAElD;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IAEzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAE/F;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEvC;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,CACP,wBAAwB,EAAE,yBAAyB,GAAG,mCAAmC,KACxF,IAAI,CAAC;IAEV;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAEvE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAE1E;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,oCAAoC;IACjD;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAE/F;;;;;OAKG;IACH,WAAW,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE1C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACrD;AAMD;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,6CAA6C,GACrD,aAAa,CAAC,oCAAoC,CAAC,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduled-email flavor of a timezone entry, adapting the shared curated list from sdk-ui-kit.
|
|
3
|
+
*/
|
|
1
4
|
export interface ITimezone {
|
|
2
5
|
identifier: string;
|
|
3
6
|
januaryOffset: number;
|
|
@@ -6,5 +9,5 @@ export interface ITimezone {
|
|
|
6
9
|
}
|
|
7
10
|
export declare const TIMEZONE_DEFAULT: ITimezone;
|
|
8
11
|
export declare function getUserTimezone(): ITimezone;
|
|
9
|
-
export declare function getTimezoneByIdentifier(
|
|
12
|
+
export declare function getTimezoneByIdentifier(identifier: string | undefined): ITimezone | undefined;
|
|
10
13
|
//# sourceMappingURL=timezone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/timezone.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/timezone.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAWD,eAAO,MAAM,gBAAgB,WAA0C,CAAC;AAExE,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAG7F"}
|
|
@@ -1,142 +1,18 @@
|
|
|
1
1
|
// (C) 2019-2026 GoodData Corporation
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
["America/Chihuahua", "GMT-07:00 Chihuahua", -420, -360],
|
|
13
|
-
["America/Mazatlan", "GMT-07:00 Mazatlan", -420, -360],
|
|
14
|
-
["America/Denver", "GMT-07:00 Mountain Time (US & Canada)", -420, -360],
|
|
15
|
-
["America/Guatemala", "GMT-06:00 Central America", -360, -360],
|
|
16
|
-
["America/Chicago", "GMT-06:00 Central Time (US & Canada)", -360, -300],
|
|
17
|
-
["America/Mexico_City", "GMT-06:00 Mexico City", -360, -300],
|
|
18
|
-
["America/Monterrey", "GMT-06:00 Monterrey", -360, -300],
|
|
19
|
-
["America/Regina", "GMT-06:00 Saskatchewan", -360, -360],
|
|
20
|
-
["America/Bogota", "GMT-05:00 Bogota", -300, -300],
|
|
21
|
-
["America/New_York", "GMT-05:00 Eastern Time (US & Canada)", -300, -240],
|
|
22
|
-
["America/Indiana/Indianapolis", "GMT-05:00 Indiana (East)", -300, -240],
|
|
23
|
-
["America/Lima", "GMT-05:00 Lima", -300, -300],
|
|
24
|
-
["America/Caracas", "GMT-04:30 Caracas", -270, -270],
|
|
25
|
-
["America/Halifax", "GMT-04:00 Atlantic Time (Canada)", -240, -180],
|
|
26
|
-
["America/Guyana", "GMT-04:00 Georgetown", -240, -240],
|
|
27
|
-
["America/La_Paz", "GMT-04:00 La Paz", -240, -240],
|
|
28
|
-
["America/Santiago", "GMT-04:00 Santiago", -180, -240],
|
|
29
|
-
["America/St_Johns", "GMT-03:30 Newfoundland", -210, -150],
|
|
30
|
-
["America/Sao_Paulo", "GMT-03:00 Brasilia", -120, -180],
|
|
31
|
-
["America/Argentina/Buenos_Aires", "GMT-03:00 Buenos Aires", -180, -180],
|
|
32
|
-
["America/Godthab", "GMT-03:00 Greenland", -180, -120],
|
|
33
|
-
["Atlantic/South_Georgia", "GMT-02:00 Mid-Atlantic", -120, -120],
|
|
34
|
-
["Atlantic/Azores", "GMT-01:00 Azores", -60, 0],
|
|
35
|
-
["Atlantic/Cape_Verde", "GMT-01:00 Cape Verde Is.", -60, -60],
|
|
36
|
-
["Africa/Casablanca", "GMT+00:00 Casablanca", 0, 0],
|
|
37
|
-
["Europe/Dublin", "GMT+00:00 Dublin", 0, 60],
|
|
38
|
-
["Europe/Lisbon", "GMT+00:00 Lisbon", 0, 60],
|
|
39
|
-
["Europe/London", "GMT+00:00 London", 0, 60],
|
|
40
|
-
["Africa/Monrovia", "GMT+00:00 Monrovia", 0, 0],
|
|
41
|
-
["Etc/UTC", "GMT+00:00 UTC", 0, 0],
|
|
42
|
-
["Europe/Amsterdam", "GMT+01:00 Amsterdam", 60, 120],
|
|
43
|
-
["Europe/Belgrade", "GMT+01:00 Belgrade", 60, 120],
|
|
44
|
-
["Europe/Berlin", "GMT+01:00 Berlin", 60, 120],
|
|
45
|
-
["Europe/Bratislava", "GMT+01:00 Bratislava", 60, 120],
|
|
46
|
-
["Europe/Brussels", "GMT+01:00 Brussels", 60, 120],
|
|
47
|
-
["Europe/Budapest", "GMT+01:00 Budapest", 60, 120],
|
|
48
|
-
["Europe/Copenhagen", "GMT+01:00 Copenhagen", 60, 120],
|
|
49
|
-
["Europe/Ljubljana", "GMT+01:00 Ljubljana", 60, 120],
|
|
50
|
-
["Europe/Madrid", "GMT+01:00 Madrid", 60, 120],
|
|
51
|
-
["Europe/Paris", "GMT+01:00 Paris", 60, 120],
|
|
52
|
-
["Europe/Prague", "GMT+01:00 Prague", 60, 120],
|
|
53
|
-
["Europe/Rome", "GMT+01:00 Rome", 60, 120],
|
|
54
|
-
["Europe/Sarajevo", "GMT+01:00 Sarajevo", 60, 120],
|
|
55
|
-
["Europe/Skopje", "GMT+01:00 Skopje", 60, 120],
|
|
56
|
-
["Europe/Stockholm", "GMT+01:00 Stockholm", 60, 120],
|
|
57
|
-
["Europe/Vienna", "GMT+01:00 Vienna", 60, 120],
|
|
58
|
-
["Europe/Warsaw", "GMT+01:00 Warsaw", 60, 120],
|
|
59
|
-
["Africa/Algiers", "GMT+01:00 West Central Africa", 60, 60],
|
|
60
|
-
["Europe/Zagreb", "GMT+01:00 Zagreb", 60, 120],
|
|
61
|
-
["Europe/Athens", "GMT+02:00 Athens", 120, 180],
|
|
62
|
-
["Europe/Bucharest", "GMT+02:00 Bucharest", 120, 180],
|
|
63
|
-
["Africa/Cairo", "GMT+02:00 Cairo", 120, 180],
|
|
64
|
-
["Africa/Harare", "GMT+02:00 Harare", 120, 120],
|
|
65
|
-
["Europe/Helsinki", "GMT+02:00 Helsinki", 120, 180],
|
|
66
|
-
["Europe/Istanbul", "GMT+02:00 Istanbul", 120, 180],
|
|
67
|
-
["Asia/Jerusalem", "GMT+02:00 Jerusalem", 120, 180],
|
|
68
|
-
["Europe/Kiev", "GMT+02:00 Kyiv", 120, 180],
|
|
69
|
-
["Europe/Minsk", "GMT+02:00 Minsk", 120, 180],
|
|
70
|
-
["Africa/Johannesburg", "GMT+02:00 Pretoria", 120, 120],
|
|
71
|
-
["Europe/Riga", "GMT+02:00 Riga", 120, 180],
|
|
72
|
-
["Europe/Sofia", "GMT+02:00 Sofia", 120, 180],
|
|
73
|
-
["Europe/Tallinn", "GMT+02:00 Tallinn", 120, 180],
|
|
74
|
-
["Europe/Vilnius", "GMT+02:00 Vilnius", 120, 180],
|
|
75
|
-
["Asia/Baghdad", "GMT+03:00 Baghdad", 180, 180],
|
|
76
|
-
["Asia/Kuwait", "GMT+03:00 Kuwait", 180, 180],
|
|
77
|
-
["Europe/Moscow", "GMT+03:00 Moscow", 180, 240],
|
|
78
|
-
["Africa/Nairobi", "GMT+03:00 Nairobi", 180, 180],
|
|
79
|
-
["Asia/Riyadh", "GMT+03:00 Riyadh", 180, 180],
|
|
80
|
-
["Asia/Tehran", "GMT+03:30 Tehran", 210, 270],
|
|
81
|
-
["Asia/Baku", "GMT+04:00 Baku", 240, 300],
|
|
82
|
-
["Asia/Muscat", "GMT+04:00 Muscat", 240, 240],
|
|
83
|
-
["Asia/Tbilisi", "GMT+04:00 Tbilisi", 240, 240],
|
|
84
|
-
["Asia/Yerevan", "GMT+04:00 Yerevan", 240, 300],
|
|
85
|
-
["Asia/Kabul", "GMT+04:30 Kabul", 270, 270],
|
|
86
|
-
["Asia/Yekaterinburg", "GMT+05:00 Ekaterinburg", 300, 360],
|
|
87
|
-
["Asia/Karachi", "GMT+05:00 Karachi", 300, 300],
|
|
88
|
-
["Asia/Tashkent", "GMT+05:00 Tashkent", 300, 300],
|
|
89
|
-
["Asia/Kolkata", "GMT+05:30 Kolkata", 330, 330],
|
|
90
|
-
["Asia/Colombo", "GMT+05:30 Sri Jayawardenepura", 330, 330],
|
|
91
|
-
["Asia/Kathmandu", "GMT+05:45 Kathmandu", 345, 345],
|
|
92
|
-
["Asia/Almaty", "GMT+06:00 Almaty", 360, 360],
|
|
93
|
-
["Asia/Dhaka", "GMT+06:00 Dhaka", 360, 360],
|
|
94
|
-
["Asia/Novosibirsk", "GMT+06:00 Novosibirsk", 360, 420],
|
|
95
|
-
["Asia/Rangoon", "GMT+06:30 Rangoon", 390, 390],
|
|
96
|
-
["Asia/Bangkok", "GMT+07:00 Bangkok", 420, 420],
|
|
97
|
-
["Asia/Jakarta", "GMT+07:00 Jakarta", 420, 420],
|
|
98
|
-
["Asia/Krasnoyarsk", "GMT+07:00 Krasnoyarsk", 420, 480],
|
|
99
|
-
["Asia/Shanghai", "GMT+08:00 Beijing", 480, 480],
|
|
100
|
-
["Asia/Chongqing", "GMT+08:00 Chongqing", 480, 480],
|
|
101
|
-
["Asia/Hong_Kong", "GMT+08:00 Hong Kong", 480, 480],
|
|
102
|
-
["Asia/Irkutsk", "GMT+08:00 Irkutsk", 480, 540],
|
|
103
|
-
["Asia/Kuala_Lumpur", "GMT+08:00 Kuala Lumpur", 480, 480],
|
|
104
|
-
["Australia/Perth", "GMT+08:00 Perth", 480, 480],
|
|
105
|
-
["Asia/Singapore", "GMT+08:00 Singapore", 480, 480],
|
|
106
|
-
["Asia/Taipei", "GMT+08:00 Taipei", 480, 480],
|
|
107
|
-
["Asia/Ulaanbaatar", "GMT+08:00 Ulaan Bataar", 480, 480],
|
|
108
|
-
["Asia/Urumqi", "GMT+08:00 Urumqi", 480, 480],
|
|
109
|
-
["Asia/Seoul", "GMT+09:00 Seoul", 540, 540],
|
|
110
|
-
["Asia/Tokyo", "GMT+09:00 Tokyo", 540, 540],
|
|
111
|
-
["Asia/Yakutsk", "GMT+09:00 Yakutsk", 540, 600],
|
|
112
|
-
["Australia/Adelaide", "GMT+09:30 Adelaide", 630, 570],
|
|
113
|
-
["Australia/Darwin", "GMT+09:30 Darwin", 570, 570],
|
|
114
|
-
["Australia/Brisbane", "GMT+10:00 Brisbane", 600, 600],
|
|
115
|
-
["Pacific/Guam", "GMT+10:00 Guam", 600, 600],
|
|
116
|
-
["Australia/Hobart", "GMT+10:00 Hobart", 660, 600],
|
|
117
|
-
["Australia/Melbourne", "GMT+10:00 Melbourne", 660, 600],
|
|
118
|
-
["Pacific/Port_Moresby", "GMT+10:00 Port Moresby", 600, 600],
|
|
119
|
-
["Australia/Sydney", "GMT+10:00 Sydney", 660, 600],
|
|
120
|
-
["Asia/Vladivostok", "GMT+10:00 Vladivostok", 600, 660],
|
|
121
|
-
["Asia/Kamchatka", "GMT+11:00 Kamchatka", 660, 720],
|
|
122
|
-
["Asia/Magadan", "GMT+11:00 Magadan", 660, 720],
|
|
123
|
-
["Pacific/Noumea", "GMT+11:00 New Caledonia", 660, 660],
|
|
124
|
-
["Pacific/Auckland", "GMT+12:00 Auckland", 780, 720],
|
|
125
|
-
["Pacific/Fiji", "GMT+12:00 Fiji", 780, 720],
|
|
126
|
-
["Pacific/Majuro", "GMT+12:00 Marshall Is.", 720, 720],
|
|
127
|
-
["Pacific/Tongatapu", "GMT+13:00 Nuku'alofa", 780, 780],
|
|
128
|
-
];
|
|
129
|
-
const timezones = timezonesRaw.map((t) => ({
|
|
130
|
-
identifier: t[0],
|
|
131
|
-
title: t[1],
|
|
132
|
-
januaryOffset: t[2],
|
|
133
|
-
juneOffset: t[3],
|
|
134
|
-
}));
|
|
135
|
-
const TIMEZONE_BY_OFFSETS = timezones.find((tz) => tz.januaryOffset === JANUARY_OFFSET && tz.juneOffset === JUNE_OFFSET);
|
|
136
|
-
export const TIMEZONE_DEFAULT = getTimezoneByIdentifier("Etc/UTC");
|
|
2
|
+
import { getTimezoneById, getTimezoneTitle, getUserTimezone as getUserTimezoneItem, } from "@gooddata/sdk-ui-kit";
|
|
3
|
+
function toTimezone(item) {
|
|
4
|
+
return {
|
|
5
|
+
identifier: item.id,
|
|
6
|
+
title: getTimezoneTitle(item),
|
|
7
|
+
januaryOffset: item.januaryOffset,
|
|
8
|
+
juneOffset: item.juneOffset,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export const TIMEZONE_DEFAULT = toTimezone(getTimezoneById("Etc/UTC"));
|
|
137
12
|
export function getUserTimezone() {
|
|
138
|
-
return
|
|
13
|
+
return toTimezone(getUserTimezoneItem());
|
|
139
14
|
}
|
|
140
|
-
export function getTimezoneByIdentifier(
|
|
141
|
-
|
|
15
|
+
export function getTimezoneByIdentifier(identifier) {
|
|
16
|
+
const item = identifier ? getTimezoneById(identifier) : undefined;
|
|
17
|
+
return item ? toTimezone(item) : undefined;
|
|
142
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsDialogProvider.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/SettingsDialogProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsDialogProvider.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/SettingsDialogProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,OAAO,CAAC;AA2DvD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,GAAG,IAAI,CAwB5D"}
|
|
@@ -28,6 +28,7 @@ const useShareDialogDashboardHeader = () => {
|
|
|
28
28
|
dispatch(metaActions.setDisablePersistentFiltersAcrossTabs(payload.disablePersistentFiltersAcrossTabs));
|
|
29
29
|
dispatch(metaActions.setEvaluationFrequency(payload.evaluationFrequency));
|
|
30
30
|
dispatch(metaActions.setSectionHeadersDateDataSet(payload.sectionHeadersDateDataSet));
|
|
31
|
+
dispatch(metaActions.setDashboardTimezoneConfig(payload.timezoneConfig));
|
|
31
32
|
}, [closeSettingsDialog, dispatch]);
|
|
32
33
|
const onErrorSettingsDialog = useCallback(() => {
|
|
33
34
|
dispatch(uiActions.closeSettingsDialog());
|
|
@@ -20,7 +20,7 @@ export function DashboardLoading(props) {
|
|
|
20
20
|
// can tell the rendering has started even before any dashboard data is loaded.
|
|
21
21
|
// The element is a hidden sibling (same as the gd-dashboard-meta export data),
|
|
22
22
|
// so it cannot affect the layout of the loading indicator.
|
|
23
|
-
return (_jsxs(_Fragment, { children: [exportData ? _jsx("div", { style: { display: "none" }, ...exportData }) : null, _jsx(LoadingComponent, {})
|
|
23
|
+
return (_jsxs(_Fragment, { children: [exportData ? _jsx("div", { style: { display: "none" }, ...exportData }) : null, _jsx(LoadingComponent, { className: "sdk-dashboard-loading s-loading" })
|
|
24
24
|
] }));
|
|
25
25
|
}
|
|
26
26
|
return _jsx(DashboardInner, { ...props });
|