@gooddata/sdk-ui-dashboard 11.52.0-alpha.6 → 11.52.0

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 (177) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.d.ts.map +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +5 -4
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +5 -4
  7. package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js +5 -0
  8. package/esm/model/store/config/configSelectors.d.ts +6 -0
  9. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  10. package/esm/model/store/config/configSelectors.js +8 -0
  11. package/esm/model/store/keyDriverAnalysis/const.d.ts +6 -6
  12. package/esm/model/store/keyDriverAnalysis/const.d.ts.map +1 -1
  13. package/esm/model/store/keyDriverAnalysis/const.js +12 -26
  14. package/esm/model/store/widgetDrills/widgetDrillSelectors.d.ts.map +1 -1
  15. package/esm/model/store/widgetDrills/widgetDrillSelectors.js +5 -5
  16. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +1 -1
  17. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  18. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +3 -4
  19. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts +5 -1
  20. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
  21. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +5 -1
  22. package/esm/presentation/automations/alerting/types.d.ts +15 -1
  23. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  24. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +26 -0
  25. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
  26. package/esm/presentation/automations/contexts/AlertingDialogContext.js +26 -0
  27. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +10 -1
  28. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
  29. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +9 -0
  30. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +1 -1
  31. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  32. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +19 -17
  33. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts +3 -0
  34. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts.map +1 -1
  35. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.js +5 -1
  36. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts +22 -0
  37. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -0
  38. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +150 -0
  39. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts +28 -0
  40. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map +1 -0
  41. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.js +20 -0
  42. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts +25 -0
  43. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map +1 -0
  44. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.js +20 -0
  45. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts +25 -0
  46. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map +1 -0
  47. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.js +20 -0
  48. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts +26 -0
  49. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map +1 -0
  50. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.js +20 -0
  51. package/esm/presentation/automations/scheduledEmail/state/exportDefinitions.d.ts.map +1 -0
  52. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/utils → state}/exportDefinitions.js +1 -1
  53. package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.d.ts +7 -0
  54. package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.d.ts.map +1 -0
  55. package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.js +9 -0
  56. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailEffectiveFilters.d.ts +2 -2
  57. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailEffectiveFilters.d.ts.map +1 -0
  58. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailEffectiveFilters.js +4 -4
  59. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailExportSettings.d.ts +12 -25
  60. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailExportSettings.d.ts.map +1 -0
  61. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailExportSettings.js +38 -86
  62. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts → state/useScheduledEmailFiltersModel.d.ts} +7 -7
  63. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts.map +1 -0
  64. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.js → state/useScheduledEmailFiltersModel.js} +26 -9
  65. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts.map +1 -0
  66. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormState.js +25 -25
  67. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormValidity.d.ts.map +1 -0
  68. package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormValidity.js +3 -3
  69. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts +39 -0
  70. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts.map +1 -0
  71. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.js +102 -0
  72. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.d.ts +13 -0
  73. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.d.ts.map +1 -0
  74. package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.js +34 -0
  75. package/esm/presentation/automations/scheduledEmail/types.d.ts +15 -1
  76. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  77. package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts +2 -1
  78. package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts.map +1 -1
  79. package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.js +6 -2
  80. package/esm/presentation/drill/utils/kdaUtils.d.ts +1 -1
  81. package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
  82. package/esm/presentation/drill/utils/kdaUtils.js +6 -5
  83. package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts +1 -1
  84. package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts.map +1 -1
  85. package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.js +2 -2
  86. package/esm/presentation/filterBar/dateFilter/types.d.ts +8 -1
  87. package/esm/presentation/filterBar/dateFilter/types.d.ts.map +1 -1
  88. package/esm/presentation/filterBar/dateFilter/types.js +1 -1
  89. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +2 -0
  90. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  91. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +9 -7
  92. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +2 -0
  93. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  94. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +9 -7
  95. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +2 -0
  96. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  97. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +9 -7
  98. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +2 -0
  99. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  100. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +9 -7
  101. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +2 -0
  102. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  103. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +9 -7
  104. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +2 -0
  105. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  106. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +9 -7
  107. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +2 -0
  108. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  109. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +9 -7
  110. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +2 -0
  111. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  112. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +9 -7
  113. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +2 -0
  114. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  115. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +9 -7
  116. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +2 -0
  117. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  118. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +9 -7
  119. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +2 -0
  120. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  121. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +9 -7
  122. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +2 -0
  123. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  124. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +9 -7
  125. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +2 -0
  126. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  127. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +9 -7
  128. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +2 -0
  129. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  130. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +9 -7
  131. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +2 -0
  132. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  133. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +9 -7
  134. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +2 -0
  135. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  136. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +9 -7
  137. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +2 -0
  138. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  139. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +9 -7
  140. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +2 -0
  141. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  142. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +9 -7
  143. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +2 -0
  144. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  145. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +9 -7
  146. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +2 -0
  147. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  148. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +9 -7
  149. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +2 -0
  150. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  151. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +9 -7
  152. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +2 -0
  153. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  154. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +9 -7
  155. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +2 -0
  156. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  157. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +9 -7
  158. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +2 -0
  159. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  160. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +9 -7
  161. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +2 -0
  162. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  163. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +9 -7
  164. package/esm/sdk-ui-dashboard.d.ts +126 -18
  165. package/package.json +21 -21
  166. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +0 -89
  167. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +0 -1
  168. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +0 -131
  169. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.d.ts.map +0 -1
  170. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailExportSettings.d.ts.map +0 -1
  171. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts.map +0 -1
  172. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFormState.d.ts.map +0 -1
  173. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFormValidity.d.ts.map +0 -1
  174. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/utils/exportDefinitions.d.ts.map +0 -1
  175. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/utils → state}/exportDefinitions.d.ts +0 -0
  176. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormState.d.ts +0 -0
  177. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormValidity.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AlertingDialogStateProvider.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertingDialogStateProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAehD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAIhF"}
