@gooddata/sdk-ui-dashboard 11.56.0-alpha.4 → 11.56.0-alpha.6

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 (56) hide show
  1. package/NOTICE +1 -1
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +3 -2
  5. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  6. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +3 -2
  7. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts +4 -3
  8. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts.map +1 -1
  9. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.js +4 -3
  10. package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.d.ts +3 -2
  11. package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.d.ts.map +1 -1
  12. package/esm/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.js +3 -2
  13. package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts +5 -4
  14. package/esm/presentation/automations/alerting/state/AlertActionsContext.d.ts.map +1 -1
  15. package/esm/presentation/automations/alerting/state/AlertActionsContext.js +5 -4
  16. package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts +5 -4
  17. package/esm/presentation/automations/alerting/state/AlertDataContext.d.ts.map +1 -1
  18. package/esm/presentation/automations/alerting/state/AlertDataContext.js +5 -4
  19. package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts +5 -4
  20. package/esm/presentation/automations/alerting/state/AlertDraftContext.d.ts.map +1 -1
  21. package/esm/presentation/automations/alerting/state/AlertDraftContext.js +5 -4
  22. package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts +5 -4
  23. package/esm/presentation/automations/alerting/state/AlertFiltersContext.d.ts.map +1 -1
  24. package/esm/presentation/automations/alerting/state/AlertFiltersContext.js +5 -4
  25. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts +8 -6
  26. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
  27. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +16 -8
  28. package/esm/presentation/automations/alerting/state/missingAlertStateProvider.js +1 -1
  29. package/esm/presentation/automations/alerting/types.d.ts +1 -1
  30. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +2 -1
  31. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  32. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +2 -1
  33. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts +4 -4
  34. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +4 -4
  35. package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.d.ts +5 -4
  36. package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.d.ts.map +1 -1
  37. package/esm/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.js +5 -4
  38. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts +8 -6
  39. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.d.ts.map +1 -1
  40. package/esm/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.js +16 -8
  41. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts +6 -4
  42. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.d.ts.map +1 -1
  43. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportActionsContext.js +6 -4
  44. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts +6 -4
  45. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.d.ts.map +1 -1
  46. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDataContext.js +6 -4
  47. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts +6 -4
  48. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.d.ts.map +1 -1
  49. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportDraftContext.js +6 -4
  50. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts +6 -4
  51. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.d.ts.map +1 -1
  52. package/esm/presentation/automations/scheduledEmail/state/ScheduledExportFiltersContext.js +6 -4
  53. package/esm/presentation/automations/scheduledEmail/state/missingScheduledExportStateProvider.js +1 -1
  54. package/esm/presentation/automations/scheduledEmail/types.d.ts +1 -1
  55. package/esm/sdk-ui-dashboard.d.ts +59 -44
  56. package/package.json +24 -25
package/NOTICE CHANGED
@@ -9,7 +9,7 @@ The following 3rd-party software packages may be used by or distributed with goo
9
9
 
10
10
  Date generated: 2026-9-8
11
11
 
12
- Revision ID: a8781e798262a7ba5b0988d15649e995e7b321c8
12
+ Revision ID: c3978e6d95b691f58341d7a2af5e76ea67f3bf55
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.56.0-alpha.4";
1
+ export declare const LIB_VERSION = "11.56.0-alpha.6";
2
2
  export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
3
3
  export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
4
4
  //# sourceMappingURL=__version.d.ts.map
package/esm/__version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2021 GoodData Corporation
2
2
  // DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
3
- export const LIB_VERSION = "11.56.0-alpha.4";
3
+ export const LIB_VERSION = "11.56.0-alpha.6";
4
4
  export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
5
5
  export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
@@ -9,8 +9,9 @@ import { type IDefaultAlertingDialogProps } from "../types.js";
9
9
  * rendered within an `AutomationsContextProvider`, an `AlertingDialogContextProvider` (for the
10
10
  * create/edit flow), and an `AlertingDialogStateProvider`. Inside a `Dashboard`, the alerting
11
11
  * connector supplies the first two providers above the `AlertingDialogComponent` slot, and mounts
12
- * `AlertingDialogStateProvider` around the resolved slot component once
13
- * `useAlertingDialogContext().isLoading` is false so the default component, and any wholesale
12
+ * `AlertingDialogStateProvider` around the resolved slot component — its state model establishes
13
+ * itself once `useAlertingDialogContext().isLoading` is first false and stays mounted from then
14
+ * on — so the default component, and any wholesale
14
15
  * slot replacement, inherit all three contexts automatically and require no extra wiring.
