@gooddata/sdk-ui-dashboard 11.53.0-alpha.3 → 11.53.0-alpha.5

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 (55) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.js +1 -1
  3. package/esm/index.d.ts +6 -5
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +2 -2
  6. package/esm/presentation/automations/alerting/AlertingDialog.d.ts +2 -1
  7. package/esm/presentation/automations/alerting/AlertingDialog.d.ts.map +1 -1
  8. package/esm/presentation/automations/alerting/AlertingDialog.js +4 -3
  9. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogFilters.d.ts +8 -0
  10. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogFilters.d.ts.map +1 -0
  11. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogFilters.js +13 -0
  12. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  13. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +14 -3
  14. package/esm/presentation/automations/alerting/types.d.ts +71 -8
  15. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  16. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +9 -0
  17. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
  18. package/esm/presentation/automations/contexts/AlertingDialogContext.js +9 -0
  19. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +10 -0
  20. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
  21. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +10 -0
  22. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +2 -1
  23. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  24. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +27 -3
  25. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogFilters.d.ts +7 -0
  26. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogFilters.d.ts.map +1 -0
  27. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/ScheduledEmailDialogFilters.js +11 -0
  28. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts +3 -1
  29. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.d.ts.map +1 -1
  30. package/esm/presentation/automations/scheduledEmail/ScheduledEmailDialog.js +5 -3
  31. package/esm/presentation/automations/scheduledEmail/types.d.ts +141 -11
  32. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  33. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts +17 -1
  34. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts.map +1 -1
  35. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
  36. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +7 -51
  37. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +21 -0
  38. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  39. package/esm/presentation/automations/shared/automationFilters/utils.js +57 -0
  40. package/esm/presentation/automations/shared/slots/types.d.ts +42 -0
  41. package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -1
  42. package/esm/presentation/dashboard/components/DashboardRenderer.d.ts.map +1 -1
  43. package/esm/presentation/dashboard/components/DashboardRenderer.js +4 -1
  44. package/esm/presentation/dashboard/types.d.ts +20 -2
  45. package/esm/presentation/dashboard/types.d.ts.map +1 -1
  46. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts +4 -2
  47. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts.map +1 -1
  48. package/esm/presentation/dashboardContexts/DashboardComponentsContext.js +2 -0
  49. package/esm/presentation/dashboardContexts/DefaultDialogContextDecorator.d.ts +10 -0
  50. package/esm/presentation/dashboardContexts/DefaultDialogContextDecorator.d.ts.map +1 -0
  51. package/esm/presentation/dashboardContexts/DefaultDialogContextDecorator.js +9 -0
  52. package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.d.ts.map +1 -1
  53. package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.js +4 -4
  54. package/esm/sdk-ui-dashboard.d.ts +332 -17
  55. package/package.json +21 -21
@@ -26,6 +26,7 @@ import { DashboardAttributeFilterSelectionMode } from '@gooddata/sdk-model';
26
26
  import { DashboardAttributeFilterSelectionType } from '@gooddata/sdk-model';
27
27
  import { DashboardDateFilterConfigMode } from '@gooddata/sdk-model';
28
28
  import { DashboardFiltersApplyMode } from '@gooddata/sdk-model';
29
+ import { DashboardParameterMode } from '@gooddata/sdk-model';
29
30
  import { DashboardSummaryWorkflowStatus } from '@gooddata/sdk-backend-spi';
30
31
  import { DashboardTextAttributeFilter } from '@gooddata/sdk-model';
31
32
  import { DataViewFacade } from '@gooddata/sdk-ui';
@@ -167,6 +168,7 @@ import { INotificationChannelMetadataObjectBase } from '@gooddata/sdk-model';
167
168
  import { InsightDisplayFormUsage } from '@gooddata/sdk-model';
168
169
  import { InsightDrillDefinition } from '@gooddata/sdk-model';
169
170
  import { IntlShape } from 'react-intl';
171
+ import { IParameterDefinition } from '@gooddata/sdk-model';
170
172
  import { IParameterMetadataObject } from '@gooddata/sdk-model';
171
173
  import { IPositiveAttributeFilter } from '@gooddata/sdk-model';
172
174
  import { IPushData } from '@gooddata/sdk-ui';
@@ -214,6 +216,7 @@ import { ParameterValue } from '@gooddata/sdk-model';
214
216
  import { Patch } from 'immer';
215
217
  import { PayloadAction } from '@reduxjs/toolkit';
