@gooddata/sdk-ui-dashboard 11.44.0-alpha.2 → 11.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/NOTICE +9 -9
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.d.ts.map +1 -1
  4. package/esm/__version.js +1 -1
  5. package/esm/index.d.ts +1 -1
  6. package/esm/index.d.ts.map +1 -1
  7. package/esm/index.js +1 -1
  8. package/esm/model/commandHandlers/drill/crossFilteringHandler.d.ts.map +1 -1
  9. package/esm/model/commandHandlers/drill/crossFilteringHandler.js +2 -3
  10. package/esm/model/commandHandlers/drill/drillToDashboardHandler.d.ts.map +1 -1
  11. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +1 -3
  12. package/esm/model/store/config/configSelectors.d.ts +0 -42
  13. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  14. package/esm/model/store/config/configSelectors.js +0 -56
  15. package/esm/model/store/tabs/layout/layoutSelectors.d.ts.map +1 -1
  16. package/esm/model/store/tabs/layout/layoutSelectors.js +2 -3
  17. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +2 -1
  18. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  19. package/esm/model/store/tabs/parameters/parametersSelectors.js +3 -2
  20. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -1
  21. package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.js +2 -2
  22. package/esm/presentation/automations/connectors/ScheduledEmailConnector.d.ts.map +1 -1
  23. package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +49 -6
  24. package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.d.ts +2 -0
  25. package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.d.ts.map +1 -0
  26. package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +165 -0
  27. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -1
  28. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +10 -5
  29. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.js +1 -1
  30. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.d.ts.map +1 -1
  31. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js +2 -8
  32. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js +0 -1
  33. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts +3 -0
  34. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.d.ts.map +1 -0
  35. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.js +38 -0
  36. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.d.ts +2 -0
  37. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.d.ts.map +1 -0
  38. package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.js +42 -0
  39. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +12 -1
  40. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  41. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +1 -6
  42. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
  43. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts +54 -0
  44. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts.map +1 -0
  45. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.js +11 -0
  46. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  47. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +2 -2
  48. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduleValidation.js +2 -2
  49. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.d.ts.map +1 -1
  50. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialog.js +5 -35
  51. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.d.ts.map +1 -1
  52. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentBasic.js +5 -15
  53. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.d.ts.map +1 -1
  54. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/DefaultScheduledEmailManagementDialogContentEnhanced.js +7 -25
  55. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/DeleteScheduleConfirmDialog.d.ts.map +1 -1
  56. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/DeleteScheduleConfirmDialog.js +3 -5
  57. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.d.ts.map +1 -1
  58. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailManagementDialog/components/ScheduledEmail.js +3 -6
  59. package/esm/presentation/automations/scheduledEmail/hooks/useScheduleEmailDialogAccessibility.d.ts.map +1 -1
  60. package/esm/presentation/automations/scheduledEmail/hooks/useScheduleEmailDialogAccessibility.js +3 -4
  61. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.js +2 -1
  62. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
  63. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +2 -4
  64. package/esm/presentation/dashboard/DashboardSidebar/FloatingToolbar.d.ts.map +1 -1
  65. package/esm/presentation/dashboard/DashboardSidebar/FloatingToolbar.js +2 -3
  66. package/esm/presentation/dragAndDrop/draggableFilterDropZone/DraggableFilterDropZone.d.ts.map +1 -1
  67. package/esm/presentation/dragAndDrop/draggableFilterDropZone/DraggableFilterDropZone.js +1 -3
  68. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.d.ts.map +1 -1
  69. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AddAttributeFilterPlaceholder.js +1 -4
  70. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.d.ts.map +1 -1
  71. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.js +11 -6
  72. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAvailableDatasetsForItems.d.ts.map +1 -1
  73. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useAvailableDatasetsForItems.js +1 -4
  74. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/LimitValuesConfiguration.d.ts.map +1 -1
  75. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/LimitValuesConfiguration.js +1 -3
  76. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/dialog/ParentFiltersPage.d.ts.map +1 -1
  77. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/dialog/ParentFiltersPage.js +1 -4
  78. package/esm/presentation/filterBar/filterBar/filterViews/AddFilterView.js +1 -1
  79. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.d.ts.map +1 -1
  80. package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.js +18 -6
  81. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.d.ts.map +1 -1
  82. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.js +10 -3
  83. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +8 -4
  84. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  85. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +8 -4
  86. package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.d.ts.map +1 -1
  87. package/esm/presentation/widget/insight/ViewModeDashboardInsight/DashboardInsightWithDrillDialog.js +2 -3
  88. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map +1 -1
  89. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js +2 -3
  90. package/esm/presentation/widget/insight/configuration/InsightCrossFiltering.d.ts +1 -1
  91. package/esm/presentation/widget/insight/configuration/InsightCrossFiltering.d.ts.map +1 -1
  92. package/esm/presentation/widget/insight/configuration/InsightCrossFiltering.js +1 -6
  93. package/esm/sdk-ui-dashboard.d.ts +0 -49
  94. package/package.json +20 -20
  95. package/styles/css/main.css +12 -0
  96. package/styles/css/main.css.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"layoutSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/layout/layoutSelectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layoutSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/layout/layoutSelectors.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ import { isInsightPlaceholderWidget, isKpiPlaceholderWidget, isPlaceholderWidget
9
9
  import { isCustomWidget, isExtendedDashboardLayoutWidget, } from "../../../types/layoutTypes.js";
10
10
  import { createMemoizedSelector } from "../../_infra/selectors.js";
11
11
  import { createUndoableCommandsMapping } from "../../_infra/undoEnhancer.js";
12
- import { selectEnableIgnoreCrossFiltering } from "../../config/configSelectors.js";
13
12
  import { selectCrossFilteringFiltersLocalIdentifiers, selectCrossFilteringFiltersLocalIdentifiersByWidgetRef, } from "../../drill/drillSelectors.js";
