@gooddata/sdk-ui-dashboard 11.55.0-alpha.2 → 11.55.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.
Files changed (115) hide show
  1. package/NOTICE +4 -4
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +20 -2
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +18 -0
  7. package/esm/internal.d.ts +1 -1
  8. package/esm/internal.d.ts.map +1 -1
  9. package/esm/internal.js +1 -1
  10. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +10 -22
  11. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
  12. package/esm/model/store/tabs/parameters/parametersHelpers.js +13 -42
  13. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +8 -10
  14. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  15. package/esm/model/store/tabs/parameters/parametersSelectors.js +22 -32
  16. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +16 -16
  17. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  18. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +34 -109
  19. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.d.ts +10 -0
  20. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.d.ts.map +1 -0
  21. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.js +12 -0
  22. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts +49 -0
  23. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts.map +1 -0
  24. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.js +128 -0
  25. package/esm/presentation/automations/alerting/blocks/DefaultLoadingAlertingDialog.d.ts.map +1 -0
  26. package/esm/presentation/automations/alerting/types.d.ts +59 -0
  27. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  28. package/esm/presentation/automations/connectors/hooks/useBuildAlertingManagementDialogContext.d.ts.map +1 -1
  29. package/esm/presentation/automations/connectors/hooks/useBuildAlertingManagementDialogContext.js +7 -0
  30. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts +12 -0
  31. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts.map +1 -1
  32. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +15 -10
  33. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  34. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +45 -198
  35. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts +2 -18
  36. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
  37. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +2 -23
  38. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  39. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.d.ts +11 -0
  40. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.d.ts.map +1 -0
  41. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.js +12 -0
  42. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.d.ts +11 -0
  43. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.d.ts.map +1 -0
  44. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.js +12 -0
  45. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.d.ts +11 -0
  46. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.d.ts.map +1 -0
  47. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.js +12 -0
  48. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.d.ts +11 -0
  49. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.d.ts.map +1 -0
  50. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.js +12 -0
  51. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.d.ts +11 -0
  52. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.d.ts.map +1 -0
  53. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.js +12 -0
  54. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.d.ts +11 -0
  55. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.d.ts.map +1 -0
  56. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.js +12 -0
  57. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.d.ts +2 -17
  58. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.d.ts.map +1 -1
  59. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.js +0 -3
  60. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.d.ts +2 -6
  61. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.d.ts.map +1 -1
  62. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +1 -1
  63. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/SubjectForm/SubjectForm.d.ts +2 -10
  64. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/SubjectForm/SubjectForm.d.ts.map +1 -1
  65. package/esm/presentation/automations/scheduledEmail/blocks/DefaultLoadingScheduledEmailDialog.d.ts.map +1 -0
  66. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.d.ts +16 -0
  67. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.d.ts.map +1 -0
  68. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.js +28 -0
  69. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.d.ts +16 -0
  70. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.d.ts.map +1 -0
  71. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.js +28 -0
  72. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.d.ts +15 -0
  73. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.d.ts.map +1 -0
  74. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.js +27 -0
  75. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.d.ts +16 -0
  76. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.d.ts.map +1 -0
  77. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.js +24 -0
  78. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts +59 -0
  79. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts.map +1 -0
  80. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +195 -0
  81. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.d.ts +16 -0
  82. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.d.ts.map +1 -0
  83. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.js +29 -0
  84. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.d.ts +16 -0
  85. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.d.ts.map +1 -0
  86. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.js +28 -0
  87. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.d.ts +6 -0
  88. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.d.ts.map +1 -0
  89. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.js +13 -0
  90. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.d.ts +73 -0
  91. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.d.ts.map +1 -0
  92. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.js +168 -0
  93. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.d.ts +30 -0
  94. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.d.ts.map +1 -0
  95. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.js +26 -0
  96. package/esm/presentation/automations/scheduledEmail/types.d.ts +299 -1
  97. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  98. package/esm/presentation/automations/shared/hooks/useWorkspaceUsersSearch.d.ts +51 -0
  99. package/esm/presentation/automations/shared/hooks/useWorkspaceUsersSearch.d.ts.map +1 -0
  100. package/esm/presentation/automations/{scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect → shared/hooks}/useWorkspaceUsersSearch.js +13 -0
  101. package/esm/presentation/dashboard/components/DashboardScreenSizeContext.js +1 -1
  102. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +91 -91
  103. package/esm/presentation/widget/insightMenu/types.js +1 -1
  104. package/esm/presentation/widget/richTextMenu/types.d.ts.map +1 -1
  105. package/esm/presentation/widget/richTextMenu/types.js +2 -1
  106. package/esm/sdk-ui-dashboard.d.ts +824 -35
  107. package/package.json +22 -22
  108. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +0 -1
  109. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts.map +0 -1
  110. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/useWorkspaceUsersSearch.d.ts +0 -13
  111. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/useWorkspaceUsersSearch.d.ts.map +0 -1
  112. /package/esm/presentation/automations/alerting/{DefaultAlertingDialog → blocks}/DefaultLoadingAlertingDialog.d.ts +0 -0
  113. /package/esm/presentation/automations/alerting/{DefaultAlertingDialog → blocks}/DefaultLoadingAlertingDialog.js +0 -0
  114. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog → blocks}/DefaultLoadingScheduledEmailDialog.d.ts +0 -0
  115. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog → blocks}/DefaultLoadingScheduledEmailDialog.js +0 -0