216
218
  import { PlatformEdition } from '@gooddata/sdk-model';
219
+ import { Provider } from 'react';
217
220
  import { ReactElement } from 'react';
218
221
  import { ReactNode } from 'react';
219
222
  import { ReactReduxContextValue } from 'react-redux';
@@ -509,12 +512,24 @@ export declare function addVisualizationToSwitcherWidgetContent(ref: ObjRef, vis
509
512
 
510
513
  /**
511
514
  * Resolves the dialog component from DashboardComponentsContext and mounts it under the
512
- * alerting dialog's state contexts.
515
+ * alerting dialog's state contexts, inside the resolved context decorator — so a decorated
516
+ * dialog context is what both the state seeding and the dialog (default or replacement) read.
513
517
  *
514
518
  * @internal
515
519
  */
516
520
  export declare function AlertingDialog(props: IAlertingDialogProps): ReactElement;
517
521
 
522
+ /**
523
+ * Provides the alerting create/edit dialog context.
524
+ *
525
+ * The dashboard's connector mounts the original value. Exported so a context-decorator
526
+ * component (`CustomAlertingDialogContextDecoratorComponent`) can re-provide a decorated value
527
+ * read from `useAlertingDialogContext()`; it is not a way to run the dialog outside a dashboard.
528
+ *
529
+ * @alpha
530
+ */
531
+ export declare const AlertingDialogContextProvider: Provider<IAlertingDialogContextValue | undefined>;
532
+
518
533
  /**
519
534
  * The exact props the default dialog renders its header with, including the dialog's
520
535
  * initial-focus ref.
@@ -1780,6 +1795,36 @@ export declare function crossFiltering(insight: IInsight, drillDefinition: ICros
1780
1795
  */
1781
1796
  export declare type CustomAlertingDialogComponent = ComponentType<IAlertingDialogProps>;
1782
1797
 
1798
+ /**
1799
+ * Decorates the data the alerting create/edit dialog reads.
1800
+ *
1801
+ * The dashboard mounts this component between the connector-provided dialog context and the
1802
+ * dialog's state model, so the value it re-provides is what both the default dialog and the
1803
+ * state seeding read — a wholesale `AlertingDialogComponent` replacement sees it too. Read the
1804
+ * current value with `useAlertingDialogContext()`, decorate the members to adjust, and
1805
+ * re-provide via `AlertingDialogContextProvider`:
1806
+ *
1807
+ * @example
1808
+ * ```tsx
1809
+ * function InsightDecorator({ children }: { children?: ReactNode }) {
1810
+ * const ctx = useAlertingDialogContext();
1811
+ * const insight = useMyDecoratedInsight(ctx.insight);
1812
+ * const decorated = useMemo(() => ({ ...ctx, insight }), [ctx, insight]);
1813
+ * return <AlertingDialogContextProvider value={decorated}>{children}</AlertingDialogContextProvider>;
1814
+ * }
1815
+ * // <Dashboard AlertingDialogContextDecoratorComponent={InsightDecorator} />
1816
+ * ```
1817
+ *
1818
+ * Pass `isLoading` through untouched: the dialog's state model defers seeding until it is
1819
+ * false, and a decorator that overrides it corrupts the draft seed. Define the decorator
1820
+ * outside render, or the dialog remounts (and reseeds) on every parent render.
1821
+ *
1822
+ * @alpha
1823
+ */
1824
+ export declare type CustomAlertingDialogContextDecoratorComponent = ComponentType<{
1825
+ children?: ReactNode;
1826
+ }>;
1827
+
1783
1828
  /**
1784
1829
  * @alpha
1785
1830
  */
@@ -1989,6 +2034,41 @@ export declare type CustomSaveButtonComponent = ComponentType<ISaveButtonProps>;
1989
2034
  */
1990
2035
  export declare type CustomScheduledEmailDialogComponent = ComponentType<IScheduledEmailDialogProps>;
1991
2036
 
2037
+ /**
2038
+ * Decorates the data the scheduled-email create/edit dialog reads.
2039
+ *
2040
+ * The dashboard mounts this component between the connector-provided dialog context and the
2041
+ * dialog's state model, so the value it re-provides is what both the default dialog and the
2042
+ * state seeding read — a wholesale `ScheduledEmailDialogComponent` replacement sees it too.
2043
+ * Read the current value with `useScheduledEmailDialogContext()`, decorate the members to
2044
+ * adjust, and re-provide via `ScheduledEmailDialogContextProvider`:
2045
+ *
2046
+ * @example
2047
+ * ```tsx
2048
+ * function ChannelsDecorator({ children }: { children?: ReactNode }) {
2049
+ * const ctx = useScheduledEmailDialogContext();
2050
+ * const notificationChannels = useMyFilteredChannels(ctx.notificationChannels);
2051
+ * const decorated = useMemo(() => ({ ...ctx, notificationChannels }), [ctx, notificationChannels]);
2052
+ * return (
2053
+ * <ScheduledEmailDialogContextProvider value={decorated}>
2054
+ * {children}
2055
+ * </ScheduledEmailDialogContextProvider>
2056
+ * );
2057
+ * }
2058
+ * // <Dashboard ScheduledEmailDialogContextDecoratorComponent={ChannelsDecorator} />
2059
+ * ```
2060
+ *
2061
+ * Pass `isLoading` through untouched. On scheduled email the loading state is on the ordinary
2062
+ * path — a widget export renders while its filters load — so a decorator that overrides it
2063
+ * corrupts the draft seed on every such open, not in an edge case. Define the decorator outside
2064
+ * render, or the dialog remounts (and reseeds) on every parent render.
2065
+ *
2066
+ * @alpha
2067
+ */
2068
+ export declare type CustomScheduledEmailDialogContextDecoratorComponent = ComponentType<{
2069
+ children?: ReactNode;
2070
+ }>;
2071
+
1992
2072
  /**
1993
2073
  * @alpha
1994
2074
  */
@@ -4123,7 +4203,8 @@ export declare function DefaultSaveButton({ isVisible, isEnabled, isSaving, butt
4123
4203
  * outside those providers throws at runtime.
4124
4204
  *
4125
4205
  * Slots render only in the fully rendered dialog: not while the dialog context reports loading,
4126
- * and not while the stale-filters confirmation step is shown.
4206
+ * and not while the stale-filters confirmation step is shown. The Filters slot additionally
4207
+ * renders only while the Filters tab is selected — see {@link IScheduledEmailDialogSlots.Filters}.
4127
4208
  *
4128
4209
  * @alpha
4129
4210
  */
@@ -5762,6 +5843,20 @@ export declare interface IAlertingDialogContextValue {
5762
5843
  isLoading: boolean;
5763
5844
  }
5764
5845
 
5846
+ /**
5847
+ * Props of the default alerting dialog's filters region (the filter and parameter chips above
5848
+ * the form).
5849
+ *
5850
+ * @alpha
5851
+ */
5852
+ export declare interface IAlertingDialogFiltersProps extends IAutomationDialogFiltersProps {
5853
+ /**
5854
+ * Disables the date filter chips. The default dialog disables them while the alert uses
5855
+ * anomaly detection.
5856
+ */
5857
+ disableDateFilters: boolean;
5858
+ }
5859
+
5765
5860
  /**
5766
5861
  * Props of the default alerting dialog's header region (the title input row).
5767
5862
  *
@@ -5781,14 +5876,17 @@ export declare interface IAlertingDialogProps {
5781
5876
  /**
5782
5877
  * In case, we are not creating new alert, but editing existing one, this is the active alert to be edited.
5783
5878
  *
5784
- * @deprecated read `alertToEdit` from `useAlertingDialogContext()` instead. Prop will be removed.
5879
+ * @deprecated has no effect since 11.51 — the dialog reads `alertToEdit` from
5880
+ * `useAlertingDialogContext()`. To adjust what it reads, use the
5881
+ * `AlertingDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
5785
5882
  */
5786
5883
  alertToEdit?: IAutomationMetadataObject;
5787
5884
  /**
5788
5885
  * Notification channels in organization
5789
5886
  *
5790
- * @deprecated read `notificationChannels` from `useAlertingDialogContext()` instead.
5791
- * Prop will be removed.
5887
+ * @deprecated has no effect since 11.51 — the dialog reads `notificationChannels` from
5888
+ * `useAlertingDialogContext()`. To adjust what it reads, use the
5889
+ * `AlertingDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
5792
5890
  */
5793
5891
  notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
5794
5892
  /**
@@ -5799,7 +5897,9 @@ export declare interface IAlertingDialogProps {
5799
5897
  * supports insight widgets; custom widgets and nested layouts are not valid
5800
5898
  * alert targets and were silently discarded at the connector boundary anyway.
5801
5899
  *
5802
- * @deprecated read `widget` from `useAlertingDialogContext()` instead. Prop will be removed.
5900
+ * @deprecated has no effect since 11.51 — the dialog reads `widget` from
5901
+ * `useAlertingDialogContext()`. To adjust what it reads, use the
5902
+ * `AlertingDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
5803
5903
  */
5804
5904
  widget?: IWidget;
5805
5905
  /**
@@ -5807,13 +5907,17 @@ export declare interface IAlertingDialogProps {
5807
5907
  *
5808
5908
  * Note: this is available only when alerting for widget, not dashboard.
5809
5909
  *
5810
- * @deprecated read `insight` from `useAlertingDialogContext()` instead. Prop will be removed.
5910
+ * @deprecated has no effect since 11.51 — the dialog reads `insight` from
5911
+ * `useAlertingDialogContext()`. To adjust what it reads, use the
5912
+ * `AlertingDialogContextDecoratorComponent` dashboard prop (e.g. so an alert follows a
5913
+ * widget's date-granularity selection). Prop will be removed.
5811
5914
  */
5812
5915
  insight?: IInsight;
5813
5916
  /**
5814
5917
  * Is alert dialog loading initial data, before it can be rendered?
5815
5918
  *
5816
- * @deprecated read `isLoading` from `useAlertingDialogContext()` instead. Prop will be removed.
5919
+ * @deprecated has no effect since 11.51 — the dialog reads `isLoading` from
5920
+ * `useAlertingDialogContext()`. Prop will be removed.
5817
5921
  */
5818
5922
  isLoading?: boolean;
5819
5923
  /**
@@ -5857,6 +5961,18 @@ export declare interface IAlertingDialogSlots {
5857
5961
  * identity — see {@link ISlotProps}.
5858
5962
  */
5859
5963
  Header?: ComponentType<ISlotProps<AlertingDialogHeaderDefaultProps>>;
5964
+ /**
5965
+ * Wraps or replaces the dialog's filters region (the filter and parameter chips). Must have
5966
+ * a stable reference identity — see {@link ISlotProps}.
5967
+ *
5968
+ * Renders only in the fully rendered dialog: not while the dialog context reports loading,
5969
+ * and not while the stale-filters confirmation step is shown.
5970
+ *
5971
+ * A replacement takes over computing the next filters array: `defaultProps.onFiltersChange`
5972
+ * expects the complete selection, so change/remove/add gestures must submit the whole
5973
+ * updated array, not a delta.
5974
+ */
5975
+ Filters?: ComponentType<ISlotProps<IAlertingDialogFiltersProps>>;
5860
5976
  }
5861
5977
 
5862
5978
  /**
@@ -6097,6 +6213,47 @@ export declare interface IAttributesDropdownProps extends IDashboardAttributeFil
6097
6213
  onParameterSelect?: (ref: IdentifierRef) => void;
6098
6214
  }
6099
6215
 
6216
+ /**
6217
+ * Members shared by both automation dialogs' filters regions.
6218
+ *
6219
+ * @alpha
6220
+ */
6221
+ export declare interface IAutomationDialogFiltersProps {
6222
+ /**
6223
+ * All filters the automation could select from.
6224
+ */
6225
+ availableFilters: FilterContextItem[] | undefined;
6226
+ /**
6227
+ * The automation's current filter selection.
6228
+ */
6229
+ selectedFilters: FilterContextItem[];
6230
+ /**
6231
+ * Replaces the selection with the complete updated array. The dialog state applies it
6232
+ * wholesale — change/remove/add gestures must submit the whole array, not a delta.
6233
+ */
6234
+ onFiltersChange: (filters: FilterContextItem[]) => void;
6235
+ /**
6236
+ * Parameter chips to render. Empty or undefined while the `enableParameters` feature is off.
6237
+ */
6238
+ parameters?: IAutomationParameter[];
6239
+ /**
6240
+ * Workspace parameters addable via the "+" menu.
6241
+ */
6242
+ availableParameters?: IAutomationParameter[];
6243
+ /**
6244
+ * Called when a parameter is added from the "+" menu.
6245
+ */
6246
+ onParameterAdd: (ref: IdentifierRef) => void;
6247
+ /**
6248
+ * Called when a parameter chip's value is edited.
6249
+ */
6250
+ onParameterChange: (ref: IdentifierRef, value: ParameterValue) => void;
6251
+ /**
6252
+ * Called when a parameter chip is removed.
6253
+ */
6254
+ onParameterDelete: (ref: IdentifierRef) => void;
6255
+ }
6256
+
6100
6257
  /**
6101
6258
  * Members shared by both automation dialogs' header regions.
6102
6259
  *
@@ -6161,6 +6318,37 @@ export declare interface IAutomationFiltersTab {
6161
6318
  hiddenFilters: FilterContextItem[];
6162
6319
  }
6163
6320
 
6321
+ /**
6322
+ * A workspace parameter resolved for display and editing inside an automation (alert/schedule)
6323
+ * dialog. The `value` is the current effective value the headless run will capture; `definition`
6324
+ * picks which control renders.
6325
+ *
6326
+ * @alpha
6327
+ */
6328
+ export declare interface IAutomationParameter {
6329
+ /**
6330
+ * Reference to the workspace parameter this row represents.
6331
+ */
6332
+ ref: IdentifierRef;
6333
+ /**
6334
+ * Title shown on the parameter chip: the dashboard-level label when the dashboard defines one,
6335
+ * otherwise the workspace parameter's title, otherwise the identifier.
6336
+ */
6337
+ title: string;
6338
+ /**
6339
+ * The current effective value — the value a headless run of the automation will capture.
6340
+ */
6341
+ value: ParameterValue;
6342
+ /**
6343
+ * Dashboard-level mode of the parameter, controlling whether its chip is editable in the dialog.
6344
+ */
6345
+ mode: DashboardParameterMode;
6346
+ /**
6347
+ * Resolved definition of the parameter; determines which editing control the chip renders.
6348
+ */
6349
+ definition: IParameterDefinition;
6350
+ }
6351
+
6164
6352
  /**
6165
6353
  * Main context shared across all automation dialogs.
6166
6354
  * Only fields actively consumed by migrated leaves are listed here — add fields as each leaf migrates.
@@ -8219,6 +8407,15 @@ export declare interface IDashboardCustomComponentProps {
8219
8407
  * @alpha
8220
8408
  */
8221
8409
  ScheduledEmailDialogComponent?: CustomScheduledEmailDialogComponent;
8410
+ /**
8411
+ * Specify component to decorate the data the scheduled email dialog reads.
8412
+ *
8413
+ * Rendered between the dialog's data context and its state model; see
8414
+ * `CustomScheduledEmailDialogContextDecoratorComponent` for the contract and an example.
8415
+ *
8416
+ * @alpha
8417
+ */
8418
+ ScheduledEmailDialogContextDecoratorComponent?: CustomScheduledEmailDialogContextDecoratorComponent;
8222
8419
  /**
8223
8420
  * Specify component to use for rendering the scheduled email management dialog.
8224
8421
  *
@@ -8237,6 +8434,15 @@ export declare interface IDashboardCustomComponentProps {
8237
8434
  * @alpha
8238
8435
  */
8239
8436
  AlertingDialogComponent?: CustomAlertingDialogComponent;
8437
+ /**
8438
+ * Specify component to decorate the data the alerting dialog reads.
8439
+ *
8440
+ * Rendered between the dialog's data context and its state model; see
8441
+ * `CustomAlertingDialogContextDecoratorComponent` for the contract and an example.
8442
+ *
8443
+ * @alpha
8444
+ */
8445
+ AlertingDialogContextDecoratorComponent?: CustomAlertingDialogContextDecoratorComponent;
8240
8446
  /**
8241
8447
  * Specify component to use for rendering the share dialog.
8242
8448
  *
@@ -12913,7 +13119,9 @@ export declare interface IDefaultDashboardToolbarGroupProps {
12913
13119
  * @remarks
12914
13120
  * Extends the shared {@link IScheduledEmailDialogProps} with customization only the default implementation
12915
13121
  * supports. Slots render only in the fully rendered dialog: not while the dialog context reports
12916
- * loading, and not while the stale-filters confirmation step is shown.
13122
+ * loading, and not while the stale-filters confirmation step is shown. The Filters slot
13123
+ * additionally renders only while the Filters tab is selected — see
13124
+ * {@link IScheduledEmailDialogSlots.Filters}.
12917
13125
  *
12918
13126
  * @alpha
12919
13127
  */
@@ -17212,6 +17420,74 @@ export declare interface IScheduledEmailDialogContextValue {
17212
17420
  isLoading: boolean;
17213
17421
  }
17214
17422
 
17423
+ /**
17424
+ * Props of the default scheduled email dialog's filters region (the Filters tab content).
17425
+ *
17426
+ * @remarks
17427
+ * The region is bimodal: whenever `filtersByTab` is present with more than one tab, the by-tab
17428
+ * members (`filtersByTab` and the `*ByTab` parameter family) drive rendering and the flat
17429
+ * handlers are unused; otherwise the flat members drive it and the by-tab members are unused.
17430
+ * `defaultProps` always carries both families so a wrap stays faithful in either mode.
17431
+ *
17432
+ * @alpha
17433
+ */
17434
+ export declare interface IScheduledEmailDialogFiltersProps extends IAutomationDialogFiltersProps {
17435
+ /**
17436
+ * Whether the schedule stores its own filters instead of using the latest saved dashboard
17437
+ * filters.
17438
+ */
17439
+ storeFilters: boolean;
17440
+ /**
17441
+ * Toggles filter (and parameter) persistence. The current filters must be passed back —
17442
+ * flat mode as `(value, selectedFilters, undefined)`, by-tab mode as
17443
+ * `(value, undefined, editedFiltersByTab)`; calling it with the value alone leaves the
17444
+ * draft's export definitions out of sync with the toggle.
17445
+ */
17446
+ onStoreFiltersChange: (value: boolean, filters?: FilterContextItem[], filtersByTab?: Record<string, FilterContextItem[]>) => void;
17447
+ /**
17448
+ * Whether the schedule targets the whole dashboard (shows the store-filters checkbox)
17449
+ * rather than a single widget.
17450
+ */
17451
+ isDashboardAutomation: boolean;
17452
+ /**
17453
+ * Filters structured per dashboard tab; when present with more than one tab, the region
17454
+ * renders in by-tab mode.
17455
+ */
17456
+ filtersByTab?: IAutomationFiltersTab[];
17457
+ /**
17458
+ * Edited filter selection per tab.
17459
+ */
17460
+ editedFiltersByTab?: Record<string, FilterContextItem[]>;
17461
+ /**
17462
+ * Replaces a tab's filter selection with the complete updated record.
17463
+ */
17464
+ onFiltersByTabChange?: (filtersByTab: Record<string, FilterContextItem[]>) => void;
17465
+ /**
17466
+ * Parameter chips per tab (by-tab mode).
17467
+ */
17468
+ parametersByTab?: Record<string, IAutomationParameter[]>;
17469
+ /**
17470
+ * Addable workspace parameters per tab (by-tab mode).
17471
+ */
17472
+ availableParametersByTab?: Record<string, IAutomationParameter[]>;
17473
+ /**
17474
+ * Called when a parameter is added in a tab section (by-tab mode).
17475
+ */
17476
+ onParameterAddByTab?: (tabId: string, ref: IdentifierRef) => void;
17477
+ /**
17478
+ * Called when a parameter chip's value is edited in a tab section (by-tab mode).
17479
+ */
17480
+ onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value: ParameterValue) => void;
17481
+ /**
17482
+ * Called when a parameter chip is removed in a tab section (by-tab mode).
17483
+ */
17484
+ onParameterDeleteByTab?: (tabId: string, ref: IdentifierRef) => void;
17485
+ /**
17486
+ * Whether workspace parameters are enabled; adjusts the store-filters tooltip copy.
17487
+ */
17488
+ parametersEnabled?: boolean;
17489
+ }
17490
+
17215
17491
  /**
17216
17492
  * Props of the default scheduled email dialog's header region (the title input row).
17217
17493
  *
@@ -17235,14 +17511,17 @@ export declare interface IScheduledEmailDialogProps {
17235
17511
  /**
17236
17512
  * In case, we are not creating new schedule, but editing existing one, this is the active schedule to be edited.
17237
17513
  *
17238
- * @deprecated read `scheduledExportToEdit` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17514
+ * @deprecated has no effect since 11.51 — the dialog reads `scheduledExportToEdit` from
17515
+ * `useScheduledEmailDialogContext()`. To adjust what it reads, use the
17516
+ * `ScheduledEmailDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
17239
17517
  */
17240
17518
  scheduledExportToEdit?: IAutomationMetadataObject;
17241
17519
  /**
17242
17520
  * Notification channels in organization
17243
17521
  *
17244
- * @deprecated read `notificationChannels` from `useScheduledEmailDialogContext()` instead.
17245
- * Prop will be removed.
17522
+ * @deprecated has no effect since 11.51 — the dialog reads `notificationChannels` from
17523
+ * `useScheduledEmailDialogContext()`. To adjust what it reads, use the
17524
+ * `ScheduledEmailDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
17246
17525
  */
17247
17526
  notificationChannels?: INotificationChannelIdentifier[] | INotificationChannelMetadataObject[];
17248
17527
  /**
@@ -17253,7 +17532,9 @@ export declare interface IScheduledEmailDialogProps {
17253
17532
  * supports insight widgets; custom widgets and nested layouts are not valid
17254
17533
  * export targets and were silently discarded at the connector boundary anyway.
17255
17534
  *
17256
- * @deprecated read `widget` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17535
+ * @deprecated has no effect since 11.51 — the dialog reads `widget` from
17536
+ * `useScheduledEmailDialogContext()`. To adjust what it reads, use the
17537
+ * `ScheduledEmailDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
17257
17538
  */
17258
17539
  widget?: IWidget;
17259
17540
  /**
@@ -17261,7 +17542,9 @@ export declare interface IScheduledEmailDialogProps {
17261
17542
  *
17262
17543
  * Note: this is available only when scheduling export for widget, not dashboard.
17263
17544
  *
17264
- * @deprecated read `insight` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17545
+ * @deprecated has no effect since 11.51 — the dialog reads `insight` from
17546
+ * `useScheduledEmailDialogContext()`. To adjust what it reads, use the
17547
+ * `ScheduledEmailDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
17265
17548
  */
17266
17549
  insight?: IInsight;
17267
17550
  /**
@@ -17276,7 +17559,9 @@ export declare interface IScheduledEmailDialogProps {
17276
17559
  *
17277
17560
  * - If we are editing an existing scheduled export, this will contain its filters, as changing saved filters is currently not allowed.
17278
17561
  *
17279
- * @deprecated read `dashboardFilters` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17562
+ * @deprecated has no effect since 11.51 — the dialog reads `dashboardFilters` from
17563
+ * `useScheduledEmailDialogContext()`. To adjust what it reads, use the
17564
+ * `ScheduledEmailDialogContextDecoratorComponent` dashboard prop. Prop will be removed.
17280
17565
  */
17281
17566
  dashboardFilters?: FilterContextItem[];
17282
17567
  /**
@@ -17297,7 +17582,8 @@ export declare interface IScheduledEmailDialogProps {
17297
17582
  /**
17298
17583
  * Is scheduled email dialog loading initial data, before it can be rendered?
17299
17584
  *
17300
- * @deprecated read `isLoading` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17585
+ * @deprecated has no effect since 11.51 — the dialog reads `isLoading` from
17586
+ * `useScheduledEmailDialogContext()`. Prop will be removed.
17301
17587
  */
17302
17588
  isLoading?: boolean;
17303
17589
  /**
@@ -17353,6 +17639,21 @@ export declare interface IScheduledEmailDialogSlots {
17353
17639
  * identity — see {@link ISlotProps}.
17354
17640
  */
17355
17641
  Header?: ComponentType<ISlotProps<ScheduledEmailDialogHeaderDefaultProps>>;
17642
+ /**
17643
+ * Wraps or replaces the Filters tab content (the filter and parameter chips). Must have a
17644
+ * stable reference identity — see {@link ISlotProps}.
17645
+ *
17646
+ * Renders only in the fully rendered dialog **and only while the Filters tab is selected**:
17647
+ * not while the dialog context reports loading, not while the stale-filters confirmation
17648
+ * step is shown, and not on the General tab. The dialog opens on the General tab, so the
17649
+ * slot is not mounted initially, and it unmounts — losing any local state — on every switch
17650
+ * away from the Filters tab.
17651
+ *
17652
+ * A replacement takes over computing the next filters array: `onFiltersChange` /
17653
+ * `onFiltersByTabChange` expect the complete selection, and `onStoreFiltersChange` must be
17654
+ * passed the current filters — see {@link IScheduledEmailDialogFiltersProps}.
17655
+ */
17656
+ Filters?: ComponentType<ISlotProps<IScheduledEmailDialogFiltersProps>>;
17356
17657
  }