14
13
  import { getWidgetCoordinates, isItemWithBaseWidget } from "../../tabs/layout/layoutUtils.js";
15
14
  import { selectFilterContextFilters } from "../filterContext/filterContextSelectors.js";
@@ -262,7 +261,7 @@ export const selectWidgetDrills = createMemoizedSelector((ref) => createSelector
262
261
  * @internal
263
262
  */
264
263
  export const selectAllFiltersForWidgetByRef = createMemoizedSelector((ref) => {
265
- return createSelector(selectWidgetByRef(ref), selectFilterContextFilters, selectCrossFilteringFiltersLocalIdentifiersByWidgetRef(ref), selectEnableIgnoreCrossFiltering, selectWidgetIgnoreCrossFiltering(ref), selectCrossFilteringFiltersLocalIdentifiers, (widget, dashboardFilters, crossFilteringFiltersLocalIdentifiers, isIgnoreCrossFilteringEnabled, shouldIgnoreCrossFiltering, allCrossFilteringLocalIdentifiers) => {
264
+ return createSelector(selectWidgetByRef(ref), selectFilterContextFilters, selectCrossFilteringFiltersLocalIdentifiersByWidgetRef(ref), selectWidgetIgnoreCrossFiltering(ref), selectCrossFilteringFiltersLocalIdentifiers, (widget, dashboardFilters, crossFilteringFiltersLocalIdentifiers, shouldIgnoreCrossFiltering, allCrossFilteringLocalIdentifiers) => {
266
265
  invariant(widget, `widget with ref ${objRefToString(ref)} does not exist in the state`);
267
266
  if (isExtendedDashboardLayoutWidget(widget)) {
268
267
  return [[], []];
@@ -276,7 +275,7 @@ export const selectAllFiltersForWidgetByRef = createMemoizedSelector((ref) => {
276
275
  return true;
277
276
  });
278
277
  // Widget ignores cross-filtering, so we should remove all cross-filtering filters
279
- const filtersWithoutAllCrossFiltering = isIgnoreCrossFilteringEnabled && shouldIgnoreCrossFiltering
278
+ const filtersWithoutAllCrossFiltering = shouldIgnoreCrossFiltering
280
279
  ? filtersWithoutCrossFilteringFilters.filter((f) => {
281
280
  if (isDashboardAttributeFilterItem(f)) {
282
281
  const localId = dashboardAttributeFilterItemLocalIdentifier(f);
@@ -98,7 +98,8 @@ export declare const selectHasAnyResettableParameterOnActiveTab: DashboardSelect
98
98
  */
99
99
  export declare const selectParameterReconciliations: DashboardSelector<IParameterReconciliationEntry[]>;
100
100
  /**
101
- * Per-ref reconciliation status for the active tab's parameter chip (per {@link classifyParameterReconciliation}).
101
+ * Reconciliation status of a parameter's effective value, not its persisted value (which
102
+ * {@link selectParameterReconciliations} uses).
102
103
  *
103
104
  * @internal
104
105
  */
@@ -1 +1 @@
1
- {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"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"}
@@ -192,7 +192,8 @@ export const selectParameterReconciliations = createSelector(selectTabs, selectC
192
192
  return result.length === 0 ? EMPTY_RECONCILIATIONS : result;
193
193
  });
194
194
  /**
195
- * Per-ref reconciliation status for the active tab's parameter chip (per {@link classifyParameterReconciliation}).
195
+ * Reconciliation status of a parameter's effective value, not its persisted value (which
196
+ * {@link selectParameterReconciliations} uses).
196
197
  *
197
198
  * @internal
198
199
  */
@@ -200,7 +201,7 @@ export const selectParameterReconciliationByRef = createMemoizedSelector((ref) =
200
201
  if (!isEnabled || !isCatalogLoaded || !entry) {
201
202
  return undefined;
202
203
  }
203
- return classifyParameterReconciliation(entry.parameter, workspaceParameter);
204
+ return classifyParameterReconciliation(applyRuntimeOverride(entry), workspaceParameter);
204
205
  }));
205
206
  /**
206
207
  * Owning-tab parameter entries and the metric → parameter map for a widget, keyed by ref.
@@ -1 +1 @@
1
- {"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EAEb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,OAAO,EACZ,KAAK,cAAc,EAItB,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAkCvG,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,wBAAwB,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,EACzB,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,yBAAyB,EAC5B,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmoBpB"}
1
+ {"version":3,"file":"useEditAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EAEb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,OAAO,EACZ,KAAK,cAAc,EAItB,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAkCvG,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,wBAAwB,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE9C,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,EACzB,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,yBAAyB,EAC5B,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAioBpB"}
@@ -21,7 +21,7 @@ import { useAttributeValuesFromExecResults } from "./useAttributeValuesFromExecR
21
21
  import { useThresholdValue } from "./useThresholdValue.js";
22
22
  export function useEditAlert({ alertToEdit, notificationChannels, insight, widget, users, editedAutomationFilters, maxAutomationsRecipients, setEditedAutomationFilters, availableFiltersAsVisibleFilters, filtersForNewAutomation, externalRecipientOverride, }) {
23
23
  const intl = useIntl();
24
- const { locale, catalogDateDatasets, catalogAttributes, currentUser, separators, weekStart, timezone, settings, allowHourlyRecurrence, features: { enableComparisonInAlerting: canManageComparison, enableExternalRecipients: enabledExternalRecipients, enableAlertAttributes: canManageAttributes, enableAlertOncePerInterval, }, } = useAutomationsContext();
24
+ const { locale, catalogDateDatasets, catalogAttributes, currentUser, separators, weekStart, timezone, settings, allowHourlyRecurrence, features: { enableComparisonInAlerting: canManageComparison, enableAlertAttributes: canManageAttributes, enableAlertOncePerInterval, }, } = useAutomationsContext();
25
25
  const isInvalidConnectionToInsight = alertToEdit?.metadata?.widget && !insight;
26
26
  const { executionResultByRef, dashboardId, hiddenFilters: dashboardHiddenFilters, commonDateFilterId, dashboardEvaluationFrequency, widgetLocalIdToTabIdMap: widgetTabMap, parameterValues, } = useAlertingDialogContext();
27
27
  const execResult = executionResultByRef(widget?.ref);
@@ -103,7 +103,7 @@ export function useEditAlert({ alertToEdit, notificationChannels, insight, widge
103
103
  const selectedGranularity = getAlertGranularity(editedAutomation?.alert);
104
104
  const [selectedAttribute, selectedValue] = getAlertAttribute(supportedAttributes, editedAutomation);
105
105
  const selectedNotificationChannel = notificationChannels.find((channel) => channel.id === editedAutomation?.notificationChannel);
106
- const allowExternalRecipients = selectedNotificationChannel?.allowedRecipients === "external" && enabledExternalRecipients;
106
+ const allowExternalRecipients = selectedNotificationChannel?.allowedRecipients === "external";
107
107
  const allowOnlyLoggedUserRecipients = selectedNotificationChannel?.allowedRecipients === "creator";
108
108
  const { isValid: isOriginalAutomationValid, invalidityReason } = useAlertValidation(originalAutomation, widget, insight, catalogDateDatasets, undefined, canManageComparison);
109
109
  const isParentValid = invalidityReason !== "missingWidget";
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduledEmailConnector.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/ScheduledEmailConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA4B1D;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAGrG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAM7D"}
1
+ {"version":3,"file":"ScheduledEmailConnector.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/ScheduledEmailConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAsCvE;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAGrG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAM7D"}
@@ -1,17 +1,24 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { useCallback } from "react";
2
4
  import { isWidget } from "@gooddata/sdk-model";
5
+ import { buildAutomationUrl, navigate, useWorkspaceStrict } from "@gooddata/sdk-ui";
3
6
  import { getAutomationDashboardFilters, getAutomationVisualizationFilters, } from "../../../_staging/automation/index.js";
4
7
  import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
5
8
  import { useDashboardScheduledEmails } from "../../../model/react/useDasboardScheduledEmails/useDashboardScheduledEmails.js";
6
9
  import { useWorkspaceUsers } from "../../../model/react/useWorkspaceUsers.js";
10
+ import { selectEnableAutomationManagement, selectExternalRecipient, selectIsEmbedded, selectSettings, } from "../../../model/store/config/configSelectors.js";
7
11
  import { selectAutomationDefaultSelectedFilters, selectDashboardHiddenFilters, } from "../../../model/store/filtering/dashboardFilterSelectors.js";
12
+ import { selectDashboardId } from "../../../model/store/meta/metaSelectors.js";
8
13
  import { AutomationsContextProvider } from "../contexts/AutomationsContext.js";
9
14
  import { ScheduledEmailDialogContextProvider } from "../contexts/ScheduledEmailDialogContext.js";
15
+ import { ScheduledEmailManagementDialogContextProvider } from "../contexts/ScheduledEmailManagementDialogContext.js";
10
16
  import { ScheduledEmailDialog } from "../scheduledEmail/ScheduledEmailDialog.js";
11
17
  import { ScheduledEmailManagementDialog } from "../scheduledEmail/ScheduledEmailManagementDialog.js";
12
18
  import { getAppliedDashboardFilters } from "../scheduledEmail/utils/filters.js";
13
19
  import { useBuildAutomationsContext } from "./hooks/useBuildAutomationsContext.js";
14
20
  import { useBuildScheduledEmailDialogContext } from "./hooks/useBuildScheduledEmailDialogContext.js";
21
+ import { useBuildScheduledEmailManagementDialogContext } from "./hooks/useBuildScheduledEmailManagementDialogContext.js";
15
22
  import { useWidgetAutomationFilters } from "./hooks/useWidgetAutomationFilters.js";
16
23
  /**
17
24
  * Provides AutomationsContext to its children, built from dashboard Redux state.
@@ -64,6 +71,40 @@ function ScheduledEmailConnectorWithData({ se }) {
64
71
  isScheduleEmailingDialogOpen, onScheduleEmailingCancel, onScheduleEmailingBack, onScheduleEmailingCreateSuccess, onScheduleEmailingCreateError, onScheduleEmailingSaveSuccess, onScheduleEmailingSaveError,
65
72
  // Management / List Dialog
66
73
  isScheduleEmailingManagementDialogOpen, onScheduleEmailingManagementClose, onScheduleEmailingManagementAdd, onScheduleEmailingManagementEdit, onScheduleEmailingManagementDeleteSuccess, onScheduleEmailingManagementDeleteError, widget, insight, } = se;
74
+ const workspace = useWorkspaceStrict();
75
+ const enableAutomationManagement = useDashboardSelector(selectEnableAutomationManagement);
76
+ const dashboardId = useDashboardSelector(selectDashboardId);
77
+ const isEmbedded = useDashboardSelector(selectIsEmbedded);
78
+ const externalRecipientOverride = useDashboardSelector(selectExternalRecipient);
79
+ const settings = useDashboardSelector(selectSettings);
80
+ const useHostRoute = Boolean(settings?.enableShellApplication) && Boolean(settings?.enableShellApplication_dashboards);
81
+ // Cross-dashboard edit routing lives in the connector (which may read router + store).
82
+ // The management dialog only invokes this injected callback.
83
+ const handleManagementEdit = useCallback((scheduledEmail) => {
84
+ const targetDashboardId = scheduledEmail.dashboard?.id;
85
+ if (enableAutomationManagement && targetDashboardId && targetDashboardId !== dashboardId) {
86
+ navigate(buildAutomationUrl({
87
+ workspaceId: workspace,
88
+ dashboardId: targetDashboardId,
89
+ automationId: scheduledEmail.id,
90
+ isEmbedded,
91
+ useHostRoute,
92
+ queryParams: externalRecipientOverride
93
+ ? { recipient: externalRecipientOverride }
94
+ : undefined,
95
+ }));
96
+ return;
97
+ }
98
+ onScheduleEmailingManagementEdit(scheduledEmail);
99
+ }, [
100
+ onScheduleEmailingManagementEdit,
101
+ enableAutomationManagement,
102
+ dashboardId,
103
+ workspace,
104
+ isEmbedded,
105
+ useHostRoute,
106
+ externalRecipientOverride,
107
+ ]);
67
108
  // Filter computation — moved verbatim from ScheduledEmailDialogProvider
68
109
  const automationDefaultSelectedFilters = useDashboardSelector(selectAutomationDefaultSelectedFilters);
69
110
  const dashboardHiddenFilters = useDashboardSelector(selectDashboardHiddenFilters);
@@ -82,12 +123,14 @@ function ScheduledEmailConnectorWithData({ se }) {
82
123
  widget: insightWidget,
83
124
  insight,
84
125
  });
85
- return (_jsxs(ScheduledEmailDialogContextProvider, { value: seCtx, children: [isScheduleEmailingManagementDialogOpen ? (
86
- // TODO(GDP-3167 phase3): automations, notificationChannels, and scheduleDataError
87
- // are still prop-threaded here because DefaultScheduledEmailManagementDialog reads
88
- // them from props, not from AutomationsContext. Once all dialog fields are migrated
89
- // to read from context, remove these props and the corresponding prop types.
90
- _jsx(ScheduledEmailManagementDialog, { automations: automations, notificationChannels: notificationChannels, scheduleDataError: loadingError, isLoadingScheduleData: isLoading, onAdd: onScheduleEmailingManagementAdd, onEdit: onScheduleEmailingManagementEdit, onClose: onScheduleEmailingManagementClose, onDeleteSuccess: onScheduleEmailingManagementDeleteSuccess, onDeleteError: onScheduleEmailingManagementDeleteError })) : null, isScheduleEmailingDialogOpen ? (
126
+ const managementCtx = useBuildScheduledEmailManagementDialogContext();
127
+ return (_jsxs(ScheduledEmailDialogContextProvider, { value: seCtx, children: [
128
+ _jsx(ScheduledEmailManagementDialogContextProvider, { value: managementCtx, children: isScheduleEmailingManagementDialogOpen ? (
129
+ // TODO(GDP-3167 phase3): automations, notificationChannels, and scheduleDataError
130
+ // are still prop-threaded here because DefaultScheduledEmailManagementDialog reads
131
+ // them from props, not from AutomationsContext. Once all dialog fields are migrated
132
+ // to read from context, remove these props and the corresponding prop types.
133
+ _jsx(ScheduledEmailManagementDialog, { automations: automations, notificationChannels: notificationChannels, scheduleDataError: loadingError, isLoadingScheduleData: isLoading, onAdd: onScheduleEmailingManagementAdd, onEdit: handleManagementEdit, onClose: onScheduleEmailingManagementClose, onDeleteSuccess: onScheduleEmailingManagementDeleteSuccess, onDeleteError: onScheduleEmailingManagementDeleteError })) : null }), isScheduleEmailingDialogOpen ? (
91
134
  // TODO(GDP-3167 phase3): notificationChannels, users, usersError, widgetFilters,
92
135
  // dashboardFilters, and isLoading are still prop-threaded here because
93
136
  // DefaultScheduledEmailDialog reads them from props, not from context.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ScheduledEmailConnector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledEmailConnector.test.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/connectors/ScheduledEmailConnector.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { render } from "@testing-library/react";
4
+ import { beforeEach, describe, expect, it, vi } from "vitest";
5
+ const fixtures = vi.hoisted(() => {
6
+ const buildAutomationUrl = vi.fn(() => "/target-url");
7
+ const navigate = vi.fn();
8
+ const onScheduleEmailingManagementEdit = vi.fn();
9
+ let managementDialogProps;
10
+ return {
11
+ buildAutomationUrl,
12
+ navigate,
13
+ onScheduleEmailingManagementEdit,
14
+ get managementDialogProps() {
15
+ return managementDialogProps;
16
+ },
17
+ set managementDialogProps(value) {
18
+ managementDialogProps = value;
19
+ },
20
+ };
21
+ });
22
+ vi.mock("@gooddata/sdk-ui", () => ({
23
+ buildAutomationUrl: fixtures.buildAutomationUrl,
24
+ navigate: fixtures.navigate,
25
+ useWorkspaceStrict: () => "workspace-id",
26
+ }));
27
+ vi.mock("../../../model/react/DashboardStoreProvider.js", () => ({
28
+ useDashboardSelector: vi.fn((selector) => selector()),
29
+ }));
30
+ vi.mock("../../../model/react/useDasboardScheduledEmails/useDashboardScheduledEmails.js", () => ({
31
+ useDashboardScheduledEmails: () => ({
32
+ isInitialized: true,
33
+ isScheduleEmailingDialogOpen: false,
34
+ isScheduleEmailingManagementDialogOpen: true,
35
+ scheduledExportToEdit: undefined,
36
+ automations: [],
37
+ automationsError: undefined,
38
+ automationsLoading: false,
39
+ notificationChannels: [],
40
+ onScheduleEmailingCancel: vi.fn(),
41
+ onScheduleEmailingBack: vi.fn(),
42
+ onScheduleEmailingCreateSuccess: vi.fn(),
43
+ onScheduleEmailingCreateError: vi.fn(),
44
+ onScheduleEmailingSaveSuccess: vi.fn(),
45
+ onScheduleEmailingSaveError: vi.fn(),
46
+ onScheduleEmailingManagementClose: vi.fn(),
47
+ onScheduleEmailingManagementAdd: vi.fn(),
48
+ onScheduleEmailingManagementEdit: fixtures.onScheduleEmailingManagementEdit,
49
+ onScheduleEmailingManagementDeleteSuccess: vi.fn(),
50
+ onScheduleEmailingManagementDeleteError: vi.fn(),
51
+ widget: undefined,
52
+ insight: undefined,
53
+ }),
54
+ }));
55
+ vi.mock("../../../model/react/useWorkspaceUsers.js", () => ({
56
+ useWorkspaceUsers: () => ({ users: [], status: "success", usersError: undefined }),
57
+ }));
58
+ vi.mock("../../../model/store/config/configSelectors.js", () => ({
59
+ selectEnableAutomationManagement: () => true,
60
+ selectExternalRecipient: () => "recipient@example.com",
61
+ selectIsEmbedded: () => false,
62
+ selectSettings: () => ({
63
+ enableShellApplication: true,
64
+ enableShellApplication_dashboards: true,
65
+ }),
66
+ selectEnableAccessibilityMode: () => false,
67
+ }));
68
+ vi.mock("../../../model/store/meta/metaSelectors.js", () => ({
69
+ selectDashboardId: () => "current-dashboard",
70
+ selectDashboardTitle: () => "Current Dashboard",
71
+ }));
72
+ vi.mock("../../../model/store/filtering/dashboardFilterSelectors.js", () => ({
73
+ selectAutomationDefaultSelectedFilters: () => [],
74
+ selectDashboardHiddenFilters: () => [],
75
+ }));
76
+ vi.mock("../../../model/store/insights/insightsSelectors.js", () => ({
77
+ selectInsightsMap: () => ({ get: () => undefined }),
78
+ }));
79
+ vi.mock("../../../model/store/tabs/layout/layoutSelectors.js", () => ({
80
+ selectWidgetsMap: () => ({ get: () => undefined }),
81
+ }));
82
+ vi.mock("../../../model/store/ui/uiSelectors.js", () => ({
83
+ selectIsScheduleEmailDialogOpen: () => false,
84
+ selectScheduleEmailDialogReturnFocusTo: () => undefined,
85
+ selectAutomationsInvalidationId: () => 0,
86
+ }));
87
+ vi.mock("../scheduledEmail/ScheduledEmailDialog.js", () => ({
88
+ ScheduledEmailDialog: () => null,
89
+ }));
90
+ vi.mock("../scheduledEmail/ScheduledEmailManagementDialog.js", () => ({
91
+ ScheduledEmailManagementDialog: (props) => {
92
+ fixtures.managementDialogProps = props;
93
+ return null;
94
+ },
95
+ }));
96
+ vi.mock("../contexts/AutomationsContext.js", () => ({
97
+ AutomationsContextProvider: ({ children }) => children,
98
+ }));
99
+ vi.mock("../contexts/ScheduledEmailDialogContext.js", () => ({
100
+ ScheduledEmailDialogContextProvider: ({ children }) => children,
101
+ }));
102
+ vi.mock("../contexts/ScheduledEmailManagementDialogContext.js", () => ({
103
+ ScheduledEmailManagementDialogContextProvider: ({ children }) => children,
104
+ }));
105
+ vi.mock("./hooks/useBuildAutomationsContext.js", () => ({
106
+ useBuildAutomationsContext: () => ({}),
107
+ }));
108
+ vi.mock("./hooks/useBuildScheduledEmailDialogContext.js", () => ({
109
+ useBuildScheduledEmailDialogContext: () => ({}),
110
+ }));
111
+ vi.mock("./hooks/useBuildScheduledEmailManagementDialogContext.js", () => ({
112
+ useBuildScheduledEmailManagementDialogContext: () => ({}),
113
+ }));
114
+ vi.mock("./hooks/useWidgetAutomationFilters.js", () => ({
115
+ useWidgetAutomationFilters: () => ({ result: undefined, status: "success", error: undefined }),
116
+ }));
117
+ vi.mock("../../../_staging/automation/index.js", () => ({
118
+ getAutomationDashboardFilters: () => undefined,
119
+ getAutomationVisualizationFilters: () => ({ executionFilters: undefined }),
120
+ }));
121
+ vi.mock("../scheduledEmail/utils/filters.js", () => ({
122
+ getAppliedDashboardFilters: () => [],
123
+ }));
124
+ import { ScheduledEmailConnector } from "./ScheduledEmailConnector.js";
125
+ describe("ScheduledEmailConnector", () => {
126
+ beforeEach(() => {
127
+ fixtures.buildAutomationUrl.mockClear();
128
+ fixtures.navigate.mockClear();
129
+ fixtures.onScheduleEmailingManagementEdit.mockClear();
130
+ fixtures.managementDialogProps = undefined;
131
+ });
132
+ it("navigates cross-dashboard when editing a schedule on another dashboard in shell mode", () => {
133
+ render(_jsx(ScheduledEmailConnector, {}));
134
+ const onEdit = fixtures.managementDialogProps?.["onEdit"];
135
+ expect(onEdit).toBeDefined();
136
+ onEdit?.({
137
+ id: "se-1",
138
+ dashboard: { id: "other-dashboard" },
139
+ });
140
+ expect(fixtures.buildAutomationUrl).toHaveBeenCalledWith({
141
+ workspaceId: "workspace-id",
142
+ dashboardId: "other-dashboard",
143
+ automationId: "se-1",
144
+ isEmbedded: false,
145
+ useHostRoute: true,
146
+ queryParams: { recipient: "recipient@example.com" },
147
+ });
148
+ expect(fixtures.navigate).toHaveBeenCalledWith("/target-url");
149
+ expect(fixtures.onScheduleEmailingManagementEdit).not.toHaveBeenCalled();
150
+ });
151
+ it("falls back to local edit when the target dashboard id is missing", () => {
152
+ render(_jsx(ScheduledEmailConnector, {}));
153
+ const onEdit = fixtures.managementDialogProps?.["onEdit"];
154
+ onEdit?.({
155
+ id: "se-2",
156
+ dashboard: undefined,
157
+ });
158
+ expect(fixtures.navigate).not.toHaveBeenCalled();
159
+ expect(fixtures.buildAutomationUrl).not.toHaveBeenCalled();
160
+ expect(fixtures.onScheduleEmailingManagementEdit).toHaveBeenCalledWith({
161
+ id: "se-2",
162
+ dashboard: undefined,
163
+ });
164
+ });
165
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildAutomationsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.ts"],"names":[],"mappings":"AA4EA,OAAO,KAAK,EACR,wBAAwB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,wBAAgB,0BAA0B,IAAI,wBAAwB,CAqMrE"}
1
+ {"version":3,"file":"useBuildAutomationsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.ts"],"names":[],"mappings":"AA+EA,OAAO,KAAK,EACR,wBAAwB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,wBAAgB,0BAA0B,IAAI,wBAAwB,CA6MrE"}
@@ -2,7 +2,7 @@
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
4
4
  import { selectAllCatalogAttributesMap, selectAllCatalogDisplayFormsMap, selectCatalogAttributes, selectCatalogDateDatasets, selectCatalogMeasures, } from "../../../../model/store/catalog/catalogSelectors.js";
5
- import { selectEnableAlertAttributes, selectEnableAlertOncePerInterval, selectEnableAnomalyDetectionAlert, selectEnableAutomationEvaluationMode, selectEnableAutomationManagement, selectEnableComparisonInAlerting, selectEnableCustomizableCsvDelimiter, selectEnableExternalRecipients, selectEnableNewScheduledExport, selectExternalRecipient, selectIsWhiteLabeled, selectLocale, selectSeparators, selectSettings, selectTimezone, selectWeekStart, } from "../../../../model/store/config/configSelectors.js";
5
+ import { selectEnableAlertAttributes, selectEnableAlertOncePerInterval, selectEnableAnomalyDetectionAlert, selectEnableAutomationEvaluationMode, selectEnableAutomationManagement, selectEnableComparisonInAlerting, selectEnableCustomizableCsvDelimiter, selectEnableNewScheduledExport, selectExternalRecipient, selectIsWhiteLabeled, selectLocale, selectSeparators, selectSettings, selectTimezone, selectWeekStart, } from "../../../../model/store/config/configSelectors.js";
6
6
  import { selectEntitlementMinimumRecurrenceMinutes, selectMaxAutomationRecipients, } from "../../../../model/store/entitlements/entitlementsSelectors.js";
7
7
  import { selectAutomationAvailableDashboardFilters, selectAutomationCommonDateFilterId, selectAutomationDefaultSelectedFilters, selectAutomationFiltersByTab, selectDashboardFiltersWithoutCrossFiltering, selectDashboardHiddenFilters, selectDashboardLockedFilters, } from "../../../../model/store/filtering/dashboardFilterSelectors.js";
8
8
  import { selectPersistedDashboardFilterContextDateFilterConfig } from "../../../../model/store/meta/metaSelectors.js";
@@ -11,9 +11,10 @@ import { selectAttributeFilterConfigsOverrides, selectAttributeFilterConfigsOver
11
11
  import { selectDateFilterConfigOverridesByTab, selectEffectiveDateFilterAvailableGranularities, selectEffectiveDateFilterGranularitiesPerTab, selectEffectiveDateFilterOptions, selectEffectiveDateFilterOptionsPerTab, } from "../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
12
12
  import { selectDateFilterConfigsOverrides, selectDateFilterConfigsOverridesByTab, } from "../../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
13
13
  import { selectAttributeFilterDisplayFormsMap } from "../../../../model/store/tabs/filterContext/filterContextSelectors.js";
14
+ import { selectWidgetsMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
14
15
  import { selectMeasureValueFilterConfigsOverrides, selectMeasureValueFilterConfigsOverridesByTab, } from "../../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
15
16
  import { selectIsAutomationDialogSecondaryTitleVisible } from "../../../../model/store/topBar/topBarSelectors.js";
16
- import { selectExecutionTimestamp } from "../../../../model/store/ui/uiSelectors.js";
17
+ import { selectExecutionTimestamp, selectScheduleEmailDialogReturnFocusTo, } from "../../../../model/store/ui/uiSelectors.js";
17
18
  import { selectCurrentUser } from "../../../../model/store/user/userSelectors.js";
18
19
  const DEFAULT_MIN_RECURRENCE_MINUTES = "60";
19
20
  export function useBuildAutomationsContext() {
@@ -61,7 +62,6 @@ export function useBuildAutomationsContext() {
61
62
  const canUseAiAssistant = useDashboardSelector(selectCanUseAiAssistant);
62
63
  const canManageWorkspace = useDashboardSelector(selectCanManageWorkspace);
63
64
  const enableComparisonInAlerting = useDashboardSelector(selectEnableComparisonInAlerting);
64
- const enableExternalRecipients = useDashboardSelector(selectEnableExternalRecipients);
65
65
  const enableAlertAttributes = useDashboardSelector(selectEnableAlertAttributes);
66
66
  const enableCustomizableCsvDelimiter = useDashboardSelector(selectEnableCustomizableCsvDelimiter);
67
67
  const enableAutomationEvaluationMode = useDashboardSelector(selectEnableAutomationEvaluationMode);
@@ -70,8 +70,11 @@ export function useBuildAutomationsContext() {
70
70
  const allowHourlyRecurrence = parseInt(minimumRecurrenceMinutesEntitlement?.value ?? DEFAULT_MIN_RECURRENCE_MINUTES, 10) === 60;
71
71
  const executionTimestamp = useDashboardSelector(selectExecutionTimestamp);
72
72
  const isExecutionTimestampMode = !!executionTimestamp;
73
+ const scheduleEmailDialogReturnFocusTo = useDashboardSelector(selectScheduleEmailDialogReturnFocusTo);
74
+ const widgetsMap = useDashboardSelector(selectWidgetsMap);
73
75
  const getCatalogAttributeByRef = useCallback((ref) => allCatalogAttributesMap.get(ref), [allCatalogAttributesMap]);
74
76
  const getAttributeFilterDisplayForm = useCallback((displayForm) => attrFilterDisplayFormsMap.get(displayForm) ?? catalogDisplayFormsMap.get(displayForm), [attrFilterDisplayFormsMap, catalogDisplayFormsMap]);
77
+ const widgetExistsByRef = useCallback((ref) => !!ref && widgetsMap.get(ref) !== undefined, [widgetsMap]);
75
78
  const dateFilterConfig = useMemo(() => ({
76
79
  availableGranularities,
77
80
  dateFilterOptions,
@@ -85,7 +88,6 @@ export function useBuildAutomationsContext() {
85
88
  enableAutomationManagement,
86
89
  canUseAiAssistant,
87
90
  enableComparisonInAlerting,
88
- enableExternalRecipients,
89
91
  enableAlertAttributes,
90
92
  canManageWorkspace,
91
93
  enableCustomizableCsvDelimiter,
@@ -97,7 +99,6 @@ export function useBuildAutomationsContext() {
97
99
  enableAutomationManagement,
98
100
  canUseAiAssistant,
99
101
  enableComparisonInAlerting,
100
- enableExternalRecipients,
101
102
  enableAlertAttributes,
102
103
  canManageWorkspace,
103
104
  enableCustomizableCsvDelimiter,
@@ -141,6 +142,8 @@ export function useBuildAutomationsContext() {
141
142
  features,
142
143
  getCatalogAttributeByRef,
143
144
  getAttributeFilterDisplayForm,
145
+ widgetExistsByRef,
146
+ scheduleEmailDialogReturnFocusTo,
144
147
  }), [
145
148
  locale,
146
149
  separators,
@@ -179,5 +182,7 @@ export function useBuildAutomationsContext() {
179
182
  features,
180
183
  getCatalogAttributeByRef,
181
184
  getAttributeFilterDisplayForm,
185
+ widgetExistsByRef,
186
+ scheduleEmailDialogReturnFocusTo,
182
187
  ]);
183
188
  }
@@ -52,7 +52,6 @@ vi.mock("../../../../model/store/config/configSelectors.js", () => ({
52
52
  selectEnableAutomationManagement: () => false,
53
53
  selectEnableComparisonInAlerting: () => false,
54
54
  selectEnableCustomizableCsvDelimiter: () => false,
55
- selectEnableExternalRecipients: () => false,
56
55
  selectEnableNewScheduledExport: () => false,
57
56
  selectExternalRecipient: () => undefined,
58
57
  selectIsWhiteLabeled: () => false,
@@ -120,6 +119,7 @@ vi.mock("../../../../model/store/entitlements/entitlementsSelectors.js", () => (
120
119
  }));
121
120
  vi.mock("../../../../model/store/ui/uiSelectors.js", () => ({
122
121
  selectExecutionTimestamp: () => undefined,
122
+ selectScheduleEmailDialogReturnFocusTo: () => undefined,
123
123
  }));
124
124
  vi.mock("../../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js", () => ({
125
125
  selectMeasureValueFilterConfigsOverrides: () => [],
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildScheduledEmailDialogContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,KAAK,QAAQ,EACb,KAAK,OAAO,EAGf,MAAM,qBAAqB,CAAC;AA2B7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AAIvG,MAAM,WAAW,wCAAwC;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,wBAAgB,mCAAmC,CAC/C,IAAI,EAAE,wCAAwC,GAC/C,iCAAiC,CAmGnC"}
1
+ {"version":3,"file":"useBuildScheduledEmailDialogContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,KAAK,QAAQ,EACb,KAAK,OAAO,EAEf,MAAM,qBAAqB,CAAC;AAwB7B,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AAIvG,MAAM,WAAW,wCAAwC;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,wBAAgB,mCAAmC,CAC/C,IAAI,EAAE,wCAAwC,GAC/C,iCAAiC,CAyFnC"}
@@ -1,5 +1,5 @@
1
1
  // (C) 2026 GoodData Corporation
2
- import { useCallback, useMemo } from "react";
2
+ import { useMemo } from "react";
3
3
  import { objRefToString, } from "@gooddata/sdk-model";
4
4
  import { createScheduledEmail as createScheduledEmailCmd, saveScheduledEmail as saveScheduledEmailCmd, } from "../../../../model/commands/scheduledEmail.js";
5
5
  import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
@@ -11,7 +11,7 @@ import { selectDashboardId, selectDashboardTitle } from "../../../../model/store
11
11
  import { selectEffectiveAttributeFiltersModeMap } from "../../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
12
12
  import { selectEffectiveDateFilterMode } from "../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
13
13
  import { selectEffectiveDateFiltersModeMap } from "../../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
14
- import { selectWidgetLocalIdToTabIdMap, selectWidgetsMap, } from "../../../../model/store/tabs/layout/layoutSelectors.js";
14
+ import { selectWidgetLocalIdToTabIdMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
15
15
  import { selectExportEffectiveParameters } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
16
16
  import { selectTabs } from "../../../../model/store/tabs/tabsSelectors.js";
17
17
  import { getWidgetTitle } from "../../../../model/utils/dashboardItemUtils.js";
@@ -30,7 +30,6 @@ export function useBuildScheduledEmailDialogContext(opts) {
30
30
  const isCrossFiltering = useDashboardSelector(selectIsCrossFiltering);
31
31
  const tabs = useDashboardSelector(selectTabs);
32
32
  const hasMultipleTabs = (tabs?.length ?? 0) > 1;
33
- const widgetsMap = useDashboardSelector(selectWidgetsMap);
34
33
  const commonDateFilterMode = useDashboardSelector(selectEffectiveDateFilterMode);
35
34
  const dateFiltersModeMap = useDashboardSelector(selectEffectiveDateFiltersModeMap);
36
35
  const attributeFiltersModeMap = useDashboardSelector(selectEffectiveAttributeFiltersModeMap);
@@ -40,9 +39,6 @@ export function useBuildScheduledEmailDialogContext(opts) {
40
39
  }
41
40
  return undefined;
42
41
  }, [widget]);
43
- const widgetExistsByRef = useCallback((ref) => {
44
- return !!ref && widgetsMap.get(ref) !== undefined;
45
- }, [widgetsMap]);
46
42
  const createScheduledEmail = useCommandAsPromise({
47
43
  commandCreator: createScheduledEmailCmd,
48
44
  successEvent: "GDC.DASH/EVT.SCHEDULED_EMAIL.CREATED",
@@ -69,7 +65,6 @@ export function useBuildScheduledEmailDialogContext(opts) {
69
65
  dateFormat,
70
66
  isCrossFiltering,
71
67
  hasMultipleTabs,
72
- widgetExistsByRef,
73
68
  commonDateFilterMode,
74
69
  dateFiltersModeMap,
75
70
  attributeFiltersModeMap,
@@ -91,7 +86,6 @@ export function useBuildScheduledEmailDialogContext(opts) {
91
86
  dateFormat,
92
87
  isCrossFiltering,
93
88
  hasMultipleTabs,
94
- widgetExistsByRef,
95
89
  commonDateFilterMode,
96
90
  dateFiltersModeMap,
97
91
  attributeFiltersModeMap,
@@ -46,7 +46,6 @@ vi.mock("../../../../model/store/drill/drillSelectors.js", () => ({
46
46
  }));
47
47
  vi.mock("../../../../model/store/tabs/layout/layoutSelectors.js", () => ({
48
48
  selectWidgetLocalIdToTabIdMap: () => ({ widgetId: "tab-1" }),
49
- selectWidgetsMap: () => ({ get: () => undefined }),
50
49
  }));
51
50
  vi.mock("../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js", () => ({
52
51
  selectEffectiveDateFilterMode: () => "active",
@@ -0,0 +1,3 @@
1
+ import type { IScheduledEmailManagementDialogContextValue } from "../../contexts/ScheduledEmailManagementDialogContext.js";
2
+ export declare function useBuildScheduledEmailManagementDialogContext(): IScheduledEmailManagementDialogContextValue;
3
+ //# sourceMappingURL=useBuildScheduledEmailManagementDialogContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildScheduledEmailManagementDialogContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,yDAAyD,CAAC;AAE3H,wBAAgB,6CAA6C,IAAI,2CAA2C,CAkC3G"}
@@ -0,0 +1,38 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useMemo } from "react";
3
+ import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
4
+ import { DEFAULT_MAX_AUTOMATIONS } from "../../../../model/react/useDashboardAutomations/constants.js";
5
+ import { selectEnableAccessibilityMode, selectIsEmbedded, } from "../../../../model/store/config/configSelectors.js";
6
+ import { selectEntitlementMaxAutomations, selectEntitlementUnlimitedAutomations, } from "../../../../model/store/entitlements/entitlementsSelectors.js";
7
+ import { selectDashboardId, selectDashboardTitle } from "../../../../model/store/meta/metaSelectors.js";
8
+ import { selectAutomationsInvalidationId, selectIsScheduleEmailDialogOpen, } from "../../../../model/store/ui/uiSelectors.js";
9
+ export function useBuildScheduledEmailManagementDialogContext() {
10
+ const isScheduleEmailDialogOpen = useDashboardSelector(selectIsScheduleEmailDialogOpen);
11
+ const automationsInvalidationId = useDashboardSelector(selectAutomationsInvalidationId);
12
+ const isEmbedded = useDashboardSelector(selectIsEmbedded);
13
+ const enableAccessibilityMode = useDashboardSelector(selectEnableAccessibilityMode);
14
+ const dashboardId = useDashboardSelector(selectDashboardId);
15
+ const dashboardTitle = useDashboardSelector(selectDashboardTitle);
16
+ const maxAutomationsEntitlement = useDashboardSelector(selectEntitlementMaxAutomations);
17
+ const unlimitedAutomations = !!useDashboardSelector(selectEntitlementUnlimitedAutomations);
18
+ const maxAutomations = parseInt(maxAutomationsEntitlement?.value ?? DEFAULT_MAX_AUTOMATIONS, 10);
19
+ return useMemo(() => ({
20
+ isScheduleEmailDialogOpen,
21
+ automationsInvalidationId,
22
+ isEmbedded,
23
+ enableAccessibilityMode,
24
+ dashboardId,
25
+ dashboardTitle,
26
+ maxAutomations,
27
+ unlimitedAutomations,
28
+ }), [
29
+ isScheduleEmailDialogOpen,
30
+ automationsInvalidationId,
31
+ isEmbedded,
32
+ enableAccessibilityMode,
33
+ dashboardId,
34
+ dashboardTitle,
35
+ maxAutomations,
36
+ unlimitedAutomations,
37
+ ]);
38
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useBuildScheduledEmailManagementDialogContext.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildScheduledEmailManagementDialogContext.test.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildScheduledEmailManagementDialogContext.test.ts"],"names":[],"mappings":""}