@@ -1,182 +1,23 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2019-2026 GoodData Corporation
3
- import { useCallback, useMemo, useRef, useState } from "react";
4
- import cx from "classnames";
5
- import { useIntl } from "react-intl";
6
- import { ValidationContextStore, createInvalidNode, useValidationContextValue } from "@gooddata/sdk-ui";
7
- import { ConfirmDialogBase, ContentDivider, Message, Overlay, OverlayController, OverlayControllerProvider, RecurrenceForm, ScrollablePanel, UiTabs, getTimezoneDisplayLabel, isEnterKey, useIdPrefixed, } from "@gooddata/sdk-ui-kit";
8
- import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ContentDivider } from "@gooddata/sdk-ui-kit";
9
3
  import { IntlWrapper } from "../../../localization/IntlWrapper.js";
10
4
  import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
11
5
  import { useScheduledEmailDialogContext } from "../../contexts/ScheduledEmailDialogContext.js";
12
- import { ApplyCurrentFiltersConfirmDialog } from "../../shared/automationFilters/components/ApplyLatestFiltersConfirmDialog.js";
13
- import { AutomationDialogFooterLeft, DefaultAutomationDialogActionBar, } from "../../shared/slots/DefaultAutomationDialogActionBar.js";
14
- import { DeleteScheduleConfirmDialog } from "../DefaultScheduledEmailManagementDialog/components/DeleteScheduleConfirmDialog.js";
15
- import { useScheduleEmailDialogAccessibility } from "../hooks/useScheduleEmailDialogAccessibility.js";
16
- import { useScheduledExportActions } from "../state/ScheduledExportActionsContext.js";
6
+ import { DefaultLoadingScheduledEmailDialog } from "../blocks/DefaultLoadingScheduledEmailDialog.js";
7
+ import { ScheduledEmailDialogDashboardAttachments } from "../blocks/ScheduledEmailDialogDashboardAttachments.js";
8
+ import { ScheduledEmailDialogEvaluationMode } from "../blocks/ScheduledEmailDialogEvaluationMode.js";
9
+ import { ScheduledEmailDialogMessage } from "../blocks/ScheduledEmailDialogMessage.js";
10
+ import { ScheduledEmailDialogRecurrence } from "../blocks/ScheduledEmailDialogRecurrence.js";
11
+ import { ScheduledEmailDialogShell } from "../blocks/ScheduledEmailDialogShell.js";
12
+ import { ScheduledEmailDialogSubject } from "../blocks/ScheduledEmailDialogSubject.js";
13
+ import { ScheduledEmailDialogWidgetAttachments } from "../blocks/ScheduledEmailDialogWidgetAttachments.js";
17
14
  import { useScheduledExportDraft } from "../state/ScheduledExportDraftContext.js";
18
- import { useScheduledExportFilters } from "../state/ScheduledExportFiltersContext.js";
19
15
  import { useSaveScheduledEmailToBackend } from "../state/useSaveScheduledEmailToBackend.js";
20
- import { useScheduledEmailDialogActionBarProps, useScheduledEmailDialogDestinationProps, useScheduledEmailDialogFiltersProps, useScheduledEmailDialogHeaderProps, useScheduledEmailDialogRecipientsProps, useScheduledEmailDialogTimezoneProps, } from "../state/useScheduledEmailDialogRegionProps.js";
21
- import { useScheduledExportAttachments } from "../state/useScheduledExportAttachments.js";
22
- import { useScheduledExportDialogValidity } from "../state/useScheduledExportDialogValidity.js";
23
- import { getDefaultCronExpression } from "../utils/cron.js";
24
- import { TIMEZONE_DEFAULT } from "../utils/timezone.js";
25
- import { DashboardAttachments } from "./components/Attachments/DashboardAttachments.js";
26
- import { WidgetAttachments } from "./components/Attachments/WidgetAttachments.js";
16
+ import { useScheduledEmailDialogDestinationProps, useScheduledEmailDialogRecipientsProps, useScheduledEmailDialogTimezoneProps, } from "../state/useScheduledEmailDialogRegionProps.js";
17
+ import { useScheduledEmailSubmitOnEnter } from "../state/useScheduledEmailSubmitOnEnter.js";
27
18
  import { DefaultScheduledEmailDialogDestination } from "./components/DefaultScheduledEmailDialogDestination.js";
28
- import { DefaultScheduledEmailDialogFilters } from "./components/DefaultScheduledEmailDialogFilters.js";
29
- import { DefaultScheduledEmailDialogHeader } from "./components/DefaultScheduledEmailDialogHeader.js";
30
19
  import { DefaultScheduledEmailDialogRecipients } from "./components/DefaultScheduledEmailDialogRecipients.js";
31
20
  import { DefaultScheduledEmailDialogTimezone } from "./components/DefaultScheduledEmailDialogTimezone.js";