1
+ {"version":3,"file":"AlertingDialogStateProvider.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertingDialogStateProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAehD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAIhF"}
@@ -26,7 +26,11 @@ import { useAlertSupportedMetrics } from "./useAlertSupportedMetrics.js";
26
26
  * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
27
27
  * throws in react-intl.
28
28
  *
29
- * @internal
29
+ * A custom `AlertingDialogComponent` that decorates the dialog context (re-provides
30
+ * `AlertingDialogContextProvider` with an adjusted value) must remount this provider beneath the
31
+ * decorated context, so the state is derived from the decorated value rather than the ambient one.
32
+ *
33
+ * @alpha
30
34
  */
31
35
  export function AlertingDialogStateProvider({ children }) {
32
36
  const { isLoading } = useAlertingDialogContext();
@@ -1,4 +1,4 @@
1
- import { type ComponentType } from "react";
1
+ import { type ComponentType, type ReactNode } from "react";
2
2
  import { type DateAttributeGranularity, type IAttribute, type IAutomationMetadataObject, type IDataSetMetadataObject, type IInsight, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWidget } from "@gooddata/sdk-model";
3
3
  import { type GoodDataSdkError } from "@gooddata/sdk-ui";
4
4
  /**
@@ -43,6 +43,20 @@ export interface IAlertingDialogProps {
43
43
  * @deprecated read `isLoading` from `useAlertingDialogContext()` instead. Prop will be removed.
44
44
  */
45
45
  isLoading?: boolean;
46
+ /**
47
+ * Custom content rendered as the first child of the dialog content area, above the default form.
48
+ *
49
+ * @remarks
50
+ * Use this to surface an application-specific banner or warning without replacing the whole dialog.
51
+ */
52
+ topContent?: ReactNode;
53
+ /**
54
+ * Custom content rendered as the last child of the dialog content area, below the default form.
55
+ *
56
+ * @remarks
57
+ * Use this to surface an application-specific note or disclaimer without replacing the whole dialog.
58
+ */
59
+ bottomContent?: ReactNode;
46
60
  /**
47
61
  * Callback to be called, when user closes the alert dialog.
48
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,32 @@ export interface IAlertingDialogContextValue {
40
40
  /** True while the dialog's initial data (automations) is still loading. */
41
41
  isLoading: boolean;
42
42
  }
43
+ /**
44
+ * Provider for {@link IAlertingDialogContextValue}.
45
+ *
46
+ * Besides the connector's own use, a custom `AlertingDialogComponent` can decorate the context for the
47
+ * default dialog: read the value via {@link useAlertingDialogContext}, adjust it (e.g. swap the
48
+ * `insight`), and re-provide it around `DefaultAlertingDialog`.
49
+ *
50
+ * The default dialog renders from the alert state contexts, which are initialized from this context
51
+ * **above** the resolved dialog component. A decorator that changes data members must therefore also
52
+ * remount `AlertingDialogStateProvider` beneath the re-provided context, so the state is derived from
53
+ * the decorated value (the nested state shadows the ambient one):
54
+ *
55
+ * ```tsx
56
+ * const ctx = useAlertingDialogContext();
57
+ * const value = useMemo(() => ({ ...ctx, insight: decoratedInsight }), [ctx, decoratedInsight]);
58
+ * return (
59
+ * <AlertingDialogContextProvider value={value}>
60
+ * <AlertingDialogStateProvider>
61
+ * <DefaultAlertingDialog {...props} />
62
+ * </AlertingDialogStateProvider>
63
+ * </AlertingDialogContextProvider>
64
+ * );
65
+ * ```
66
+ *
67
+ * @alpha
68
+ */
43
69
  export declare const AlertingDialogContextProvider: import("react").Provider<IAlertingDialogContextValue | undefined>;
44
70
  /**
45
71
  * Reads the alerting create/edit dialog context.
@@ -1 +1 @@
1
- {"version":3,"file":"AlertingDialogContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/AlertingDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EACR,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,EACnC,mBAAmB,EACnB,QAAQ,EACR,sBAAsB,EACtB,8BAA8B,EAC9B,kCAAkC,EAClC,OAAO,EACP,MAAM,EACT,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK;QAAE,eAAe,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,SAAS,CAAC;IACtG,+HAA+H;IAC/H,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,WAAW,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5F,SAAS,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAChF,WAAW,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iEAAiE;IACjE,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,6DAA6D;IAC7D,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACtB;AAID,eAAO,MAAM,6BAA6B,mEAAiC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,IAAI,2BAA2B,CAMtE"}
1
+ {"version":3,"file":"AlertingDialogContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/AlertingDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EACR,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,EACnC,mBAAmB,EACnB,QAAQ,EACR,sBAAsB,EACtB,8BAA8B,EAC9B,kCAAkC,EAClC,OAAO,EACP,MAAM,EACT,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK;QAAE,eAAe,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,SAAS,CAAC;IACtG,+HAA+H;IAC/H,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,WAAW,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5F,SAAS,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAChF,WAAW,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iEAAiE;IACjE,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,6DAA6D;IAC7D,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACtB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,6BAA6B,mEAAiC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,IAAI,2BAA2B,CAMtE"}
@@ -1,6 +1,32 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { createContext, useContext } from "react";
3
3
  const AlertingDialogContext = createContext(undefined);
4
+ /**
5
+ * Provider for {@link IAlertingDialogContextValue}.
6
+ *
7
+ * Besides the connector's own use, a custom `AlertingDialogComponent` can decorate the context for the
8
+ * default dialog: read the value via {@link useAlertingDialogContext}, adjust it (e.g. swap the
9
+ * `insight`), and re-provide it around `DefaultAlertingDialog`.
10
+ *
11
+ * The default dialog renders from the alert state contexts, which are initialized from this context
12
+ * **above** the resolved dialog component. A decorator that changes data members must therefore also
13
+ * remount `AlertingDialogStateProvider` beneath the re-provided context, so the state is derived from
14
+ * the decorated value (the nested state shadows the ambient one):
15
+ *
16
+ * ```tsx
17
+ * const ctx = useAlertingDialogContext();
18
+ * const value = useMemo(() => ({ ...ctx, insight: decoratedInsight }), [ctx, decoratedInsight]);
19
+ * return (
20
+ * <AlertingDialogContextProvider value={value}>
21
+ * <AlertingDialogStateProvider>
22
+ * <DefaultAlertingDialog {...props} />
23
+ * </AlertingDialogStateProvider>
24
+ * </AlertingDialogContextProvider>
25
+ * );
26
+ * ```
27
+ *
28
+ * @alpha
29
+ */
4
30
  export const AlertingDialogContextProvider = AlertingDialogContext.Provider;