15
16
  *
16
17
  * The providers are intentionally hoisted above the slot rather than built inside this component:
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AA2B1C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,GAAG,YAAY,CActF"}
1
+ {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AA2B1C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,GAAG,YAAY,CActF"}
@@ -30,8 +30,9 @@ import { DefaultAlertingDialogRecipients } from "./DefaultAlertingDialogRecipien
30
30
  * rendered within an `AutomationsContextProvider`, an `AlertingDialogContextProvider` (for the
31
31
  * create/edit flow), and an `AlertingDialogStateProvider`. Inside a `Dashboard`, the alerting
32
32
  * connector supplies the first two providers above the `AlertingDialogComponent` slot, and mounts
33
- * `AlertingDialogStateProvider` around the resolved slot component once
34
- * `useAlertingDialogContext().isLoading` is false so the default component, and any wholesale
33
+ * `AlertingDialogStateProvider` around the resolved slot component — its state model establishes
34
+ * itself once `useAlertingDialogContext().isLoading` is first false and stays mounted from then
35
+ * on — so the default component, and any wholesale
35
36
  * slot replacement, inherit all three contexts automatically and require no extra wiring.
36
37
  *
37
38
  * The providers are intentionally hoisted above the slot rather than built inside this component:
@@ -12,8 +12,9 @@ import { type IAlertingDialogShellProps } from "../types.js";
12
12
  * `AlertingDialogComponent` that keeps this chrome and arranges the blocks differently renders the shell
13
13
  * itself. The shell does not own the submit: call {@link useAlertSubmit} and pass its `submit` and
14
14
  * `isSaving`, so the footer button and any Enter handler in the body share one instance. Call that hook
15
- * only once `useAlertingDialogContext().isLoading` is false — the state hooks throw while the dialog
16
- * loads and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
15
+ * only once `useAlertingDialogContext().isLoading` is first false — the state hooks throw until the
16
+ * dialog's data has first loaded (after that they stay available through a refresh) and render the
17
+ * shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
17
18
  *
18
19
  * Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
19
20
  *
@@ -21,7 +22,7 @@ import { type IAlertingDialogShellProps } from "../types.js";
21
22
  * ```tsx
22
23
  * function MyAlertingDialog(props: IAlertingDialogProps) {
23
24
  * const { isLoading } = useAlertingDialogContext();
24
- * // the state hooks throw while the dialog loads; the shell renders the loading skeleton
25
+ * // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
25
26
  * if (isLoading) {
26
27
  * return <AlertingDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
27
28
  * }
@@ -1 +1 @@
1
- {"version":3,"file":"AlertingDialogShell.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/blocks/AlertingDialogShell.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,OAAO,CAAC;AAmCvE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAM7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,yBAAyB,GAAG,YAAY,CAMlF"}
1
+ {"version":3,"file":"AlertingDialogShell.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/blocks/AlertingDialogShell.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,OAAO,CAAC;AAmCvE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAM7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,yBAAyB,GAAG,YAAY,CAMlF"}
@@ -29,8 +29,9 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
29
29
  * `AlertingDialogComponent` that keeps this chrome and arranges the blocks differently renders the shell
30
30
  * itself. The shell does not own the submit: call {@link useAlertSubmit} and pass its `submit` and
31
31
  * `isSaving`, so the footer button and any Enter handler in the body share one instance. Call that hook
32
- * only once `useAlertingDialogContext().isLoading` is false — the state hooks throw while the dialog
33
- * loads and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
32
+ * only once `useAlertingDialogContext().isLoading` is first false — the state hooks throw until the
33
+ * dialog's data has first loaded (after that they stay available through a refresh) and render the
34
+ * shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
34
35
  *
35
36
  * Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
36
37
  *
@@ -38,7 +39,7 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
38
39
  * ```tsx
39
40
  * function MyAlertingDialog(props: IAlertingDialogProps) {
40
41
  * const { isLoading } = useAlertingDialogContext();
41
- * // the state hooks throw while the dialog loads; the shell renders the loading skeleton
42
+ * // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
42
43
  * if (isLoading) {
43
44
  * return <AlertingDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
44
45
  * }
@@ -1,7 +1,8 @@
1
1
  import { type ReactNode } from "react";
2
2
  /**
3
- * Renders its children only once the alerting dialog's data has loaded — the state accessors throw
4
- * while `useAlertingDialogContext().isLoading` is true, because the state providers mount only then.
3
+ * Renders its children only while `useAlertingDialogContext().isLoading` is false. The state
4
+ * accessors throw until the dialog's data has first loaded; during a later refresh the state
5
+ * model stays mounted and keeps serving, but the blocks still hide behind the loading state.
5
6
  * Every connected alerting block goes through it.
6
7
  *
7
8
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"WhenAlertingDialogLoaded.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG7E"}
1
+ {"version":3,"file":"WhenAlertingDialogLoaded.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/blocks/WhenAlertingDialogLoaded.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAG7E"}
@@ -1,8 +1,9 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useAlertingDialogContext } from "../../contexts/AlertingDialogContext.js";
3
3
  /**
4
- * Renders its children only once the alerting dialog's data has loaded — the state accessors throw
5
- * while `useAlertingDialogContext().isLoading` is true, because the state providers mount only then.
4
+ * Renders its children only while `useAlertingDialogContext().isLoading` is false. The state
5
+ * accessors throw until the dialog's data has first loaded; during a later refresh the state
6
+ * model stays mounted and keeps serving, but the blocks still hide behind the loading state.
6
7
  * Every connected alerting block goes through it.
7
8
  *
8
9
  * @internal
@@ -3,10 +3,11 @@ export declare const AlertActionsContextProvider: import("react").Provider<IAler
3
3
  /**
4
4
  * Reads the alerting dialog's mutators.
5
5
  *
6
- * Throws outside the alerting dialog's state providers, which mount only once
7
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
8
- * must check that flag before calling this. On the alerting side that state is reached only by an
9
- * automations refresh while the dialog is open, so it will not appear in manual testing.
6
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
7
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
8
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
9
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
10
+ * so the draft survives and this accessor keeps serving through it.
10
11
  *
11
12
  * @alpha
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AlertActionsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertActionsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAK5D,eAAO,MAAM,2BAA2B,iEAA+B,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,yBAAyB,CAE3D"}
1
+ {"version":3,"file":"AlertActionsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertActionsContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAK5D,eAAO,MAAM,2BAA2B,iEAA+B,CAAC;AAExE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,yBAAyB,CAE3D"}
@@ -7,10 +7,11 @@ export const AlertActionsContextProvider = AlertActionsContext.Provider;
7
7
  /**
8
8
  * Reads the alerting dialog's mutators.
9
9
  *
10
- * Throws outside the alerting dialog's state providers, which mount only once
11
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
12
- * must check that flag before calling this. On the alerting side that state is reached only by an
13
- * automations refresh while the dialog is open, so it will not appear in manual testing.
10
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
11
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
12
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
13
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
14
+ * so the draft survives and this accessor keeps serving through it.
14
15
  *
15
16
  * @alpha
16
17
  */
@@ -3,10 +3,11 @@ export declare const AlertDataContextProvider: import("react").Provider<IAlertDa
3
3
  /**
4
4
  * Reads the data the alerting dialog loads asynchronously.
5
5
  *
6
- * Throws outside the alerting dialog's state providers, which mount only once
7
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
8
- * must check that flag before calling this. On the alerting side that state is reached only by an
9
- * automations refresh while the dialog is open, so it will not appear in manual testing.
6
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
7
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
8
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
9
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
10
+ * so the draft survives and this accessor keeps serving through it.
10
11
  *
11
12
  * @alpha
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AlertDataContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertDataContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKzD,eAAO,MAAM,wBAAwB,8DAA4B,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,IAAI,sBAAsB,CAErD"}
1
+ {"version":3,"file":"AlertDataContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertDataContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKzD,eAAO,MAAM,wBAAwB,8DAA4B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,sBAAsB,CAErD"}
@@ -7,10 +7,11 @@ export const AlertDataContextProvider = AlertDataContext.Provider;
7
7
  /**
8
8
  * Reads the data the alerting dialog loads asynchronously.
9
9
  *
10
- * Throws outside the alerting dialog's state providers, which mount only once
11
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
12
- * must check that flag before calling this. On the alerting side that state is reached only by an
13
- * automations refresh while the dialog is open, so it will not appear in manual testing.
10
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
11
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
12
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
13
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
14
+ * so the draft survives and this accessor keeps serving through it.
14
15
  *
15
16
  * @alpha
16
17
  */
@@ -3,10 +3,11 @@ export declare const AlertDraftContextProvider: import("react").Provider<IAlertD
3
3
  /**
4
4
  * Reads the alerting dialog's edit draft.
5
5
  *
6
- * Throws outside the alerting dialog's state providers, which mount only once
7
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
8
- * must check that flag before calling this. On the alerting side that state is reached only by an
9
- * automations refresh while the dialog is open, so it will not appear in manual testing.
6
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
7
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
8
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
9
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
10
+ * so the draft survives and this accessor keeps serving through it.
10
11
  *
11
12
  * @alpha
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AlertDraftContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertDraftContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,yBAAyB,+DAA6B,CAAC;AAEpE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,uBAAuB,CAEvD"}
1
+ {"version":3,"file":"AlertDraftContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertDraftContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,yBAAyB,+DAA6B,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,uBAAuB,CAEvD"}
@@ -7,10 +7,11 @@ export const AlertDraftContextProvider = AlertDraftContext.Provider;
7
7
  /**
8
8
  * Reads the alerting dialog's edit draft.
9
9
  *
10
- * Throws outside the alerting dialog's state providers, which mount only once
11
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
12
- * must check that flag before calling this. On the alerting side that state is reached only by an
13
- * automations refresh while the dialog is open, so it will not appear in manual testing.
10
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
11
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
12
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
13
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
14
+ * so the draft survives and this accessor keeps serving through it.
14
15
  *
15
16
  * @alpha
16
17
  */
@@ -3,10 +3,11 @@ export declare const AlertFiltersContextProvider: import("react").Provider<IAler
3
3
  /**
4
4
  * Reads the alerting dialog's filter and export-parameter model.
5
5
  *
6
- * Throws outside the alerting dialog's state providers, which mount only once
7
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
8
- * must check that flag before calling this. On the alerting side that state is reached only by an
9
- * automations refresh while the dialog is open, so it will not appear in manual testing.
6
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
7
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
8
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
9
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
10
+ * so the draft survives and this accessor keeps serving through it.
10
11
  *
11
12
  * @alpha
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AlertFiltersContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertFiltersContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAK5D,eAAO,MAAM,2BAA2B,iEAA+B,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,yBAAyB,CAE3D"}
1
+ {"version":3,"file":"AlertFiltersContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/AlertFiltersContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAK5D,eAAO,MAAM,2BAA2B,iEAA+B,CAAC;AAExE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,yBAAyB,CAE3D"}
@@ -7,10 +7,11 @@ export const AlertFiltersContextProvider = AlertFiltersContext.Provider;
7
7
  /**
8
8
  * Reads the alerting dialog's filter and export-parameter model.
9
9
  *
10
- * Throws outside the alerting dialog's state providers, which mount only once
11
- * `useAlertingDialogContext().isLoading` is false a replacement for `AlertingDialogComponent`
12
- * must check that flag before calling this. On the alerting side that state is reached only by an
13
- * automations refresh while the dialog is open, so it will not appear in manual testing.
10
+ * Throws outside the alerting dialog's state providers, which mount the state model on the first
11
+ * render where `useAlertingDialogContext().isLoading` is false and keep it mounted from then on —
12
+ * a replacement for `AlertingDialogComponent` must check that flag before reading state while the
13
+ * dialog first loads. An automations refresh flips `isLoading` back without unmounting the model,
14
+ * so the draft survives and this accessor keeps serving through it.
14
15
  *
15
16
  * @alpha
16
17
  */
@@ -1,13 +1,15 @@
1
1
  import { type ReactNode } from "react";
2
2
  /**
3
- * Publishes the alerting create/edit dialog's state as the four alert state contexts once the
4
- * dialog's data has loaded.
3
+ * Publishes the alerting create/edit dialog's state as the four alert state contexts from the
4
+ * first render where the dialog's data has loaded.
5
5
  *
6
6
  * Mounts above the resolved `AlertingDialogComponent`, so the default dialog, a shell of blocks
7
- * and a wholesale replacement all read the same state with no extra wiring. Defers mounting the
8
- * state model itself until `useAlertingDialogContext().isLoading` is false, because the state
9
- * 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.
7
+ * and a wholesale replacement all read the same state with no extra wiring. Mounts the state
8
+ * model on the first render where `useAlertingDialogContext().isLoading` is false and keeps it
9
+ * mounted for the rest of the dialog's life: the model seeds its draft from the dialog's loaded
10
+ * data in `useState` initializers that never re-run, so mounting earlier would freeze that seed
11
+ * against not-yet-loaded data — and unmounting on a later `isLoading` flip (an automations
12
+ * refresh) would discard the in-flight draft.
11
13
  *
12
14
  * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
13
15
  * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
@@ -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;AAqBhD;;;;;;;;;;;;;;;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,EAAqB,MAAM,OAAO,CAAC;AAqB1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAWhF"}
@@ -1,6 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { useMemo } from "react";
3
+ import { useMemo, useState } from "react";
4
4
  import { useAlertingDialogContext } from "../../contexts/AlertingDialogContext.js";
5
5
  import { useAutomationsContext } from "../../contexts/AutomationsContext.js";
6
6
  import { useAutomationFiltersSelect } from "../../shared/automationFilters/useAutomationFiltersSelect.js";
@@ -13,14 +13,16 @@ import { useAlertFormState } from "./useAlertFormState.js";
13
13
  import { getAlertSelectedValues } from "./useAlertSelectedValues.js";
14
14
  import { useAlertSupportedMetrics } from "./useAlertSupportedMetrics.js";
15
15
  /**
16
- * Publishes the alerting create/edit dialog's state as the four alert state contexts once the
17
- * dialog's data has loaded.
16
+ * Publishes the alerting create/edit dialog's state as the four alert state contexts from the
17
+ * first render where the dialog's data has loaded.
18
18
  *
19
19
  * Mounts above the resolved `AlertingDialogComponent`, so the default dialog, a shell of blocks
20
- * and a wholesale replacement all read the same state with no extra wiring. Defers mounting the
21
- * state model itself until `useAlertingDialogContext().isLoading` is false, because the state
22
- * model seeds its draft from the dialog's loaded data in `useState` initializers that never
23
- * re-run mounting earlier would freeze that seed against not-yet-loaded data.
20
+ * and a wholesale replacement all read the same state with no extra wiring. Mounts the state
21
+ * model on the first render where `useAlertingDialogContext().isLoading` is false and keeps it
22
+ * mounted for the rest of the dialog's life: the model seeds its draft from the dialog's loaded
23
+ * data in `useState` initializers that never re-run, so mounting earlier would freeze that seed
24
+ * against not-yet-loaded data — and unmounting on a later `isLoading` flip (an automations
25
+ * refresh) would discard the in-flight draft.
24
26
  *
25
27
  * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
26
28
  * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
@@ -30,7 +32,13 @@ import { useAlertSupportedMetrics } from "./useAlertSupportedMetrics.js";
30
32
  */
31
33
  export function AlertingDialogStateProvider({ children }) {
32
34
  const { isLoading } = useAlertingDialogContext();
33
- return isLoading ? _jsx(_Fragment, { children: children }) : _jsx(LoadedAlertingDialogState, { children: children });
35
+ // Latches on the first non-loading render: the draft seed must not run against unloaded
36
+ // data, and once seeded it must survive isLoading flipping back (an automations refresh).
37
+ const [hasLoaded, setHasLoaded] = useState(!isLoading);
38
+ if (!isLoading && !hasLoaded) {
39
+ setHasLoaded(true);
40
+ }
41
+ return hasLoaded ? _jsx(LoadedAlertingDialogState, { children: children }) : _jsx(_Fragment, { children: children });
34
42
  }
35
43
  function LoadedAlertingDialogState({ children }) {
36
44
  const { weekStart, timezone, externalRecipient } = useAutomationsContext();
@@ -5,5 +5,5 @@
5
5
  * @internal
6
6
  */
7
7
  export function missingAlertStateProvider(accessor) {
8
- throw new Error(`${accessor} must be used within AlertingDialogStateProvider. The provider mounts only once the dialog's data has loaded, so check useAlertingDialogContext().isLoading before reading alerting dialog state.`);
8
+ throw new Error(`${accessor} must be used within AlertingDialogStateProvider. The state model mounts once the dialog's data has first loaded, so check useAlertingDialogContext().isLoading before reading alerting dialog state.`);
9
9
  }
@@ -766,7 +766,7 @@ export interface IAlertingDialogShellProps extends Pick<IAlertingDialogProps, "o
766
766
  * The dialog's single submit — `submit` of the caller's {@link useAlertSubmit} instance. Drives the
767
767
  * footer's submit button and the Enter key on it. The shell does not own the submit hook, so a
768
768
  * caller's own Enter handler or button can share the same instance. Create the hook instance only
769
- * once the dialog context reports `isLoading: false`.
769
+ * once the dialog's data has first loaded — the state hooks throw before then.
770
770
  */
771
771
  onSubmit: () => void;
772
772
  /**
@@ -8,7 +8,8 @@ import { type IDefaultScheduledEmailDialogProps } from "../types.js";
8
8
  * export draft's state from those contexts rather than from the dashboard store. It must therefore
9
9
  * be rendered within an `AutomationsContextProvider`, a `ScheduledEmailDialogContextProvider` (for
10
10
  * the create/edit flow), and a `ScheduledEmailDialogStateProvider`, whose state model establishes
11
- * itself once `useScheduledEmailDialogContext().isLoading` is false. Inside a `Dashboard`, the
11
+ * itself once `useScheduledEmailDialogContext().isLoading` is first false and stays mounted from
12
+ * then on. Inside a `Dashboard`, the
12
13
  * scheduled export connector supplies the first two providers above the
13
14
  * `ScheduledEmailDialogComponent` slot and mounts `ScheduledEmailDialogStateProvider` around the
14
15
  * resolved slot component — so the default component, and any wholesale slot replacement, inherit
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAuB1C,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iCAAiC,GAAG,YAAY,CAiBlG"}
1
+ {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAuB1C,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iCAAiC,GAAG,YAAY,CAiBlG"}
@@ -26,7 +26,8 @@ import { DefaultScheduledEmailDialogTimezone } from "./components/DefaultSchedul
26
26
  * export draft's state from those contexts rather than from the dashboard store. It must therefore
27
27
  * be rendered within an `AutomationsContextProvider`, a `ScheduledEmailDialogContextProvider` (for
28
28
  * the create/edit flow), and a `ScheduledEmailDialogStateProvider`, whose state model establishes
29
- * itself once `useScheduledEmailDialogContext().isLoading` is false. Inside a `Dashboard`, the
29
+ * itself once `useScheduledEmailDialogContext().isLoading` is first false and stays mounted from
30
+ * then on. Inside a `Dashboard`, the
30
31
  * scheduled export connector supplies the first two providers above the
31
32
  * `ScheduledEmailDialogComponent` slot and mounts `ScheduledEmailDialogStateProvider` around the
32
33
  * resolved slot component — so the default component, and any wholesale slot replacement, inherit
@@ -15,9 +15,9 @@ import { type IScheduledEmailDialogShellProps } from "../types.js";
15
15
  * shell itself. The shell does not own the save: call {@link useSaveScheduledEmailToBackend} and pass its
16
16
  * `handleSaveScheduledEmail`, `isSavingScheduledEmail` and `savingErrorMessage`; build Enter handlers for
17
17
  * the blocks you place with {@link useScheduledEmailSubmitOnEnter} over the same `handleSaveScheduledEmail`.
18
- * Call that hook only once `useScheduledEmailDialogContext().isLoading` is false — the state hooks throw
19
- * while the dialog loads and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as
20
- * the example does.
18
+ * Call that hook only once `useScheduledEmailDialogContext().isLoading` is first false — the state hooks
19
+ * throw until the dialog's data has first loaded (after that they stay available through a refresh)
20
+ * and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
21
21
  *
22
22
  * Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
23
23
  *
@@ -25,7 +25,7 @@ import { type IScheduledEmailDialogShellProps } from "../types.js";
25
25
  * ```tsx
26
26
  * function MyScheduledEmailDialog(props: IScheduledEmailDialogProps) {
27
27
  * const { isLoading } = useScheduledEmailDialogContext();
28
- * // the state hooks throw while the dialog loads; the shell renders the loading skeleton
28
+ * // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
29
29
  * if (isLoading) {
30
30
  * return <ScheduledEmailDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
31
31
  * }
@@ -40,9 +40,9 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
40
40
  * shell itself. The shell does not own the save: call {@link useSaveScheduledEmailToBackend} and pass its
41
41
  * `handleSaveScheduledEmail`, `isSavingScheduledEmail` and `savingErrorMessage`; build Enter handlers for
42
42
  * the blocks you place with {@link useScheduledEmailSubmitOnEnter} over the same `handleSaveScheduledEmail`.
43
- * Call that hook only once `useScheduledEmailDialogContext().isLoading` is false — the state hooks throw
44
- * while the dialog loads and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as
45
- * the example does.
43
+ * Call that hook only once `useScheduledEmailDialogContext().isLoading` is first false — the state hooks
44
+ * throw until the dialog's data has first loaded (after that they stay available through a refresh)
45
+ * and render the shell alone (any `onSubmit`, `isSaving: false`) until then, as the example does.
46
46
  *
47
47
  * Needs an ambient `IntlProvider`; inside a `Dashboard` the dashboard's provider covers it.
48
48
  *
@@ -50,7 +50,7 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
50
50
  * ```tsx
51
51
  * function MyScheduledEmailDialog(props: IScheduledEmailDialogProps) {
52
52
  * const { isLoading } = useScheduledEmailDialogContext();
53
- * // the state hooks throw while the dialog loads; the shell renders the loading skeleton
53
+ * // the state hooks throw until the dialog's data has first loaded; the shell shows the skeleton
54
54
  * if (isLoading) {
55
55
  * return <ScheduledEmailDialogShell {...props} onSubmit={() => {}} isSaving={false} />;
56
56
  * }
@@ -1,9 +1,10 @@
1
1
  import { type ReactNode } from "react";
2
2
  /**
3
- * Renders its children only once the scheduled-export dialog's data has loaded — the state accessors
4
- * throw while `useScheduledEmailDialogContext().isLoading` is true, because the state providers mount
5
- * only then. Every connected scheduled-email block goes through it. On scheduled email this state is
6
- * on the ordinary path a widget export renders while its filters load so a shell sees its blocks
3
+ * Renders its children only while `useScheduledEmailDialogContext().isLoading` is false. The state
4
+ * accessors throw until the dialog's data has first loaded; during a later refresh the state model
5
+ * stays mounted and keeps serving, but the blocks still hide behind the loading state. Every
6
+ * connected scheduled-email block goes through it. On scheduled email the loading state is on the
7
+ * ordinary path — a widget export renders while its filters load — so a shell sees its blocks
7
8
  * appear once loading ends.
8
9
  *
9
10
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"WhenScheduledEmailDialogLoaded.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAGnF"}
1
+ {"version":3,"file":"WhenScheduledEmailDialogLoaded.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/blocks/WhenScheduledEmailDialogLoaded.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,kDAGnF"}
@@ -1,10 +1,11 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useScheduledEmailDialogContext } from "../../contexts/ScheduledEmailDialogContext.js";
3
3
  /**
4
- * Renders its children only once the scheduled-export dialog's data has loaded — the state accessors
5
- * throw while `useScheduledEmailDialogContext().isLoading` is true, because the state providers mount
6
- * only then. Every connected scheduled-email block goes through it. On scheduled email this state is
7
- * on the ordinary path a widget export renders while its filters load so a shell sees its blocks
4
+ * Renders its children only while `useScheduledEmailDialogContext().isLoading` is false. The state
5
+ * accessors throw until the dialog's data has first loaded; during a later refresh the state model
6
+ * stays mounted and keeps serving, but the blocks still hide behind the loading state. Every
7
+ * connected scheduled-email block goes through it. On scheduled email the loading state is on the
8
+ * ordinary path — a widget export renders while its filters load — so a shell sees its blocks
8
9
  * appear once loading ends.
9
10
  *
10
11
  * @internal
@@ -1,14 +1,16 @@
1
1
  import { type ReactNode } from "react";
2
2
  /**
3
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.
4
+ * contexts from the first render where the dialog's data has loaded.
5
5
  *
6
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.
7
+ * blocks and a wholesale replacement all read the same state with no extra wiring. Mounts the
8
+ * state model on the first render where `useScheduledEmailDialogContext().isLoading` is false and
9
+ * keeps it mounted for the rest of the dialog's life: the model seeds its draft from the dialog's
10
+ * loaded data in `useState` initializers that never re-run, so mounting earlier would freeze that
11
+ * seed against not-yet-loaded data — that is the ordinary path here, not an edge case: a widget
12
+ * export's filters load after the dialog opens — and unmounting on a later `isLoading` flip (an
13
+ * automations refresh) would discard the in-flight draft.
12
14
  *
13
15
  * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
14
16
  * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
@@ -1 +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;AAsBhD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAQtF"}
1
+ {"version":3,"file":"ScheduledEmailDialogStateProvider.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/state/ScheduledEmailDialogStateProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAsB1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iCAAiC,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAetF"}