17357
17658
 
17358
17659
  /**
@@ -23147,12 +23448,26 @@ export declare type SavingState = {
23147
23448
 
23148
23449
  /**
23149
23450
  * Resolves the dialog component from DashboardComponentsContext and mounts it under the
23150
- * scheduled-export dialog's state contexts.
23451
+ * scheduled-export dialog's state contexts, inside the resolved context decorator — so a
23452
+ * decorated dialog context is what both the state seeding and the dialog (default or
23453
+ * replacement) read.
23151
23454
  *
23152
23455
  * @internal
23153
23456
  */
23154
23457
  export declare function ScheduledEmailDialog(props: IScheduledEmailDialogProps): ReactElement;
23155
23458
 
23459
+ /**
23460
+ * Provides the scheduled-email create/edit dialog context.
23461
+ *
23462
+ * The dashboard's connector mounts the original value. Exported so a context-decorator
23463
+ * component (`CustomScheduledEmailDialogContextDecoratorComponent`) can re-provide a decorated
23464
+ * value read from `useScheduledEmailDialogContext()`; it is not a way to run the dialog outside
23465
+ * a dashboard.
23466
+ *
23467
+ * @alpha
23468
+ */
23469
+ export declare const ScheduledEmailDialogContextProvider: Provider<IScheduledEmailDialogContextValue | undefined>;
23470
+
23156
23471
  /**
23157
23472
  * The exact props the default dialog renders its header with, including the dialog's
23158
23473
  * initial-focus ref.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-dashboard",
3
- "version": "11.53.0-alpha.3",
3
+ "version": "11.53.0-alpha.5",
4
4
  "description": "GoodData SDK - Dashboard Component",
5
5
  "license": "LicenseRef-LICENSE",
6
6
  "author": "GoodData Corporation",
@@ -60,20 +60,20 @@
60
60
  "ts-invariant": "0.10.3",
61
61
  "tslib": "2.8.1",
62
62
  "uuid": "11.1.1",
63
- "@gooddata/sdk-backend-spi": "11.53.0-alpha.3",
64
- "@gooddata/sdk-model": "11.53.0-alpha.3",
65
- "@gooddata/sdk-ui-charts": "11.53.0-alpha.3",
66
- "@gooddata/sdk-ui": "11.53.0-alpha.3",
67
- "@gooddata/sdk-ui-ext": "11.53.0-alpha.3",
68
- "@gooddata/sdk-backend-base": "11.53.0-alpha.3",
69
- "@gooddata/sdk-ui-filters": "11.53.0-alpha.3",
70
- "@gooddata/sdk-ui-geo": "11.53.0-alpha.3",
71
- "@gooddata/sdk-ui-kit": "11.53.0-alpha.3",
72
- "@gooddata/sdk-ui-pivot": "11.53.0-alpha.3",
73
- "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.3",
74
- "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.3",
75
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.3",
76
- "@gooddata/util": "11.53.0-alpha.3"
63
+ "@gooddata/sdk-backend-base": "11.53.0-alpha.5",
64
+ "@gooddata/sdk-model": "11.53.0-alpha.5",
65
+ "@gooddata/sdk-backend-spi": "11.53.0-alpha.5",
66
+ "@gooddata/sdk-ui": "11.53.0-alpha.5",
67
+ "@gooddata/sdk-ui-charts": "11.53.0-alpha.5",
68
+ "@gooddata/sdk-ui-ext": "11.53.0-alpha.5",
69
+ "@gooddata/sdk-ui-filters": "11.53.0-alpha.5",
70
+ "@gooddata/sdk-ui-kit": "11.53.0-alpha.5",
71
+ "@gooddata/sdk-ui-geo": "11.53.0-alpha.5",
72
+ "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.5",
73
+ "@gooddata/sdk-ui-pivot": "11.53.0-alpha.5",
74
+ "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.5",
75
+ "@gooddata/util": "11.53.0-alpha.5",
76
+ "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.5"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@microsoft/api-documenter": "^7.17.0",
@@ -119,12 +119,12 @@
119
119
  "typescript": "5.9.3",
120
120
  "vitest": "4.1.8",
121
121
  "vitest-dom": "0.1.1",
122
- "@gooddata/eslint-config": "11.53.0-alpha.3",
123
- "@gooddata/oxlint-config": "11.53.0-alpha.3",
124
- "@gooddata/i18n-toolkit": "11.53.0-alpha.3",
125
- "@gooddata/reference-workspace": "11.53.0-alpha.3",
126
- "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.3",
127
- "@gooddata/stylelint-config": "11.53.0-alpha.3"
122
+ "@gooddata/eslint-config": "11.53.0-alpha.5",
123
+ "@gooddata/oxlint-config": "11.53.0-alpha.5",
124
+ "@gooddata/i18n-toolkit": "11.53.0-alpha.5",
125
+ "@gooddata/reference-workspace": "11.53.0-alpha.5",
126
+ "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.5",
127
+ "@gooddata/stylelint-config": "11.53.0-alpha.5"
128
128
  },
129
129
  "peerDependencies": {
130
130
  "react": "^18.0.0 || ^19.0.0",