5
31
  /**
6
32
  * Reads the alerting create/edit dialog context.
@@ -27,7 +27,7 @@ export interface IScheduledEmailDialogContextValue {
27
27
  commonDateFilterId?: string;
28
28
  /**
29
29
  * Effective export parameter overrides keyed by tab, scoped to the dialog's widget when present.
30
- * Replaces the direct selectExportEffectiveParameters read in useEditScheduledEmail.
30
+ * Hydrated by the connector, so the dialog tree reads no store selector for them.
31
31
  */
32
32
  exportParametersByTab: Record<string, IDashboardExportParameter[]>;
33
33
  /**
@@ -55,6 +55,15 @@ export interface IScheduledEmailDialogContextValue {
55
55
  /** True while the dialog's initial data (automations) is still loading. */
56
56
  isLoading: boolean;
57
57
  }
58
+ /**
59
+ * Provider for {@link IScheduledEmailDialogContextValue}.
60
+ *
61
+ * Besides the connector's own use, a custom `ScheduledEmailDialogComponent` can decorate the context for
62
+ * the default dialog: read the value via {@link useScheduledEmailDialogContext}, adjust it, and
63
+ * re-provide it around `DefaultScheduledEmailDialog`.
64
+ *
65
+ * @alpha
66
+ */
58
67
  export declare const ScheduledEmailDialogContextProvider: import("react").Provider<IScheduledEmailDialogContextValue | undefined>;
59
68
  /**
60
69
  * Reads the scheduled-email create/edit dialog context.
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduledEmailDialogContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/ScheduledEmailDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,kCAAkC,EAClC,6BAA6B,EAC7B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,EACnC,yBAAyB,EACzB,eAAe,EACf,QAAQ,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,OAAO,EACV,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,iCAAiC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC;;;OAGG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACnE;;;OAGG;IACH,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,kFAAgF;IAChF,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAC/D,2EAAyE;IACzE,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAEzE,oBAAoB,CAAC,EAAE,EAAE,mCAAmC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClG,kBAAkB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,wEAAwE;IACxE,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACtB;AAID,eAAO,MAAM,mCAAmC,yEAAuC,CAAC;AAExF;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,IAAI,iCAAiC,CAQlF"}
1
+ {"version":3,"file":"ScheduledEmailDialogContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/ScheduledEmailDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,kCAAkC,EAClC,6BAA6B,EAC7B,iBAAiB,EACjB,yBAAyB,EACzB,mCAAmC,EACnC,yBAAyB,EACzB,eAAe,EACf,QAAQ,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,OAAO,EACV,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,WAAW,iCAAiC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC;;;OAGG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACnE;;;OAGG;IACH,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,kFAAgF;IAChF,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAC/D,2EAAyE;IACzE,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAEzE,oBAAoB,CAAC,EAAE,EAAE,mCAAmC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClG,kBAAkB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,wEAAwE;IACxE,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACtB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,yEAAuC,CAAC;AAExF;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,IAAI,iCAAiC,CAQlF"}
@@ -1,6 +1,15 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { createContext, useContext } from "react";
3
3
  const ScheduledEmailDialogContext = createContext(undefined);
4
+ /**
5
+ * Provider for {@link IScheduledEmailDialogContextValue}.
6
+ *
7
+ * Besides the connector's own use, a custom `ScheduledEmailDialogComponent` can decorate the context for
8
+ * the default dialog: read the value via {@link useScheduledEmailDialogContext}, adjust it, and
9
+ * re-provide it around `DefaultScheduledEmailDialog`.
10
+ *
11
+ * @alpha
12
+ */
4
13
  export const ScheduledEmailDialogContextProvider = ScheduledEmailDialogContext.Provider;