32
- import { EvaluationModeCheckbox } from "./components/EvaluationModeCheckbox/EvaluationModeCheckbox.js";
33
- import { MessageForm } from "./components/MessageForm/MessageForm.js";
34
- import { SubjectForm } from "./components/SubjectForm/SubjectForm.js";
35
- import { SCHEDULED_EMAIL_DIALOG_ID } from "./constants.js";
36
- import { DefaultLoadingScheduledEmailDialog } from "./DefaultLoadingScheduledEmailDialog.js";
37
- import { useElementHeightSnapshot } from "./hooks/useElementHeightSnapshot.js";
38
- const CLOSE_ON_PARENT_SCROLL = true;
39
- const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
40
- export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots, topContent, bottomContent, }) {
41
- const HeaderSlot = slots?.Header;
42
- const FiltersSlot = slots?.Filters;
43
- const TimezoneSlot = slots?.Timezone;
44
- const DestinationSlot = slots?.Destination;
45
- const RecipientsSlot = slots?.Recipients;
46
- const ActionBarSlot = slots?.ActionBar;
47
- const intl = useIntl();
48
- const dialogTitleRef = useRef(null);
49
- const generalTabContentRef = useRef(null);
50
- const filtersTabContentRef = useRef(null);
51
- const [scheduledEmailToDelete, setScheduledEmailToDelete] = useState(null);
52
- const [selectedTabId, setSelectedTabId] = useState("general");
53
- const { isWhiteLabeled, tabIds } = useAutomationsContext();
54
- const { exportTemplates, widget, dashboardFilters, notificationChannels } = useScheduledEmailDialogContext();
55
- const handleScheduleDeleteSuccess = () => {
56
- onDeleteSuccess?.();
57
- setScheduledEmailToDelete(null);
58
- };
59
- const { locale, dashboardTitle, dateFormat, weekStart, allowHourlyRecurrence, isCrossFiltering, isSlidesExportEnabled, isAccessibilityModeEnabled, enableAutomationEvaluationMode, } = useDefaultScheduledEmailDialogData();
60
- const { editedAutomation, startDate, isTimezoneFeatureEnabled, canSelectScheduleTimezone, scheduleTimezoneIsStale, } = useScheduledExportDraft();
61
- const { onRecurrenceChange, onEvaluationModeChange, onSubjectChange, onMessageChange, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, onSlidesTemplateIdChange, applyCurrentScheduleTimezone, } = useScheduledExportActions();
62
- const { onApplyCurrentFilters, automationIsValid, applyLatest: applyLatestParameters, } = useScheduledExportFilters();
63
- const { selectedAttachments, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, slidesTemplateIds } = useScheduledExportAttachments();
64
- const { isSubmitDisabled, validationErrorMessage } = useScheduledExportDialogValidity();
65
- // a stale schedule timezone repairs through the same consent dialog as stale filters
66
- const [isApplyCurrentFiltersDialogOpen, setIsApplyCurrentFiltersDialogOpen] = useState(!automationIsValid || scheduleTimezoneIsStale);
67
- const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend({ onSuccess, onError, onSubmit, onSaveSuccess, onSaveError, onSave });
68
- const { returnFocusTo } = useScheduleEmailDialogAccessibility();
69
- const missingAttachmentsErrorMessage = selectedAttachments.length === 0 &&
70
- intl.formatMessage({ id: "scheduledEmail.attachments.error.noAttachmentsSelected" });
71
- const validationContextValue = useValidationContextValue(createInvalidNode({ id: "ScheduledEmailDialog" }));
72
- const { getInvalidDatapoints } = validationContextValue;
73
- const errorMessage = savingErrorMessage ?? validationErrorMessage ?? missingAttachmentsErrorMessage;
74
- const titleElementId = useIdPrefixed("title");
75
- const actionBarDefaultProps = useScheduledEmailDialogActionBarProps({
76
- onCancel,
77
- onSubmit: handleSaveScheduledEmail,
78
- isSaving: isSavingScheduledEmail,
79
- onDelete: () => setScheduledEmailToDelete(editedAutomation),
80
- });
81
- const submitDisabled = actionBarDefaultProps.isSubmitDisabled;
82
- const handleSubmitForm = useCallback((e) => {
83
- if (isEnterKey(e) && !submitDisabled) {
84
- handleSaveScheduledEmail();
85
- }
86
- }, [submitDisabled, handleSaveScheduledEmail]);
87
- const headerDefaultProps = useScheduledEmailDialogHeaderProps({
88
- onBack,
89
- onTitleKeyDown: handleSubmitForm,
90
- ref: dialogTitleRef,
91
- });
92
- const filtersDefaultProps = useScheduledEmailDialogFiltersProps();
93
- const destinationDefaultProps = useScheduledEmailDialogDestinationProps();
94
- const recipientsDefaultProps = useScheduledEmailDialogRecipientsProps({
95
- onKeyDownSubmit: handleSubmitForm,
96
- });
97
- const timezoneDefaultProps = useScheduledEmailDialogTimezoneProps();
98
- const tabs = useMemo(() => [
99
- {
100
- id: "general",
101
- label: intl.formatMessage({ id: "dialogs.schedule.email.tabs.general" }),
102
- },
103
- {
104
- id: "filters",
105
- label: intl.formatMessage({ id: "dialogs.schedule.email.tabs.filters" }),
106
- },
107
- ], [intl]);
108
- const handleTabSelect = useCallback((tab) => {
109
- setSelectedTabId(tab.id);
110
- }, []);
111
- // Measure General tab content height to maintain consistent dialog size. Re-measures on
112
- // content-size changes within the General tab itself (e.g. validation messages
113
- // appearing/disappearing), not just on tab switch - otherwise the Filters tab could
114
- // inherit a stale minHeight from before the change. The last measured value is kept
115
- // internally so it survives the General tab unmounting when the user switches to Filters.
116
- const tabContentHeight = useElementHeightSnapshot(generalTabContentRef, selectedTabId);
117
- if (isApplyCurrentFiltersDialogOpen) {
118
- return (_jsx(ApplyCurrentFiltersConfirmDialog, { automationType: "schedule", filtersChanged: !automationIsValid, timezoneChanged: scheduleTimezoneIsStale, onCancel: () => onCancel?.(), onEdit: () => {
119
- // each repair only fixes its own staleness: a timezone-only repair must not
120
- // replace intentionally snapshotted, still-valid filters (and vice versa)
121
- if (!automationIsValid) {
122
- onApplyCurrentFilters();
123
- applyLatestParameters();
124
- }
125
- applyCurrentScheduleTimezone();
126
- setIsApplyCurrentFiltersDialogOpen(false);
127
- } }));
128
- }
129
- const selectedChannel = notificationChannels.find((channel) => channel.id === editedAutomation.notificationChannel);
130
- const isInPlatformChannel = selectedChannel?.destinationType === "inPlatform";
131
- return (_jsxs(_Fragment, { children: [
132
- _jsx(Overlay, { className: "gd-notifications-channels-dialog-overlay", isModal: true, positionType: "fixed", ensureVisibility: true, children: _jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(ValidationContextStore, { value: validationContextValue, children: _jsxs(ConfirmDialogBase, { className: "gd-notifications-channels-dialog s-gd-notifications-channels-dialog gd-dialog--wide gd-notifications-channels-dialog--wide", isPositive: true, cancelButtonText: actionBarDefaultProps.cancelButtonText, submitButtonText: actionBarDefaultProps.submitButtonText, accessibilityConfig: {
133
- closeButton: {
134
- ariaLabel: intl.formatMessage({
135
- id: "dialogs.schedule.email.closeLabel",
136
- }),
137
- },
138
- titleElementId,
139
- dialogId: SCHEDULED_EMAIL_DIALOG_ID,
140
- }, showProgressIndicator: actionBarDefaultProps.isSaving, returnFocusTo: returnFocusTo, returnFocusAfterClose: false, footerLeftRenderer: ActionBarSlot
141
- ? undefined
142
- : () => (_jsx(AutomationDialogFooterLeft, { helpLinkText: actionBarDefaultProps.helpLinkText, helpLinkHref: actionBarDefaultProps.helpLinkHref, deleteButtonText: actionBarDefaultProps.deleteButtonText, onDelete: actionBarDefaultProps.onDelete, isDeleteDisabled: actionBarDefaultProps.isSaving })), footerRenderer: ActionBarSlot
143
- ? () => (_jsx(ActionBarSlot, { Default: DefaultAutomationDialogActionBar, defaultProps: actionBarDefaultProps }))
144
- : undefined, isSubmitDisabled: actionBarDefaultProps.isSubmitDisabled, submitButtonTooltipText: actionBarDefaultProps.submitButtonTooltipText, initialFocus: dialogTitleRef, submitOnEnterKey: false, onCancel: onCancel, onSubmit: actionBarDefaultProps.onSubmit, headline: undefined, headerLeftButtonRenderer: () => {
145
- return HeaderSlot ? (_jsx(HeaderSlot, { Default: DefaultScheduledEmailDialogHeader, defaultProps: headerDefaultProps })) : (_jsx(DefaultScheduledEmailDialogHeader, { ...headerDefaultProps }));
146
- }, children: [
147
- _jsx("h2", { className: "sr-only", id: titleElementId, children: intl.formatMessage({ id: "dialogs.schedule.email.accessibilityTitle" }) }), tabs.length > 1 ? (_jsx(UiTabs, { tabs: tabs, selectedTabId: selectedTabId, onTabSelect: handleTabSelect, size: "medium", accessibilityConfig: {
148
- role: "tablist",
149
- tabRole: "tab",
150
- ariaLabel: intl.formatMessage({
151
- id: "dialogs.schedule.email.accessibilityTitle",
152
- }),
153
- }, disableBottomBorder: true })) : null, _jsxs(ScrollablePanel, { className: cx("gd-notifications-channel-dialog-content-wrapper", {
154
- "gd-notification-channel-dialog-with-automation-filters": true,
155
- "gd-notification-channel-dialog-with-tabs": tabs.length > 1,
156
- }), children: [topContent, _jsx("div", { className: "gd-divider-with-margin" }), selectedTabId === "filters" ? (_jsx("div", { ref: filtersTabContentRef, className: "gd-schedule-dialog-tab-content", style: tabContentHeight
157
- ? { minHeight: `${tabContentHeight}px` }
158
- : undefined, children: FiltersSlot ? (_jsx(FiltersSlot, { Default: DefaultScheduledEmailDialogFilters, defaultProps: filtersDefaultProps })) : (_jsx(DefaultScheduledEmailDialogFilters, { ...filtersDefaultProps })) })) : (_jsxs("div", { ref: generalTabContentRef, className: "gd-schedule-dialog-tab-content", children: [!widget && tabIds.length > 1 ? (_jsx(Message, { type: "progress", className: "gd-schedule-dialog-tab-content-info", children: intl.formatMessage({
159
- id: "dialogs.schedule.email.tabs.info",
160
- }) })) : null, _jsx(RecurrenceForm, { startDate: startDate, cronExpression: editedAutomation.schedule?.cron ??
161
- getDefaultCronExpression(startDate), cronDescription: editedAutomation.schedule?.cronDescription, timezone:
162
- // display-only prop; with the timezone feature on,
163
- // show the friendly label used by the time zone
164
- // picker instead of the raw IANA ID
165
- isTimezoneFeatureEnabled
166
- ? getTimezoneDisplayLabel(editedAutomation.schedule?.timezone ??
167
- TIMEZONE_DEFAULT.identifier)
168
- : (editedAutomation.schedule?.timezone ??
169
- TIMEZONE_DEFAULT.identifier), dateFormat: dateFormat ?? "MM/dd/yyyy", locale: locale, weekStart: weekStart, onChange: onRecurrenceChange, allowHourlyRecurrence: allowHourlyRecurrence, isWhiteLabeled: isWhiteLabeled, closeDropdownsOnParentScroll: CLOSE_ON_PARENT_SCROLL, onKeyDownSubmit: handleSubmitForm }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), DestinationSlot ? (_jsx(DestinationSlot, { Default: DefaultScheduledEmailDialogDestination, defaultProps: destinationDefaultProps })) : (_jsx(DefaultScheduledEmailDialogDestination, { ...destinationDefaultProps })), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), RecipientsSlot ? (_jsx(RecipientsSlot, { Default: DefaultScheduledEmailDialogRecipients, defaultProps: recipientsDefaultProps })) : (_jsx(DefaultScheduledEmailDialogRecipients, { ...recipientsDefaultProps })), isInPlatformChannel ? null : (_jsxs(_Fragment, { children: [
170
- _jsx(SubjectForm, { dashboardTitle: dashboardTitle, editedAutomation: editedAutomation, onChange: onSubjectChange, onKeyDownSubmit: handleSaveScheduledEmail, isSubmitDisabled: isSubmitDisabled }), _jsx(MessageForm, { onChange: onMessageChange, value: editedAutomation.details?.message ?? "" })
171
- ] })), widget ? (_jsx(WidgetAttachments, { selectedAttachments: selectedAttachments, onWidgetAttachmentsChange: onWidgetAttachmentsChange, xlsxSettings: xlsxSettings, pdfSettings: pdfSettings, onXlsxSettingsChange: onXlsxSettingsChange, onPdfSettingsChange: onPdfSettingsChange, csvSettings: csvSettings, onCsvSettingsChange: onCsvSettingsChange, csvRawSettings: csvRawSettings, onCsvRawSettingsChange: onCsvRawSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, isAccessibilityModeEnabled: isAccessibilityModeEnabled, exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange })) : (_jsx(DashboardAttachments, { selectedAttachments: selectedAttachments, dashboardFilters: dashboardFilters, isCrossFiltering: isCrossFiltering, onDashboardAttachmentsChange: onDashboardAttachmentsChange, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange })), canSelectScheduleTimezone ? (TimezoneSlot ? (_jsx(TimezoneSlot, { Default: DefaultScheduledEmailDialogTimezone, defaultProps: timezoneDefaultProps })) : (_jsx(DefaultScheduledEmailDialogTimezone, { ...timezoneDefaultProps }))) : null, enableAutomationEvaluationMode ? (_jsx(EvaluationModeCheckbox, { isShared: editedAutomation.evaluationMode === "SHARED", onChange: onEvaluationModeChange })) : null, errorMessage ? (_jsx(Message, { type: "error", className: cx("gd-notifications-channels-dialog-error", {
172
- "gd-notifications-channels-dialog-error-scrollable": true,
173
- }), children: errorMessage })) : null, getInvalidDatapoints()
174
- .filter((invalidDatapoint) => invalidDatapoint.severity === "error")
175
- .map((invalidDatapoint) => (_jsx(Message, { id: invalidDatapoint.id, type: "error", className: cx("gd-notifications-channels-dialog-error", {
176
- "gd-notifications-channels-dialog-error-scrollable": true,
177
- }), children: invalidDatapoint.message }, invalidDatapoint.id)))] })), bottomContent] })
178
- ] }) }) }) }), scheduledEmailToDelete ? (_jsx(DeleteScheduleConfirmDialog, { scheduledEmail: scheduledEmailToDelete, onCancel: () => setScheduledEmailToDelete(null), onSuccess: handleScheduleDeleteSuccess, onError: onDeleteError })) : null] }));
179
- }
180
21
  /**
181
22
  * Default implementation of the scheduled export create/edit dialog.
182
23
  *
@@ -195,14 +36,19 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
195
36
  * that is what lets a wholesale replacement receive the same contexts. Rendering this component
196
37
  * outside those providers throws at runtime.
197
38
  *
198
- * The dialog is composed from the exported region renders — {@link DefaultScheduledEmailDialogHeader},
199
- * {@link DefaultScheduledEmailDialogFilters}, {@link DefaultScheduledEmailDialogDestination},
200
- * {@link DefaultScheduledEmailDialogRecipients}, {@link DefaultScheduledEmailDialogTimezone},
201
- * {@link DefaultAutomationDialogActionBar} — fed by the matching `use*Props` hooks
202
- * ({@link useScheduledEmailDialogFiltersProps} and siblings). A custom `ScheduledEmailDialogComponent`
203
- * that keeps our regions but owns the markup places the connected blocks
204
- * ({@link ScheduledEmailDialogFilters} and siblings) instead of this component, and reads or writes
205
- * the same draft through {@link useScheduledExportDraft} and {@link useScheduledExportActions}.
39
+ * The dialog is {@link ScheduledEmailDialogShell} — the chrome: overlay, frame, header row, action bar, the
40
+ * General/Filters tabs, the body's messages, the stale-filters and delete confirmation steps, the loading
41
+ * skeleton — around the exported region renders ({@link DefaultScheduledEmailDialogDestination},
42
+ * {@link DefaultScheduledEmailDialogRecipients}, {@link DefaultScheduledEmailDialogTimezone}, fed by
43
+ * {@link useScheduledEmailDialogDestinationProps} and siblings; the header, action bar and the Filters tab's
44
+ * {@link DefaultScheduledEmailDialogFilters} are the shell's) and the General-tab field blocks
45
+ * ({@link ScheduledEmailDialogRecurrence}, {@link ScheduledEmailDialogSubject}, {@link ScheduledEmailDialogMessage},
46
+ * {@link ScheduledEmailDialogWidgetAttachments}, {@link ScheduledEmailDialogDashboardAttachments},
47
+ * {@link ScheduledEmailDialogEvaluationMode}). A custom `ScheduledEmailDialogComponent` that keeps this chrome
48
+ * but owns the arrangement renders {@link ScheduledEmailDialogShell} around the blocks it wants (see its
49
+ * example); one that owns the chrome too places the blocks ({@link ScheduledEmailDialogFilters} and
50
+ * siblings) in its own markup and reads or writes the same draft through {@link useScheduledExportDraft}
51
+ * and {@link useScheduledExportActions}.
206
52
  *
207
53
  * Slots render only in the fully rendered dialog: not while the dialog context reports loading,
208
54
  * and not while the stale-filters confirmation step is shown. The Filters slot additionally
@@ -212,28 +58,29 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
212
58
  */
