@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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.d.ts.map +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +5 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +5 -4
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js +5 -0
- package/esm/model/store/config/configSelectors.d.ts +6 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +8 -0
- package/esm/model/store/keyDriverAnalysis/const.d.ts +6 -6
- package/esm/model/store/keyDriverAnalysis/const.d.ts.map +1 -1
- package/esm/model/store/keyDriverAnalysis/const.js +12 -26
- package/esm/model/store/widgetDrills/widgetDrillSelectors.d.ts.map +1 -1
- package/esm/model/store/widgetDrills/widgetDrillSelectors.js +5 -5
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +3 -4
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts +5 -1
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +5 -1
- package/esm/presentation/automations/alerting/types.d.ts +15 -1
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +26 -0
- package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/AlertingDialogContext.js +26 -0
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +10 -1
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
- package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +9 -0
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +19 -17
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts +3 -0
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.js +5 -1
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts +22 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +150 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts +28 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.js +20 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts +25 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.js +20 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts +25 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.js +20 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts +26 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.js +20 -0
- package/esm/presentation/automations/scheduledEmail/state/exportDefinitions.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/utils → state}/exportDefinitions.js +1 -1
- package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.d.ts +7 -0
- package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.js +9 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailEffectiveFilters.d.ts +2 -2
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailEffectiveFilters.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailEffectiveFilters.js +4 -4
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailExportSettings.d.ts +12 -25
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailExportSettings.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailExportSettings.js +38 -86
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts → state/useScheduledEmailFiltersModel.d.ts} +7 -7
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFiltersModel.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.js → state/useScheduledEmailFiltersModel.js} +26 -9
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormState.js +25 -25
- package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormValidity.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormValidity.js +3 -3
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts +39 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportAttachments.js +102 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.d.ts +13 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.d.ts.map +1 -0
- package/esm/presentation/automations/scheduledEmail/state/useScheduledExportDialogValidity.js +34 -0
- package/esm/presentation/automations/scheduledEmail/types.d.ts +15 -1
- package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts +2 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.d.ts.map +1 -1
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.js +6 -2
- package/esm/presentation/drill/utils/kdaUtils.d.ts +1 -1
- package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.js +6 -5
- package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts +1 -1
- package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.d.ts.map +1 -1
- package/esm/presentation/filterBar/dateFilter/DefaultDashboardDateFilter.js +2 -2
- package/esm/presentation/filterBar/dateFilter/types.d.ts +8 -1
- package/esm/presentation/filterBar/dateFilter/types.d.ts.map +1 -1
- package/esm/presentation/filterBar/dateFilter/types.js +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +9 -7
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +2 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +9 -7
- package/esm/sdk-ui-dashboard.d.ts +126 -18
- package/package.json +21 -21
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +0 -89
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +0 -131
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailExportSettings.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFormState.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFormValidity.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/utils/exportDefinitions.d.ts.map +0 -1
- /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/utils → state}/exportDefinitions.d.ts +0 -0
- /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog/hooks → state}/useScheduledEmailFormState.d.ts +0 -0
- /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
|
|
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
|
-
*
|
|
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":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
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
|
-
*
|
|
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":"
|
|
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,
|
|
54
|
-
const {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
}
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts
ADDED
|
@@ -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
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map
ADDED
|
@@ -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"}
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js
ADDED
|
@@ -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
|
package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map
ADDED
|
@@ -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"}
|