5
14
  /**
6
15
  * Reads the scheduled-email create/edit dialog context.
@@ -1,5 +1,5 @@
1
1
  import { type IScheduledEmailDialogProps } from "../types.js";
2
- export declare function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess }: IScheduledEmailDialogProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, topContent, bottomContent }: IScheduledEmailDialogProps): import("react/jsx-runtime").JSX.Element;
3
3
  /**
4
4
  * @alpha
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA+D9D,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,EAAE,0BAA0B,2CAqgB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAY5E"}
1
+ {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AA8CA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA6D9D,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EAChB,EAAE,0BAA0B,2CAqgB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAY5E"}
@@ -13,8 +13,13 @@ import { ApplyCurrentFiltersConfirmDialog } from "../../shared/automationFilters
13
13
  import { AutomationFiltersSelect } from "../../shared/automationFilters/components/AutomationFiltersSelect.js";
14
14
  import { DeleteScheduleConfirmDialog } from "../DefaultScheduledEmailManagementDialog/components/DeleteScheduleConfirmDialog.js";
15
15
  import { useScheduleEmailDialogAccessibility } from "../hooks/useScheduleEmailDialogAccessibility.js";
16
+ import { useScheduledExportActions } from "../state/ScheduledExportActionsContext.js";
17
+ import { useScheduledExportData } from "../state/ScheduledExportDataContext.js";
18
+ import { useScheduledExportDraft } from "../state/ScheduledExportDraftContext.js";
19
+ import { useScheduledExportFilters } from "../state/ScheduledExportFiltersContext.js";
20
+ import { useScheduledExportAttachments } from "../state/useScheduledExportAttachments.js";
21
+ import { useScheduledExportDialogValidity } from "../state/useScheduledExportDialogValidity.js";
16
22
  import { getDefaultCronExpression } from "../utils/cron.js";
17
- import { getDefaultPdfPageSize } from "../utils/pdfPageSize.js";
18
23
  import { isMobileView } from "../utils/responsive.js";
19
24
  import { TIMEZONE_DEFAULT } from "../utils/timezone.js";
20
25
  import { DashboardAttachments } from "./components/Attachments/DashboardAttachments.js";
@@ -27,7 +32,6 @@ import { RecipientsSelect } from "./components/RecipientsSelect/RecipientsSelect
27
32
  import { SubjectForm } from "./components/SubjectForm/SubjectForm.js";
28
33
  import { SCHEDULED_EMAIL_DIALOG_ID } from "./constants.js";
29
34
  import { DefaultLoadingScheduledEmailDialog } from "./DefaultLoadingScheduledEmailDialog.js";
30
- import { useEditScheduledEmail } from "./hooks/useEditScheduledEmail.js";
31
35
  import { useElementHeightSnapshot } from "./hooks/useElementHeightSnapshot.js";
32
36
  import { useSaveScheduledEmailToBackend } from "./hooks/useSaveScheduledEmailToBackend.js";
33
37
  const OVERLAY_POSITION_TYPE = "sameAsTarget";
@@ -37,7 +41,7 @@ function ScheduledEmailDialogFooter({ isWhiteLabeled, helpTextId, scheduledExpor
37
41
  const intl = useIntl();
38
42
  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] }));
39
43
  }
40
- export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, }) {
44
+ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess, onDeleteError, onError, onSave, onSaveError, onSaveSuccess, onSubmit, onSuccess, topContent, bottomContent, }) {
41
45
  const intl = useIntl();
42
46
  const dialogTitleRef = useRef(null);
43
47
  const generalTabContentRef = useRef(null);
@@ -45,17 +49,18 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
45
49
  const [scheduledEmailToDelete, setScheduledEmailToDelete] = useState(null);
46
50
  const [selectedTabId, setSelectedTabId] = useState("general");
47
51
  const { isWhiteLabeled, externalRecipient: externalRecipientOverride, isSecondaryTitleVisible, tabIds, } = useAutomationsContext();
48
- const { exportTemplates, widgetTitle, scheduledExportToEdit, widget, dashboardFilters } = useScheduledEmailDialogContext();
52
+ const { exportTemplates, widgetTitle, scheduledExportToEdit, widget, dashboardFilters, notificationChannels, } = useScheduledEmailDialogContext();
49
53
  const handleScheduleDeleteSuccess = () => {
50
54
  onDeleteSuccess?.();
51
55
  setScheduledEmailToDelete(null);
52
56
  };
53
- const { locale, dashboardTitle, dateFormat, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isCrossFiltering, isExecutionTimestampMode, isSlidesExportEnabled, isAccessibilityModeEnabled, defaultPdfPageSize, } = useDefaultScheduledEmailDialogData();
54
- 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, enableAutomationEvaluationMode, notificationChannels, selectedFilters, availableFilters, storeFilters, filtersByTab, editedFiltersByTab, automationIsValid, parametersEnabled, visibleParametersByTab, availableParametersByTab, flatTabId, onParameterAdd, onParameterChange, onParameterDelete, onParameterAddByTab, onParameterChangeByTab, onParameterDeleteByTab, applyLatest: applyLatestParameters, } = useEditScheduledEmail({
55
- maxAutomationsRecipients,
56
- externalRecipientOverride,
57
- defaultPdfPageSize,
58
- });
57
+ const { locale, dashboardTitle, dateFormat, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isCrossFiltering, isExecutionTimestampMode, isSlidesExportEnabled, isAccessibilityModeEnabled, enableAutomationEvaluationMode, } = useDefaultScheduledEmailDialogData();
58
+ const { editedAutomation, originalAutomation, startDate } = useScheduledExportDraft();
59
+ const { onTitleChange, onRecurrenceChange, onEvaluationModeChange, onDestinationChange, onRecipientsChange, onSubjectChange, onMessageChange, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, onSlidesTemplateIdChange, } = useScheduledExportActions();
60
+ const { defaultUser } = useScheduledExportData();
61
+ const { selectedFilters, availableFilters, storeFilters, filtersByTab, editedFiltersByTab, onFiltersChange, onFiltersByTabChange, onApplyCurrentFilters, onStoreFiltersChange, automationIsValid, parametersEnabled, visibleParametersByTab, availableParametersByTab, flatTabId, onParameterAdd, onParameterChange, onParameterDelete, onParameterAddByTab, onParameterChangeByTab, onParameterDeleteByTab, applyLatest: applyLatestParameters, } = useScheduledExportFilters();
62
+ const { selectedAttachments, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, slidesTemplateIds } = useScheduledExportAttachments();
63
+ const { isSubmitDisabled, validationErrorMessage, isParentValid, allowExternalRecipients, allowOnlyLoggedUserRecipients, } = useScheduledExportDialogValidity();
59
64
  const [isApplyCurrentFiltersDialogOpen, setIsApplyCurrentFiltersDialogOpen] = useState(!automationIsValid);
60
65
  const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend(editedAutomation, {
61
66
  onSuccess,
@@ -156,8 +161,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
156
161
  }, disableBottomBorder: true })) : null, _jsxs(ScrollablePanel, { className: cx("gd-notifications-channel-dialog-content-wrapper", {
157
162
  "gd-notification-channel-dialog-with-automation-filters": true,
158
163
  "gd-notification-channel-dialog-with-tabs": tabs.length > 1,
159
- }), children: [
160
- _jsx("div", { className: "gd-divider-with-margin" }), selectedTabId === "filters" ? (_jsx("div", { ref: filtersTabContentRef, className: "gd-schedule-dialog-tab-content", style: tabContentHeight
164
+ }), children: [topContent, _jsx("div", { className: "gd-divider-with-margin" }), selectedTabId === "filters" ? (_jsx("div", { ref: filtersTabContentRef, className: "gd-schedule-dialog-tab-content", style: tabContentHeight
161
165
  ? { minHeight: `${tabContentHeight}px` }
162
166
  : undefined, children: _jsx(AutomationFiltersSelect, { availableFilters: availableFilters, selectedFilters: selectedFilters, onFiltersChange: onFiltersChange, storeFilters: storeFilters, onStoreFiltersChange: onStoreFiltersChange, isDashboardAutomation: !widget, overlayPositionType: OVERLAY_POSITION_TYPE, hideTitle: true, showAllFilters: true, filtersByTab: filtersByTab, editedFiltersByTab: editedFiltersByTab, onFiltersByTabChange: onFiltersByTabChange, parameters: flatTabId ? visibleParametersByTab[flatTabId] : undefined, availableParameters: flatTabId ? availableParametersByTab[flatTabId] : undefined, onParameterChange: onParameterChange, onParameterDelete: onParameterDelete, onParameterAdd: onParameterAdd, parametersByTab: visibleParametersByTab, availableParametersByTab: availableParametersByTab, onParameterChangeByTab: onParameterChangeByTab, onParameterDeleteByTab: onParameterDeleteByTab, onParameterAddByTab: onParameterAddByTab, parametersEnabled: parametersEnabled }) })) : (_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({
163
167
  id: "dialogs.schedule.email.tabs.info",
@@ -171,7 +175,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
171
175
  .filter((invalidDatapoint) => invalidDatapoint.severity === "error")
172
176
  .map((invalidDatapoint) => (_jsx(Message, { id: invalidDatapoint.id, type: "error", className: cx("gd-notifications-channels-dialog-error", {
173
177
  "gd-notifications-channels-dialog-error-scrollable": true,
174
- }), children: invalidDatapoint.message }, invalidDatapoint.id)))] }))] })
178
+ }), children: invalidDatapoint.message }, invalidDatapoint.id)))] })), bottomContent] })
175
179
  ] }) }) }) }), scheduledEmailToDelete ? (_jsx(DeleteScheduleConfirmDialog, { scheduledEmail: scheduledEmailToDelete, onCancel: () => setScheduledEmailToDelete(null), onSuccess: handleScheduleDeleteSuccess, onError: onDeleteError })) : null] }));
176
180
  }
177
181
  /**
@@ -190,10 +194,8 @@ function DefaultScheduledEmailDialogBody(props) {
190
194
  return (_jsx(IntlWrapper, { locale: locale, children: _jsx(ScheduledMailDialogRenderer, { ...props }) }));
191
195
  }
192
196
  function useDefaultScheduledEmailDialogData() {
193
- const { locale, settings, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isExecutionTimestampMode, features: { enableSlideshowExports }, } = useAutomationsContext();
197
+ const { locale, settings, weekStart, maxAutomationsRecipients, allowHourlyRecurrence, isExecutionTimestampMode, features: { enableSlideshowExports, enableAutomationEvaluationMode }, } = useAutomationsContext();
194
198
  const { dashboardTitle, dateFormat, isCrossFiltering } = useScheduledEmailDialogContext();
195
- const formatLocale = settings?.formatLocale;
196
- const defaultPdfPageSize = getDefaultPdfPageSize(formatLocale);
197
199
  return {
198
200
  locale,
199
201
  dashboardTitle,
@@ -205,6 +207,6 @@ function useDefaultScheduledEmailDialogData() {
205
207
  isExecutionTimestampMode,
206
208
  isSlidesExportEnabled: enableSlideshowExports,
207
209
  isAccessibilityModeEnabled: settings?.enableAccessibilityMode === true,
208
- defaultPdfPageSize,
210
+ enableAutomationEvaluationMode,
209
211
  };
210
212
  }
@@ -1,6 +1,9 @@
1
1
  import { type ReactElement } from "react";
2
2
  import { type IScheduledEmailDialogProps } from "./types.js";
3
3
  /**
4
+ * Resolves the dialog component from DashboardComponentsContext and mounts it under the
5
+ * scheduled-export dialog's state contexts.
6
+ *
4
7
  * @internal
5
8
  */