213
59
  export function DefaultScheduledEmailDialog(props) {
214
60
  const { onCancel } = props;
61
+ const { locale } = useAutomationsContext();
215
62
  const { isLoading, scheduledExportToEdit } = useScheduledEmailDialogContext();
216
63
  if (isLoading) {
217
64
  return (_jsx(DefaultLoadingScheduledEmailDialog, { onCancel: onCancel, scheduledExportToEdit: scheduledExportToEdit }));
218
65
  }
219
- return _jsx(DefaultScheduledEmailDialogBody, { ...props });
220
- }
221
- function DefaultScheduledEmailDialogBody(props) {
222
- const { locale } = useAutomationsContext();
223
- return (_jsx(IntlWrapper, { locale: locale, children: _jsx(ScheduledMailDialogRenderer, { ...props }) }));
66
+ return (_jsx(IntlWrapper, { locale: locale, children: _jsx(DefaultScheduledEmailDialogBody, { ...props }) }));
224
67
  }
225
- function useDefaultScheduledEmailDialogData() {
226
- const { locale, settings, weekStart, allowHourlyRecurrence, features: { enableSlideshowExports, enableAutomationEvaluationMode }, } = useAutomationsContext();
227
- const { dashboardTitle, dateFormat, isCrossFiltering } = useScheduledEmailDialogContext();
228
- return {
229
- locale,
230
- dashboardTitle,
231
- dateFormat,
232
- weekStart,
233
- allowHourlyRecurrence,
234
- isCrossFiltering,
235
- isSlidesExportEnabled: enableSlideshowExports,
236
- isAccessibilityModeEnabled: settings?.enableAccessibilityMode === true,
237
- enableAutomationEvaluationMode,
238
- };
68
+ function DefaultScheduledEmailDialogBody({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, slots, topContent, bottomContent, }) {
69
+ const TimezoneSlot = slots?.Timezone;
70
+ const DestinationSlot = slots?.Destination;
71
+ const RecipientsSlot = slots?.Recipients;
72
+ const { canSelectScheduleTimezone } = useScheduledExportDraft();
73
+ const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend({ onSuccess, onError, onSubmit, onSaveSuccess, onSaveError, onSave });
74
+ const handleSubmitForm = useScheduledEmailSubmitOnEnter({
75
+ onSubmit: handleSaveScheduledEmail,
76
+ isSaving: isSavingScheduledEmail,
77
+ });
78
+ const destinationDefaultProps = useScheduledEmailDialogDestinationProps();
79
+ const recipientsDefaultProps = useScheduledEmailDialogRecipientsProps({
80
+ onKeyDownSubmit: handleSubmitForm,
81
+ });
82
+ const timezoneDefaultProps = useScheduledEmailDialogTimezoneProps();
83
+ return (_jsxs(ScheduledEmailDialogShell, { onBack: onBack, onCancel: onCancel, onDeleteSuccess: onDeleteSuccess, onDeleteError: onDeleteError, onSubmit: handleSaveScheduledEmail, isSaving: isSavingScheduledEmail, savingErrorMessage: savingErrorMessage, slots: slots, topContent: topContent, bottomContent: bottomContent, children: [
84
+ _jsx(ScheduledEmailDialogRecurrence, { onKeyDownSubmit: handleSubmitForm }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), DestinationSlot ? (_jsx(DestinationSlot, { Default: DefaultScheduledEmailDialogDestination, defaultProps: destinationDefaultProps })) : (_jsx(DefaultScheduledEmailDialogDestination, { ...destinationDefaultProps })), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), RecipientsSlot ? (_jsx(RecipientsSlot, { Default: DefaultScheduledEmailDialogRecipients, defaultProps: recipientsDefaultProps })) : (_jsx(DefaultScheduledEmailDialogRecipients, { ...recipientsDefaultProps })), _jsx(ScheduledEmailDialogSubject, { onKeyDownSubmit: handleSaveScheduledEmail }), _jsx(ScheduledEmailDialogMessage, {}), _jsx(ScheduledEmailDialogWidgetAttachments, {}), _jsx(ScheduledEmailDialogDashboardAttachments, {}), canSelectScheduleTimezone ? (TimezoneSlot ? (_jsx(TimezoneSlot, { Default: DefaultScheduledEmailDialogTimezone, defaultProps: timezoneDefaultProps })) : (_jsx(DefaultScheduledEmailDialogTimezone, { ...timezoneDefaultProps }))) : null, _jsx(ScheduledEmailDialogEvaluationMode, {})
85
+ ] }));
239
86
  }
@@ -1,19 +1,3 @@
1
- import { type DashboardAttachmentType, type FilterContextItem, type IExportDefinitionVisualizationObjectSettings, type IExportTemplate } from "@gooddata/sdk-model";
2
- export interface IDashboardAttachmentsProps {
3
- selectedAttachments: DashboardAttachmentType[];
4
- dashboardFilters?: FilterContextItem[];
5
- isCrossFiltering: boolean;
6
- onDashboardAttachmentsChange: (formats: DashboardAttachmentType[], filters?: FilterContextItem[]) => void;
7
- xlsxSettings: IExportDefinitionVisualizationObjectSettings;
8
- onXlsxSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
9
- isSlidesExportEnabled: boolean;
10
- exportTemplates?: IExportTemplate[];
11
- slidesTemplateIds?: {
12
- PPTX?: string;
13
- PDF_SLIDES?: string;
14
- PDF?: string;
15
- };
16
- onSlidesTemplateIdChange?: (templateId: string | undefined, format: "PPTX" | "PDF_SLIDES" | "PDF") => void;
17
- }
18
- export declare function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IDashboardAttachmentsProps): import("react/jsx-runtime").JSX.Element;
1
+ import { type IScheduledEmailDialogDashboardAttachmentsProps } from "../../../types.js";
2
+ export declare function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IScheduledEmailDialogDashboardAttachmentsProps): import("react/jsx-runtime").JSX.Element;
19
3
  //# sourceMappingURL=DashboardAttachments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACvB,MAAM,qBAAqB,CAAC;AAa7B,MAAM,WAAW,0BAA0B;IACvC,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;IAC/C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4BAA4B,EAAE,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC1G,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,wBAAwB,CAAC,EAAE,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,KACpC,IAAI,CAAC;CACb;AAED,wBAAgB,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,0BAA0B,2CA4H5B"}