6
9
  export declare function ScheduledEmailDialog(props: IScheduledEmailDialogProps): ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/scheduledEmail/ScheduledEmailDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,YAAY,CAIpF"}
1
+ {"version":3,"file":"ScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/scheduledEmail/ScheduledEmailDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,YAAY,CAQpF"}
@@ -1,9 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
3
+ import { ScheduledEmailDialogStateProvider } from "./state/ScheduledEmailDialogStateProvider.js";
3
4
  /**
5
+ * Resolves the dialog component from DashboardComponentsContext and mounts it under the
6
+ * scheduled-export dialog's state contexts.
7
+ *
4
8
  * @internal
5
9
  */
6
10
  export function ScheduledEmailDialog(props) {
7
11
  const { ScheduledEmailDialogComponent } = useDashboardComponentsContext();
8
- return _jsx(ScheduledEmailDialogComponent, { ...props });
12
+ return (_jsx(ScheduledEmailDialogStateProvider, { children: _jsx(ScheduledEmailDialogComponent, { ...props }) }));
9
13
  }
@@ -0,0 +1,22 @@
1
+ import { type ReactNode } from "react";
2
+ /**
3
+ * Publishes the scheduled-export create/edit dialog's state as the four scheduled-export state
4
+ * contexts once the dialog's data has loaded.
5
+ *
6
+ * Mounts above the resolved `ScheduledEmailDialogComponent`, so the default dialog, a shell of
7
+ * blocks and a wholesale replacement all read the same state with no extra wiring. Defers mounting
8
+ * the state model itself until `useScheduledEmailDialogContext().isLoading` is false, because the
9
+ * state model seeds its draft from the dialog's loaded data in `useState` initializers that never
10
+ * re-run — mounting earlier would freeze that seed against not-yet-loaded data. That is the
11
+ * ordinary path here, not an edge case: a widget export's filters load after the dialog opens.
12
+ *
13
+ * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
14
+ * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
15
+ * throws in react-intl.
16
+ *
17
+ * @internal
18
+ */
19
+ export declare function ScheduledEmailDialogStateProvider({ children }: {
20
+ children: ReactNode;
21
+ }): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=ScheduledEmailDialogStateProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledEmailDialogStateProvider.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAyBhD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAQtF"}
@@ -0,0 +1,150 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useMemo } from "react";
4
+ import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
5
+ import { useScheduledEmailDialogContext } from "../../contexts/ScheduledEmailDialogContext.js";
6
+ import { useAutomationFiltersSelect } from "../../shared/automationFilters/useAutomationFiltersSelect.js";
7
+ import { getDefaultPdfPageSize } from "../utils/pdfPageSize.js";
8
+ import { ScheduledExportActionsContextProvider, } from "./ScheduledExportActionsContext.js";
9
+ import { ScheduledExportDataContextProvider, } from "./ScheduledExportDataContext.js";
10
+ import { ScheduledExportDraftContextProvider, } from "./ScheduledExportDraftContext.js";
11
+ import { ScheduledExportFiltersContextProvider } from "./ScheduledExportFiltersContext.js";
12
+ import { useScheduledEmailEffectiveFilters } from "./useScheduledEmailEffectiveFilters.js";
13
+ import { useScheduledEmailExportSettings } from "./useScheduledEmailExportSettings.js";
14
+ import { useScheduledEmailFiltersModel } from "./useScheduledEmailFiltersModel.js";
15
+ import { useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
16
+ /**
17
+ * Publishes the scheduled-export create/edit dialog's state as the four scheduled-export state
18
+ * contexts once the dialog's data has loaded.
19
+ *
20
+ * Mounts above the resolved `ScheduledEmailDialogComponent`, so the default dialog, a shell of
21
+ * blocks and a wholesale replacement all read the same state with no extra wiring. Defers mounting
22
+ * the state model itself until `useScheduledEmailDialogContext().isLoading` is false, because the
23
+ * state model seeds its draft from the dialog's loaded data in `useState` initializers that never
24
+ * re-run — mounting earlier would freeze that seed against not-yet-loaded data. That is the
25
+ * ordinary path here, not an edge case: a widget export's filters load after the dialog opens.
26
+ *
27
+ * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
28
+ * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
29
+ * throws in react-intl.
30
+ *
31
+ * @internal
32
+ */
33
+ export function ScheduledEmailDialogStateProvider({ children }) {
34
+ const { isLoading } = useScheduledEmailDialogContext();
35
+ return isLoading ? (_jsx(_Fragment, { children: children })) : (_jsx(LoadedScheduledEmailDialogState, { children: children }));
36
+ }
37
+ function LoadedScheduledEmailDialogState({ children }) {
38
+ const { settings, externalRecipient } = useAutomationsContext();
39
+ const { scheduledExportToEdit, widget, insight, notificationChannels } = useScheduledEmailDialogContext();
40
+ const defaultPdfPageSize = getDefaultPdfPageSize(settings?.formatLocale);
41
+ const { editedAutomationFilters, setEditedAutomationFilters, availableFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, storeFilters, setStoreFilters, filtersByTab, editedAutomationFiltersByTab, setEditedAutomationFiltersByTab, availableFiltersAsVisibleFiltersByTab, } = useAutomationFiltersSelect({ automationToEdit: scheduledExportToEdit, widget });
42
+ const { effectiveWidgetFilters, effectiveWidgetFiltersWithInsight, effectiveVisibleWidgetFilters, effectiveDashboardFilters, effectiveDashboardFiltersByTab, effectiveVisibleDashboardFilters, effectiveVisibleDashboardFiltersByTab, parametersByTabForNewAutomation, } = useScheduledEmailEffectiveFilters({
43
+ widget,
44
+ insight,
45
+ editedAutomationFilters,
46
+ editedAutomationFiltersByTab,
47
+ availableFiltersAsVisibleFilters,
48
+ availableFiltersAsVisibleFiltersByTab,
49
+ filtersDataByTab: filtersByTab,
50
+ storeFilters,
51
+ });
52
+ const formState = useScheduledEmailFormState({
53
+ scheduledExportToEdit,
54
+ widget,
55
+ insight,
56
+ notificationChannels,
57
+ externalRecipientOverride: externalRecipient,
58
+ effectiveWidgetFilters,
59
+ effectiveWidgetFiltersWithInsight,
60
+ effectiveVisibleWidgetFilters,
61
+ effectiveDashboardFilters,
62
+ effectiveDashboardFiltersByTab,
63
+ effectiveVisibleDashboardFilters,
64
+ effectiveVisibleDashboardFiltersByTab,
65
+ parametersByTabForNewAutomation,
66
+ defaultPdfPageSize,
67
+ });
68
+ const exportSettings = useScheduledEmailExportSettings({
69
+ editedAutomation: formState.editedAutomation,
70
+ setEditedAutomation: formState.setEditedAutomation,
71
+ insight,
72
+ widget,
73
+ storeFilters,
74
+ effectiveDashboardFilters,
75
+ effectiveDashboardFiltersByTab,
76
+ effectiveWidgetFilters,
77
+ effectiveWidgetFiltersWithInsight,
78
+ defaultPdfPageSize,
79
+ });
80
+ const filtersModel = useScheduledEmailFiltersModel({
81
+ setEditedAutomation: formState.setEditedAutomation,
82
+ scheduledExportToEdit,
83
+ widget,
84
+ insight,
85
+ editedAutomationFilters,
86
+ setEditedAutomationFilters,
87
+ editedAutomationFiltersByTab,
88
+ setEditedAutomationFiltersByTab,
89
+ availableFilters,
90
+ availableFiltersAsVisibleFilters,
91
+ availableFiltersAsVisibleFiltersByTab,
92
+ filtersByTab,
93
+ storeFilters,
94
+ setStoreFilters,
95
+ filtersForNewAutomation,
96
+ setParametersWire: exportSettings.setParametersWire,
97
+ });
98
+ const draft = useMemo(() => ({
99
+ editedAutomation: formState.editedAutomation,
100
+ originalAutomation: formState.originalAutomation,
101
+ startDate: formState.startDate,
102
+ isCronValid: formState.isCronValid,
103
+ isTitleValid: formState.isTitleValid,
104
+ isSubjectValid: formState.isSubjectValid,
105
+ isOnMessageValid: formState.isOnMessageValid,
106
+ }), [
107
+ formState.editedAutomation,
108
+ formState.originalAutomation,
109
+ formState.startDate,
110
+ formState.isCronValid,
111
+ formState.isTitleValid,
112
+ formState.isSubjectValid,
113
+ formState.isOnMessageValid,
114
+ ]);
115
+ const actions = useMemo(() => ({
116
+ setEditedAutomation: formState.setEditedAutomation,
117
+ onTitleChange: formState.onTitleChange,
118
+ onRecurrenceChange: formState.onRecurrenceChange,
119
+ onEvaluationModeChange: formState.onEvaluationModeChange,
120
+ onDestinationChange: formState.onDestinationChange,
121
+ onRecipientsChange: formState.onRecipientsChange,
122
+ onSubjectChange: formState.onSubjectChange,
123
+ onMessageChange: formState.onMessageChange,
124
+ onDashboardAttachmentsChange: exportSettings.onDashboardAttachmentsChange,
125
+ onWidgetAttachmentsChange: exportSettings.onWidgetAttachmentsChange,
126
+ onXlsxSettingsChange: exportSettings.onXlsxSettingsChange,
127
+ onPdfSettingsChange: exportSettings.onPdfSettingsChange,
128
+ onCsvSettingsChange: exportSettings.onCsvSettingsChange,
129
+ onCsvRawSettingsChange: exportSettings.onCsvRawSettingsChange,
130
+ onSlidesTemplateIdChange: exportSettings.onSlidesTemplateIdChange,
131
+ }), [
132
+ formState.setEditedAutomation,
133
+ formState.onTitleChange,
134
+ formState.onRecurrenceChange,
135
+ formState.onEvaluationModeChange,
136
+ formState.onDestinationChange,
137
+ formState.onRecipientsChange,
138
+ formState.onSubjectChange,
139
+ formState.onMessageChange,
140
+ exportSettings.onDashboardAttachmentsChange,
141
+ exportSettings.onWidgetAttachmentsChange,
142
+ exportSettings.onXlsxSettingsChange,
143
+ exportSettings.onPdfSettingsChange,
144
+ exportSettings.onCsvSettingsChange,
145
+ exportSettings.onCsvRawSettingsChange,
146
+ exportSettings.onSlidesTemplateIdChange,
147
+ ]);
148
+ const data = useMemo(() => ({ defaultUser: formState.defaultUser, defaultRecipient: formState.defaultRecipient }), [formState.defaultUser, formState.defaultRecipient]);
149
+ return (_jsx(ScheduledExportDraftContextProvider, { value: draft, children: _jsx(ScheduledExportActionsContextProvider, { value: actions, children: _jsx(ScheduledExportDataContextProvider, { value: data, children: _jsx(ScheduledExportFiltersContextProvider, { value: filtersModel, children: children }) }) }) }));
150
+ }
@@ -0,0 +1,28 @@
1
+ import { type useScheduledEmailExportSettings } from "./useScheduledEmailExportSettings.js";
2
+ import { type useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
3
+ /**
4
+ * The scheduled-export dialog's draft mutators: the form fields' change handlers, the raw draft
5
+ * setter, and the attachment handlers, which rebuild the automation's export definitions while
6
+ * carrying the stored export-parameter wire across the rebuild.
7
+ *
8
+ * Every handler holds its identity across a keystroke, so a consumer that only mutates does not
9
+ * re-render while the draft changes. The two attachment handlers are rebuilt when the filters they
10
+ * write into a new export definition change. The shape is derived from `useScheduledEmailFormState`
11
+ * and `useScheduledEmailExportSettings`, which own these handlers.
12
+ *
13
+ * @internal
14
+ */
15
+ export type IScheduledExportActionsContextValue = Pick<ReturnType<typeof useScheduledEmailFormState>, "setEditedAutomation" | "onTitleChange" | "onRecurrenceChange" | "onEvaluationModeChange" | "onDestinationChange" | "onRecipientsChange" | "onSubjectChange" | "onMessageChange"> & Pick<ReturnType<typeof useScheduledEmailExportSettings>, "onDashboardAttachmentsChange" | "onWidgetAttachmentsChange" | "onXlsxSettingsChange" | "onPdfSettingsChange" | "onCsvSettingsChange" | "onCsvRawSettingsChange" | "onSlidesTemplateIdChange">;
16
+ export declare const ScheduledExportActionsContextProvider: import("react").Provider<IScheduledExportActionsContextValue | undefined>;
17
+ /**
18
+ * Reads the scheduled-export dialog's draft mutators.
19
+ *
20
+ * Throws outside the scheduled-export dialog's state providers, which mount only once
21
+ * `useScheduledEmailDialogContext().isLoading` is false — a replacement for
22
+ * `ScheduledEmailDialogComponent` must check that flag before calling this. That state is on the
23
+ * ordinary path here: a widget export renders while its filters load.
24
+ *
25
+ * @internal
26
+ */
27
+ export declare function useScheduledExportActions(): IScheduledExportActionsContextValue;
28
+ //# sourceMappingURL=ScheduledExportActionsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledExportActionsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mCAAmC,GAAG,IAAI,CAClD,UAAU,CAAC,OAAO,0BAA0B,CAAC,EAC3C,qBAAqB,GACrB,eAAe,GACf,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,CACtB,GACG,IAAI,CACA,UAAU,CAAC,OAAO,+BAA+B,CAAC,EAChD,8BAA8B,GAC9B,2BAA2B,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,GACxB,0BAA0B,CAC/B,CAAC;AAON,eAAO,MAAM,qCAAqC,2EAAyC,CAAC;AAE5F;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,IAAI,mCAAmC,CAK/E"}
@@ -0,0 +1,20 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { createContext, useContext } from "react";
3
+ import { missingScheduledExportStateProvider } from "./missingScheduledExportStateProvider.js";
4
+ const ScheduledExportActionsContext = createContext(undefined);
5
+ ScheduledExportActionsContext.displayName = "ScheduledExportActionsContext";
6
+ export const ScheduledExportActionsContextProvider = ScheduledExportActionsContext.Provider;
7
+ /**
8
+ * Reads the scheduled-export dialog's draft mutators.
9
+ *
10
+ * Throws outside the scheduled-export dialog's state providers, which mount only once
11
+ * `useScheduledEmailDialogContext().isLoading` is false — a replacement for
12
+ * `ScheduledEmailDialogComponent` must check that flag before calling this. That state is on the
13
+ * ordinary path here: a widget export renders while its filters load.
14
+ *
15
+ * @internal
16
+ */
17
+ export function useScheduledExportActions() {
18
+ return (useContext(ScheduledExportActionsContext) ??
19
+ missingScheduledExportStateProvider("useScheduledExportActions"));
20
+ }
@@ -0,0 +1,25 @@
1
+ import { type useScheduledEmailFormState } from "./useScheduledEmailFormState.js";
2
+ /**
3
+ * The scheduled-export dialog's recipient defaults: the logged-in user as a recipient, and the
4
+ * recipient a new schedule is seeded with, which an external-recipient override replaces.
5
+ *
6
+ * Changes when the current user or the override changes, so not while the draft is edited. Two
7
+ * members is the whole of it: this dialog loads no execution data. The shape is derived from
8
+ * `useScheduledEmailFormState`, which owns these values.
9
+ *
10
+ * @internal
11
+ */
12
+ export type IScheduledExportDataContextValue = Pick<ReturnType<typeof useScheduledEmailFormState>, "defaultUser" | "defaultRecipient">;
13
+ export declare const ScheduledExportDataContextProvider: import("react").Provider<IScheduledExportDataContextValue | undefined>;
14
+ /**
15
+ * Reads the scheduled-export dialog's recipient defaults.
16
+ *
17
+ * Throws outside the scheduled-export dialog's state providers, which mount only once
18
+ * `useScheduledEmailDialogContext().isLoading` is false — a replacement for
19
+ * `ScheduledEmailDialogComponent` must check that flag before calling this. That state is on the
20
+ * ordinary path here: a widget export renders while its filters load.
21
+ *
22
+ * @internal
23
+ */
24
+ export declare function useScheduledExportData(): IScheduledExportDataContextValue;
25
+ //# sourceMappingURL=ScheduledExportDataContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledExportDataContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAC/C,UAAU,CAAC,OAAO,0BAA0B,CAAC,EAC7C,aAAa,GAAG,kBAAkB,CACrC,CAAC;AAKF,eAAO,MAAM,kCAAkC,wEAAsC,CAAC;AAEtF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,gCAAgC,CAKzE"}