1
+ {"version":3,"file":"DashboardAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,8CAA8C,EAAE,MAAM,mBAAmB,CAAC;AAUxF,wBAAgB,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,8CAA8C,2CA4HhD"}
@@ -1,24 +1,3 @@
1
- import { type IExportDefinitionVisualizationObjectSettings, type IExportTemplate, type WidgetAttachmentType } from "@gooddata/sdk-model";
2
- export interface IWidgetAttachmentsProps {
3
- selectedAttachments: WidgetAttachmentType[];
4
- onWidgetAttachmentsChange: (formats: WidgetAttachmentType[]) => void;
5
- xlsxSettings: IExportDefinitionVisualizationObjectSettings;
6
- onXlsxSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
7
- pdfSettings: IExportDefinitionVisualizationObjectSettings;
8
- onPdfSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
9
- csvSettings: IExportDefinitionVisualizationObjectSettings;
10
- onCsvSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
11
- csvRawSettings: IExportDefinitionVisualizationObjectSettings;
12
- onCsvRawSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
13
- isSlidesExportEnabled: boolean;
14
- isAccessibilityModeEnabled: boolean;
15
- exportTemplates?: IExportTemplate[];
16
- slidesTemplateIds?: {
17
- PPTX?: string;
18
- PDF_SLIDES?: string;
19
- PDF?: string;
20
- };
21
- onSlidesTemplateIdChange?: (templateId: string | undefined, format: "PPTX" | "PDF_SLIDES" | "PDF") => void;
22
- }
23
- export declare function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IWidgetAttachmentsProps): import("react/jsx-runtime").JSX.Element;
1
+ import { type IScheduledEmailDialogWidgetAttachmentsProps } from "../../../types.js";
2
+ export declare function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IScheduledEmailDialogWidgetAttachmentsProps): import("react/jsx-runtime").JSX.Element;
24
3
  //# sourceMappingURL=WidgetAttachments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAqB7B,MAAM,WAAW,uBAAuB;IACpC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,yBAAyB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IACrE,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,cAAc,EAAE,4CAA4C,CAAC;IAC7D,sBAAsB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACzF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0BAA0B,EAAE,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,wBAAwB,CAAC,EAAE,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,KACpC,IAAI,CAAC;CACb;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,uBAAuB,2CA4HzB"}
1
+ {"version":3,"file":"WidgetAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,2CAA2C,EAAE,MAAM,mBAAmB,CAAC;AAmBrF,wBAAgB,iBAAiB,CAAC,EAC9B,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,2CAA2C,2CA4H7C"}
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogDashboardAttachmentsProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's dashboard-attachments field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogDashboardAttachments}
6
+ * render it with {@link useScheduledEmailDialogDashboardAttachmentsProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogDashboardAttachments(props: IScheduledEmailDialogDashboardAttachmentsProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogDashboardAttachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogDashboardAttachments.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,8CAA8C,EAAE,MAAM,gBAAgB,CAAC;AAIrF;;;;;;GAMG;AACH,wBAAgB,+CAA+C,CAC3D,KAAK,EAAE,8CAA8C,GACtD,YAAY,CAEd"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DashboardAttachments } from "./Attachments/DashboardAttachments.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's dashboard-attachments field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogDashboardAttachments}
6
+ * render it with {@link useScheduledEmailDialogDashboardAttachmentsProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogDashboardAttachments(props) {
11
+ return _jsx(DashboardAttachments, { ...props });
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogEvaluationModeProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's evaluation-mode field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogEvaluationMode}
6
+ * render it with {@link useScheduledEmailDialogEvaluationModeProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogEvaluationMode(props: IScheduledEmailDialogEvaluationModeProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogEvaluationMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogEvaluationMode.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,wCAAwC,EAAE,MAAM,gBAAgB,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACrD,KAAK,EAAE,wCAAwC,GAChD,YAAY,CAEd"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EvaluationModeCheckbox } from "./EvaluationModeCheckbox/EvaluationModeCheckbox.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's evaluation-mode field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogEvaluationMode}
6
+ * render it with {@link useScheduledEmailDialogEvaluationModeProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogEvaluationMode(props) {
11
+ return _jsx(EvaluationModeCheckbox, { ...props });
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogMessageProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's message field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogMessage}
6
+ * render it with {@link useScheduledEmailDialogMessageProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogMessage(props: IScheduledEmailDialogMessageProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAIxE;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,iCAAiC,GAAG,YAAY,CAEzG"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MessageForm } from "./MessageForm/MessageForm.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's message field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogMessage}
6
+ * render it with {@link useScheduledEmailDialogMessageProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogMessage(props) {
11
+ return _jsx(MessageForm, { ...props });
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogRecurrenceProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's recurrence field: the recurrence form.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogRecurrence}
6
+ * render it with {@link useScheduledEmailDialogRecurrenceProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogRecurrence(props: IScheduledEmailDialogRecurrenceProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogRecurrence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogRecurrence.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACjD,KAAK,EAAE,oCAAoC,GAC5C,YAAY,CAEd"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RecurrenceForm } from "@gooddata/sdk-ui-kit";
3
+ /**
4
+ * Default render of the scheduled-export dialog's recurrence field: the recurrence form.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogRecurrence}
6
+ * render it with {@link useScheduledEmailDialogRecurrenceProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogRecurrence(props) {
11
+ return _jsx(RecurrenceForm, { ...props });
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogSubjectProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's subject field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogSubject}
6
+ * render it with {@link useScheduledEmailDialogSubjectProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogSubject(props: IScheduledEmailDialogSubjectProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogSubject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogSubject.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAIxE;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,iCAAiC,GAAG,YAAY,CAEzG"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { SubjectForm } from "./SubjectForm/SubjectForm.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's subject field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogSubject}
6
+ * render it with {@link useScheduledEmailDialogSubjectProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogSubject(props) {
11
+ return _jsx(SubjectForm, { ...props });
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ReactElement } from "react";
2
+ import { type IScheduledEmailDialogWidgetAttachmentsProps } from "../../types.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's widget-attachments field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogWidgetAttachments}
6
+ * render it with {@link useScheduledEmailDialogWidgetAttachmentsProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export declare function DefaultScheduledEmailDialogWidgetAttachments(props: IScheduledEmailDialogWidgetAttachmentsProps): ReactElement;
11
+ //# sourceMappingURL=DefaultScheduledEmailDialogWidgetAttachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultScheduledEmailDialogWidgetAttachments.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,2CAA2C,EAAE,MAAM,gBAAgB,CAAC;AAIlF;;;;;;GAMG;AACH,wBAAgB,4CAA4C,CACxD,KAAK,EAAE,2CAA2C,GACnD,YAAY,CAEd"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { WidgetAttachments } from "./Attachments/WidgetAttachments.js";
3
+ /**
4
+ * Default render of the scheduled-export dialog's widget-attachments field.
5
+ * Props-driven — reads no context. The default dialog and {@link ScheduledEmailDialogWidgetAttachments}
6
+ * render it with {@link useScheduledEmailDialogWidgetAttachmentsProps}.
7
+ *
8
+ * @alpha
9
+ */
10
+ export function DefaultScheduledEmailDialogWidgetAttachments(props) {
11
+ return _jsx(WidgetAttachments, { ...props });
12
+ }
@@ -1,18 +1,3 @@
1
- /**
2
- * @internal
3
- */
4
- export interface IEvaluationModeCheckboxProps {
5
- /**
6
- * Whether the evaluation mode is set to shared
7
- */
8
- isShared: boolean;
9
- /**
10
- * Callback when the checkbox value changes
11
- */
12
- onChange: (isShared: boolean) => void;
13
- }
14
- /**
15
- * @internal
16
- */
17
- export declare function EvaluationModeCheckbox({ isShared, onChange }: IEvaluationModeCheckboxProps): import("react/jsx-runtime").JSX.Element;
1
+ import { type IScheduledEmailDialogEvaluationModeProps } from "../../../types.js";
2
+ export declare function EvaluationModeCheckbox({ isShared, onChange }: IScheduledEmailDialogEvaluationModeProps): import("react/jsx-runtime").JSX.Element;
18
3
  //# sourceMappingURL=EvaluationModeCheckbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvaluationModeCheckbox.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,4BAA4B,2CAoB1F"}
1
+ {"version":3,"file":"EvaluationModeCheckbox.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,wCAAwC,EAAE,MAAM,mBAAmB,CAAC;AAElF,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,wCAAwC,2CAoBtG"}
@@ -2,9 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2025-2026 GoodData Corporation
3
3
  import { useIntl } from "react-intl";
4
4
  import { Checkbox, UiIcon, UiTooltip } from "@gooddata/sdk-ui-kit";
5
- /**
6
- * @internal
7
- */
8
5
  export function EvaluationModeCheckbox({ isShared, onChange }) {
9
6
  const intl = useIntl();
10
7
  return (_jsxs("div", { className: "gd-input-component", children: [
@@ -1,7 +1,3 @@
1
- interface IMessageFormProps {
2
- value: string;
3
- onChange: (value: string, isValid: boolean) => void;
4
- }
5
- export declare function MessageForm({ value, onChange }: IMessageFormProps): import("react/jsx-runtime").JSX.Element;
6
- export {};
1
+ import { type IScheduledEmailDialogMessageProps } from "../../../types.js";
2
+ export declare function MessageForm({ value, onChange }: IScheduledEmailDialogMessageProps): import("react/jsx-runtime").JSX.Element;
7
3
  //# sourceMappingURL=MessageForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageForm.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.tsx"],"names":[],"mappings":"AAmBA,UAAU,iBAAiB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA8FjE"}
1
+ {"version":3,"file":"MessageForm.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAM3E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iCAAiC,2CA8FjF"}