@gooddata/sdk-ui-dashboard 11.43.0-alpha.0 → 11.43.0-alpha.1

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 (143) hide show
  1. package/NOTICE +128 -128
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +3 -2
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +1 -1
  7. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.d.ts.map +1 -1
  8. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js +22 -4
  9. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.d.ts.map +1 -1
  10. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +3 -1
  11. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts +2 -2
  12. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts.map +1 -1
  13. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.js +36 -3
  14. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +3 -1
  16. package/esm/model/store/executionResults/executionResultsSelectors.d.ts +4 -0
  17. package/esm/model/store/executionResults/executionResultsSelectors.d.ts.map +1 -1
  18. package/esm/model/store/executionResults/executionResultsSelectors.js +4 -1
  19. package/esm/model/store/filtering/dashboardFilterSelectors.d.ts +1 -30
  20. package/esm/model/store/filtering/dashboardFilterSelectors.d.ts.map +1 -1
  21. package/esm/model/store/filtering/dashboardFilterSelectors.js +3 -0
  22. package/esm/model/store/filtering/types.d.ts +33 -0
  23. package/esm/model/store/filtering/types.d.ts.map +1 -0
  24. package/esm/model/store/filtering/types.js +2 -0
  25. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts +14 -0
  26. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts.map +1 -1
  27. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js +35 -0
  28. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +12 -0
  29. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  30. package/esm/model/store/tabs/parameters/parametersSelectors.js +37 -12
  31. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  32. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +9 -3
  33. package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/components/PauseAlertRunner.js +1 -1
  34. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts +3 -0
  35. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -0
  36. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +110 -0
  37. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.d.ts +2 -0
  38. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.d.ts.map +1 -0
  39. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.js +99 -0
  40. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.d.ts +4 -0
  41. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.d.ts.map +1 -0
  42. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.js +46 -0
  43. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +42 -2
  44. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  45. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  46. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +8 -2
  47. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +1 -1
  48. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  49. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.d.ts +2 -3
  50. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.d.ts.map +1 -1
  51. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.js +4 -45
  52. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.d.ts.map +1 -1
  53. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.js +9 -16
  54. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.d.ts +2 -0
  55. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.d.ts.map +1 -0
  56. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.js +131 -0
  57. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts +1 -1
  58. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
  59. package/esm/presentation/automations/shared/automationFilters/hooks/useAutomationVisibleFilters.d.ts.map +1 -1
  60. package/esm/presentation/automations/shared/automationFilters/hooks/useAutomationVisibleFilters.js +1 -1
  61. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts +1 -1
  62. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts.map +1 -1
  63. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +4 -6
  64. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.d.ts +1 -1
  65. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.d.ts.map +1 -1
  66. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.js +3 -4
  67. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts +1 -1
  68. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
  69. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +4 -10
  70. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts +1 -1
  71. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
  72. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +3 -28
  73. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.d.ts +2 -2
  74. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.d.ts.map +1 -1
  75. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.js +2 -5
  76. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +1 -1
  77. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  78. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.d.ts +10 -0
  79. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.d.ts.map +1 -0
  80. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.js +89 -0
  81. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.d.ts +34 -0
  82. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.d.ts.map +1 -0
  83. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.js +261 -0
  84. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.d.ts +12 -0
  85. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.d.ts.map +1 -0
  86. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.js +437 -0
  87. package/esm/presentation/automations/shared/exportUtils/filterUtils.d.ts +3 -0
  88. package/esm/presentation/automations/shared/exportUtils/filterUtils.d.ts.map +1 -0
  89. package/esm/presentation/automations/shared/exportUtils/filterUtils.js +14 -0
  90. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.d.ts +3 -0
  91. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.d.ts.map +1 -0
  92. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.js +7 -0
  93. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.d.ts +3 -0
  94. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.d.ts.map +1 -0
  95. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.js +6 -0
  96. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.d.ts +4 -0
  97. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.d.ts.map +1 -0
  98. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.js +19 -0
  99. package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts +13 -0
  100. package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts.map +1 -0
  101. package/esm/presentation/automations/shared/hooks/useFiltersNamings.js +196 -0
  102. package/esm/presentation/automations/shared/utils/automationUtils.d.ts +24 -0
  103. package/esm/presentation/automations/shared/utils/automationUtils.d.ts.map +1 -0
  104. package/esm/presentation/automations/shared/utils/automationUtils.js +135 -0
  105. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts +4 -0
  106. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts.map +1 -0
  107. package/esm/presentation/automations/shared/utils/filterContextUtils.js +67 -0
  108. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFilterConfigurationState.d.ts.map +1 -1
  109. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFilterConfigurationState.js +34 -16
  110. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFiltersConfiguration.d.ts.map +1 -1
  111. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFiltersConfiguration.js +23 -8
  112. package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.d.ts.map +1 -1
  113. package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.js +17 -6
  114. package/esm/presentation/topBar/menuButton/DefaultMenuButton.js +1 -1
  115. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.d.ts.map +1 -1
  116. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +11 -2
  117. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useCreateAlert.d.ts.map +1 -0
  118. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.d.ts.map +1 -1
  119. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.js +2 -2
  120. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.d.ts.map +1 -0
  121. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useUpdateAlert.d.ts.map +1 -0
  122. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts +4 -0
  123. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts.map +1 -0
  124. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.js +46 -0
  125. package/esm/presentation/widget/insight/configuration/InsightAlertsNew.d.ts.map +1 -1
  126. package/esm/presentation/widget/insight/configuration/InsightAlertsNew.js +1 -1
  127. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuItemButton.d.ts.map +1 -1
  128. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuItemButton.js +2 -2
  129. package/esm/presentation/widget/insightMenu/types.js +1 -1
  130. package/esm/presentation/widget/widget/warningPartialResult/InsightWidgetWarningPartialResult.d.ts.map +1 -1
  131. package/esm/presentation/widget/widget/warningPartialResult/InsightWidgetWarningPartialResult.js +1 -1
  132. package/esm/sdk-ui-dashboard.d.ts +11 -2
  133. package/esm/tsdoc-metadata.json +1 -1
  134. package/package.json +20 -20
  135. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useCreateAlert.d.ts.map +0 -1
  136. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useSaveAlertToBackend.d.ts.map +0 -1
  137. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useUpdateAlert.d.ts.map +0 -1
  138. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useCreateAlert.d.ts +0 -0
  139. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useCreateAlert.js +0 -0
  140. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useSaveAlertToBackend.d.ts +0 -0
  141. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useSaveAlertToBackend.js +0 -0
  142. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useUpdateAlert.d.ts +0 -0
  143. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useUpdateAlert.js +0 -0
@@ -97,4 +97,18 @@ export declare const selectEffectiveDateFilterOptionsForTab: (tabLocalIdentifier
97
97
  * @internal
98
98
  */
99
99
  export declare const selectEffectiveDateFilterAvailableGranularitiesForTab: (tabLocalIdentifier: string) => DashboardSelector<DateFilterGranularity[]>;
100
+ /**
101
+ * Returns effective date filter available granularities for all tabs as a map.
102
+ * Key is the tab local identifier; value is the array of available granularities.
103
+ *
104
+ * @internal
105
+ */
106
+ export declare const selectEffectiveDateFilterGranularitiesPerTab: DashboardSelector<Record<string, DateFilterGranularity[]>>;
107
+ /**
108
+ * Returns effective date filter options for all tabs as a map.
109
+ * Key is the tab local identifier; value is the date filter options (undefined when no config exists for that tab).
110
+ *
111
+ * @internal
112
+ */
113
+ export declare const selectEffectiveDateFilterOptionsPerTab: DashboardSelector<Record<string, IDateFilterOptionsByType | undefined>>;
100
114
  //# sourceMappingURL=dateFilterConfigSelectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateFilterConfigSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAChE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAWxD,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,0BAA0B,GAAG,SAAS,CAajG,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,iBAAiB,CAYhF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,wBAAwB,CAIxF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+CAA+C,EAAE,iBAAiB,CAAC,qBAAqB,EAAE,CAKlG,CAAC;AAmBN;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAchF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,6BAA6B,CAU1F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,CAI/F,CAAC;AAEP;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC,EAAE,CAChD,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,CAKnD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,EAAE,CACjD,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAS1D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qDAAqD,EAAE,CAChE,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,qBAAqB,EAAE,CAM7C,CAAC"}
1
+ {"version":3,"file":"dateFilterConfigSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAChE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAWxD,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,0BAA0B,GAAG,SAAS,CAajG,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,iBAAiB,CAYhF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,wBAAwB,CAIxF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+CAA+C,EAAE,iBAAiB,CAAC,qBAAqB,EAAE,CAKlG,CAAC;AAmBN;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAchF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,6BAA6B,CAU1F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,CAI/F,CAAC;AAEP;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC,EAAE,CAChD,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,CAKnD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,EAAE,CACjD,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAS1D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qDAAqD,EAAE,CAChE,kBAAkB,EAAE,MAAM,KACzB,iBAAiB,CAAC,qBAAqB,EAAE,CAM7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,4CAA4C,EAAE,iBAAiB,CACxE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAWzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,EAAE,iBAAiB,CAClE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAYtD,CAAC"}
@@ -150,3 +150,38 @@ export const selectEffectiveDateFilterOptionsForTab = createMemoizedSelector((ta
150
150
  * @internal
151
151
  */
152
152
  export const selectEffectiveDateFilterAvailableGranularitiesForTab = createMemoizedSelector((tabLocalIdentifier) => createSelector(selectEffectiveDateFilterConfigForTab(tabLocalIdentifier), (effectiveDateFilterConfig) => effectiveDateFilterConfig?.relativeForm?.availableGranularities ?? []));
153
+ /**
154
+ * Returns effective date filter available granularities for all tabs as a map.
155
+ * Key is the tab local identifier; value is the array of available granularities.
156
+ *
157
+ * @internal
158
+ */
159
+ export const selectEffectiveDateFilterGranularitiesPerTab = createSelector(selectTabs, (tabs) => {
160
+ if (!tabs?.length) {
161
+ return {};
162
+ }
163
+ return tabs.reduce((acc, tab) => {
164
+ const identifier = tab.localIdentifier ?? DEFAULT_TAB_ID;
165
+ acc[identifier] =
166
+ tab.dateFilterConfig?.effectiveDateFilterConfig?.relativeForm?.availableGranularities ?? [];
167
+ return acc;
168
+ }, {});
169
+ });
170
+ /**
171
+ * Returns effective date filter options for all tabs as a map.
172
+ * Key is the tab local identifier; value is the date filter options (undefined when no config exists for that tab).
173
+ *
174
+ * @internal
175
+ */
176
+ export const selectEffectiveDateFilterOptionsPerTab = createSelector(selectTabs, (tabs) => {
177
+ if (!tabs?.length) {
178
+ return {};
179
+ }
180
+ return tabs.reduce((acc, tab) => {
181
+ const identifier = tab.localIdentifier ?? DEFAULT_TAB_ID;
182
+ acc[identifier] = tab.dateFilterConfig?.effectiveDateFilterConfig
183
+ ? convertDateFilterConfigToDateFilterOptions(tab.dateFilterConfig.effectiveDateFilterConfig)
184
+ : undefined;
185
+ return acc;
186
+ }, {});
187
+ });
@@ -107,6 +107,18 @@ export declare const selectHasAnyResettableParameterOnActiveTab: DashboardSelect
107
107
  * @alpha
108
108
  */
109
109
  export declare const selectEffectiveParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
110
+ /**
111
+ * The insight half of {@link selectEffectiveParameterValuesForWidget}: insight-authored values for
112
+ * the metric-referenced refs, flag-gated and ref-filtered, with no dashboard chip overrides.
113
+ *
114
+ * @remarks
115
+ * Raw CSV export inlines a resolved AFM, so it must carry parameters explicitly rather than letting
116
+ * the backend re-resolve them. This is the base; the dialog's `content.parametersByTab` overrides go
117
+ * on top.
118
+ *
119
+ * @internal
120
+ */
121
+ export declare const selectReferencedInsightParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
110
122
  /**
111
123
  * Returns the effective dashboard parameters (persisted shape with any `runtimeOverride` folded
112
124
  * into `value`) held by the widget's owning tab.
@@ -1 +1 @@
1
- {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EAId,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBxD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAkB9B;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,CAG9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAG/E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,CAGzF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,SAAS,CAMtF,CAAC;AAEP;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,CAC7C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAI1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAGlG,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAa7F,CAAC;AAEN;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CA4BnG,CAAC;AA6BN;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAchE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAChE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,CAa/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,EAAE,iBAAiB,CAAC,OAAO,CAGjF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uCAAuC,EAAE,CAClD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,sBAAsB,EAAE,CA+C9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2CAA2C,EAAE,CACtD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,mBAAmB,EAAE,CAe3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,+BAA+B,EAAE,CAC1C,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,KAC9B,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAGX,CAAC"}
1
+ {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EAId,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBxD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAkB9B;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,CAG9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAG/E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,CAGzF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,SAAS,CAMtF,CAAC;AAEP;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,CAC7C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAI1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAGlG,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAa7F,CAAC;AAEN;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CA4BnG,CAAC;AA6BN;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAchE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAChE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,CAa/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,EAAE,iBAAiB,CAAC,OAAO,CAGjF,CAAC;AA6BF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uCAAuC,EAAE,CAClD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,sBAAsB,EAAE,CA6B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+CAA+C,EAAE,CAC1D,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,sBAAsB,EAAE,CAW9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2CAA2C,EAAE,CACtD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,mBAAmB,EAAE,CAe3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,+BAA+B,EAAE,CAC1C,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,KAC9B,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAGX,CAAC"}
@@ -171,6 +171,21 @@ export const selectActiveTabParameterResetTargets = createSelector(selectDashboa
171
171
  * @alpha
172
172
  */
173
173
  export const selectHasAnyResettableParameterOnActiveTab = createSelector(selectActiveTabParameterResetTargets, (targets) => targets.length > 0);
174
+ // Shared base for the two parameter selectors below — the widget's insight, its metric-referenced
175
+ // parameter refs, and the owning tab's entries. Memoized, so both share one computation per ref.
176
+ const selectWidgetInsightAndReferencedRefs = createMemoizedSelector((ref) => createSelector(selectAllTabsInsightWidgetContexts, selectInsightsMap, selectEnableParameters, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, (contexts, insights, isEnabled, measureParameters, measureParametersStatus) => {
177
+ if (!isEnabled || !ref || measureParametersStatus !== "loaded") {
178
+ return undefined;
179
+ }
180
+ const context = contexts.find((ctx) => areObjRefsEqual(ctx.widget.ref, ref));
181
+ const insight = context && insights.get(context.widget.insight);
182
+ if (!context || !insight) {
183
+ return undefined;
184
+ }
185
+ const referencedRefs = new Set(collectReferencedParameterRefs(insight, measureParameters).map(objRefToString));
186
+ const entries = context.tab.parameters?.parameters ?? parametersInitialState.parameters;
187
+ return { insight, referencedRefs, entries };
188
+ }));
174
189
  /**
175
190
  * Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`.
176
191
  *
@@ -188,20 +203,11 @@ export const selectHasAnyResettableParameterOnActiveTab = createSelector(selectA
188
203
  *
189
204
  * @alpha
190
205
  */
191
- export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((ref) => createSelector(selectAllTabsInsightWidgetContexts, selectInsightsMap, selectEnableParameters, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, (contexts, insights, isEnabled, measureParameters, measureParametersStatus) => {
192
- if (!isEnabled || !ref || measureParametersStatus !== "loaded") {
206
+ export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((ref) => createSelector(selectWidgetInsightAndReferencedRefs(ref), (resolved) => {
207
+ if (!resolved) {
193
208
  return EMPTY_PARAMETER_VALUES;
194
209
  }
195
- const context = contexts.find((ctx) => areObjRefsEqual(ctx.widget.ref, ref));
196
- if (!context) {
197
- return EMPTY_PARAMETER_VALUES;
198
- }
199
- const insight = insights.get(context.widget.insight);
200
- if (!insight) {
201
- return EMPTY_PARAMETER_VALUES;
202
- }
203
- const referencedRefs = new Set(collectReferencedParameterRefs(insight, measureParameters).map(objRefToString));
204
- const entries = context.tab.parameters?.parameters ?? parametersInitialState.parameters;
210
+ const { insight, referencedRefs, entries } = resolved;
205
211
  const result = [];
206
212
  const seen = new Set();
207
213
  for (const entry of entries) {
@@ -225,6 +231,25 @@ export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((r
225
231
  }
226
232
  return result.length === 0 ? EMPTY_PARAMETER_VALUES : result;
227
233
  }));
234
+ /**
235
+ * The insight half of {@link selectEffectiveParameterValuesForWidget}: insight-authored values for
236
+ * the metric-referenced refs, flag-gated and ref-filtered, with no dashboard chip overrides.
237
+ *
238
+ * @remarks
239
+ * Raw CSV export inlines a resolved AFM, so it must carry parameters explicitly rather than letting
240
+ * the backend re-resolve them. This is the base; the dialog's `content.parametersByTab` overrides go
241
+ * on top.
242
+ *
243
+ * @internal
244
+ */
245
+ export const selectReferencedInsightParameterValuesForWidget = createMemoizedSelector((ref) => createSelector(selectWidgetInsightAndReferencedRefs(ref), (resolved) => {
246
+ if (!resolved) {
247
+ return EMPTY_PARAMETER_VALUES;
248
+ }
249
+ const { insight, referencedRefs } = resolved;
250
+ const result = insightParameters(insight).filter((parameter) => referencedRefs.has(objRefToString(parameter.ref)));
251
+ return result.length === 0 ? EMPTY_PARAMETER_VALUES : result;
252
+ }));
228
253
  /**
229
254
  * Returns the effective dashboard parameters (persisted shape with any `runtimeOverride` folded
230
255
  * into `value`) held by the widget's owning tab.
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAwDA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA4BxD,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CAglBtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAahE"}
1
+ {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA2DA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA2BxD,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CAglBtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAMhE"}
@@ -14,6 +14,9 @@ import { selectExecutionTimestamp } from "../../../../../model/store/ui/uiSelect
14
14
  import { getWidgetTitle } from "../../../../../model/utils/dashboardItemUtils.js";
15
15
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../../constants/zIndex.js";
16
16
  import { IntlWrapper } from "../../../../localization/IntlWrapper.js";
17
+ import { useSaveAlertToBackend } from "../../../../widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.js";
18
+ import { useBuildAutomationsContext } from "../../../connectors/hooks/useBuildAutomationsContext.js";
19
+ import { AutomationsContextProvider } from "../../../contexts/AutomationsContext.js";
17
20
  import { RecipientsSelect } from "../../../scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js";
18
21
  import { ApplyCurrentFiltersConfirmDialog } from "../../../shared/automationFilters/components/ApplyLatestFiltersConfirmDialog.js";
19
22
  import { AutomationFiltersSelect } from "../../../shared/automationFilters/components/AutomationFiltersSelect.js";
@@ -36,7 +39,6 @@ import { AlertTriggerModeSelect } from "./components/AlertTriggerModeSelect.js";
36
39
  import { ALERTING_DIALOG_ID } from "./constants.js";
37
40
  import { DefaultLoadingAlertingDialog } from "./DefaultLoadingAlertingDialog.js";
38
41
  import { useEditAlert } from "./hooks/useEditAlert.js";
39
- import { useSaveAlertToBackend } from "./hooks/useSaveAlertToBackend.js";
40
42
  import { getDescription, getValueSuffix } from "./utils/getters.js";
41
43
  import { isAnomalyDetection, isChangeOrDifferenceOperator } from "./utils/guards.js";
42
44
  import { isMobileView } from "./utils/responsive.js";
@@ -202,11 +204,15 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
202
204
  */
203
205
  export function DefaultAlertingDialog(props) {
204
206
  const { isLoading, onCancel, alertToEdit } = props;
205
- const locale = useDashboardSelector(selectLocale);
206
207
  if (isLoading) {
207
208
  return _jsx(DefaultLoadingAlertingDialog, { onCancel: onCancel, alertToEdit: alertToEdit });
208
209
  }
209
- return (_jsx(IntlWrapper, { locale: locale, children: _jsx(AlertingDialogRenderer, { ...props }) }));
210
+ return _jsx(DefaultAlertingDialogBody, { ...props });
211
+ }
212
+ function DefaultAlertingDialogBody(props) {
213
+ const locale = useDashboardSelector(selectLocale);
214
+ const automationsContext = useBuildAutomationsContext();
215
+ return (_jsx(AutomationsContextProvider, { value: automationsContext, children: _jsx(IntlWrapper, { locale: locale, children: _jsx(AlertingDialogRenderer, { ...props }) }) }));
210
216
  }
211
217
  function useDefaultAlertingDialogData() {
212
218
  const maxAutomationsRecipients = useDashboardSelector(selectMaxAutomationRecipients);
@@ -1,7 +1,7 @@
1
1
  // (C) 2022-2026 GoodData Corporation
2
2
  import { useCallback, useEffect } from "react";
3
3
  import { convertError } from "@gooddata/sdk-ui";
4
- import { useSaveAlertToBackend } from "../../DefaultAlertingDialog/hooks/useSaveAlertToBackend.js";
4
+ import { useSaveAlertToBackend } from "../../../../../widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.js";
5
5
  export function PauseAlertRunner({ alert, pause, onSuccess, onError }) {
6
6
  const { handlePauseAlert, handleResumeAlert } = useSaveAlertToBackend({
7
7
  onPauseSuccess: () => {
@@ -0,0 +1,3 @@
1
+ import type { IAutomationsContextValue } from "../../contexts/AutomationsContext.js";
2
+ export declare function useBuildAutomationsContext(): IAutomationsContextValue;
3
+ //# sourceMappingURL=useBuildAutomationsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildAutomationsContext.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EACR,wBAAwB,EAE3B,MAAM,sCAAsC,CAAC;AAE9C,wBAAgB,0BAA0B,IAAI,wBAAwB,CA2HrE"}
@@ -0,0 +1,110 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useCallback, useMemo } from "react";
3
+ import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
4
+ import { selectAllCatalogAttributesMap, selectAllCatalogDisplayFormsMap, selectCatalogAttributes, selectCatalogDateDatasets, selectCatalogMeasures, } from "../../../../model/store/catalog/catalogSelectors.js";
5
+ import { selectEnableNewScheduledExport, selectLocale, selectSeparators, selectSettings, } from "../../../../model/store/config/configSelectors.js";
6
+ import { selectAutomationAvailableDashboardFilters, selectAutomationCommonDateFilterId, selectAutomationDefaultSelectedFilters, selectAutomationFiltersByTab, selectDashboardFiltersWithoutCrossFiltering, selectDashboardHiddenFilters, selectDashboardLockedFilters, } from "../../../../model/store/filtering/dashboardFilterSelectors.js";
7
+ import { selectPersistedDashboardFilterContextDateFilterConfig } from "../../../../model/store/meta/metaSelectors.js";
8
+ import { selectAttributeFilterConfigsOverrides, selectAttributeFilterConfigsOverridesByTab, selectAttributeFilterConfigsSelectionTypeMap, selectAttributeFilterConfigsSelectionTypeMapByTab, } from "../../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
9
+ import { selectDateFilterConfigOverridesByTab, selectEffectiveDateFilterAvailableGranularities, selectEffectiveDateFilterGranularitiesPerTab, selectEffectiveDateFilterOptions, selectEffectiveDateFilterOptionsPerTab, } from "../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
10
+ import { selectDateFilterConfigsOverrides, selectDateFilterConfigsOverridesByTab, } from "../../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
11
+ import { selectAttributeFilterDisplayFormsMap } from "../../../../model/store/tabs/filterContext/filterContextSelectors.js";
12
+ import { selectMeasureValueFilterConfigsOverrides, selectMeasureValueFilterConfigsOverridesByTab, } from "../../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
13
+ export function useBuildAutomationsContext() {
14
+ const locale = useDashboardSelector(selectLocale);
15
+ const separators = useDashboardSelector(selectSeparators);
16
+ const enableNewScheduledExport = useDashboardSelector(selectEnableNewScheduledExport);
17
+ const settings = useDashboardSelector(selectSettings);
18
+ const catalogAttributes = useDashboardSelector(selectCatalogAttributes);
19
+ const catalogDateDatasets = useDashboardSelector(selectCatalogDateDatasets);
20
+ const availableGranularities = useDashboardSelector(selectEffectiveDateFilterAvailableGranularities);
21
+ const granularitiesPerTab = useDashboardSelector(selectEffectiveDateFilterGranularitiesPerTab);
22
+ const dateFilterOptions = useDashboardSelector(selectEffectiveDateFilterOptions);
23
+ const optionsPerTab = useDashboardSelector(selectEffectiveDateFilterOptionsPerTab);
24
+ const catalogMeasures = useDashboardSelector(selectCatalogMeasures);
25
+ const allCatalogAttributesMap = useDashboardSelector(selectAllCatalogAttributesMap);
26
+ const catalogDisplayFormsMap = useDashboardSelector(selectAllCatalogDisplayFormsMap);
27
+ const attrFilterDisplayFormsMap = useDashboardSelector(selectAttributeFilterDisplayFormsMap);
28
+ const attributeFilterConfigs = useDashboardSelector(selectAttributeFilterConfigsOverrides);
29
+ const attributeFilterConfigsByTab = useDashboardSelector(selectAttributeFilterConfigsOverridesByTab);
30
+ const attributeFilterSelectionTypeMap = useDashboardSelector(selectAttributeFilterConfigsSelectionTypeMap);
31
+ const attributeFilterSelectionTypeMapByTab = useDashboardSelector(selectAttributeFilterConfigsSelectionTypeMapByTab);
32
+ const dateFilterConfigs = useDashboardSelector(selectDateFilterConfigsOverrides);
33
+ const dateFilterConfigsByTab = useDashboardSelector(selectDateFilterConfigsOverridesByTab);
34
+ const dateFilterConfigOverridesByTab = useDashboardSelector(selectDateFilterConfigOverridesByTab);
35
+ const measureValueFilterConfigs = useDashboardSelector(selectMeasureValueFilterConfigsOverrides);
36
+ const measureValueFilterConfigsByTab = useDashboardSelector(selectMeasureValueFilterConfigsOverridesByTab);
37
+ const dateFilterContextConfig = useDashboardSelector(selectPersistedDashboardFilterContextDateFilterConfig);
38
+ const commonDateFilterId = useDashboardSelector(selectAutomationCommonDateFilterId);
39
+ const lockedFilters = useDashboardSelector(selectDashboardLockedFilters);
40
+ const hiddenFilters = useDashboardSelector(selectDashboardHiddenFilters);
41
+ const availableFilters = useDashboardSelector(selectDashboardFiltersWithoutCrossFiltering);
42
+ const automationFiltersByTab = useDashboardSelector(selectAutomationFiltersByTab);
43
+ const defaultSelectedFilters = useDashboardSelector(selectAutomationDefaultSelectedFilters);
44
+ const automationAvailableFilters = useDashboardSelector(selectAutomationAvailableDashboardFilters);
45
+ const getCatalogAttributeByRef = useCallback((ref) => allCatalogAttributesMap.get(ref), [allCatalogAttributesMap]);
46
+ const getAttributeFilterDisplayForm = useCallback((displayForm) => attrFilterDisplayFormsMap.get(displayForm) ?? catalogDisplayFormsMap.get(displayForm), [attrFilterDisplayFormsMap, catalogDisplayFormsMap]);
47
+ const dateFilterConfig = useMemo(() => ({
48
+ availableGranularities,
49
+ dateFilterOptions,
50
+ getGranularitiesForTab: (tabId) => granularitiesPerTab[tabId] ?? [],
51
+ getOptionsForTab: (tabId) => optionsPerTab[tabId],
52
+ }), [availableGranularities, dateFilterOptions, granularitiesPerTab, optionsPerTab]);
53
+ return useMemo(() => ({
54
+ locale,
55
+ separators,
56
+ settings,
57
+ enableNewScheduledExport,
58
+ catalogAttributes,
59
+ catalogDateDatasets,
60
+ dateFilterConfig,
61
+ catalogMeasures,
62
+ attributeFilterConfigs,
63
+ attributeFilterConfigsByTab,
64
+ attributeFilterSelectionTypeMap,
65
+ attributeFilterSelectionTypeMapByTab,
66
+ dateFilterConfigs,
67
+ dateFilterConfigsByTab,
68
+ dateFilterConfigOverridesByTab,
69
+ measureValueFilterConfigs,
70
+ measureValueFilterConfigsByTab,
71
+ dateFilterContextConfig,
72
+ commonDateFilterId,
73
+ lockedFilters,
74
+ hiddenFilters,
75
+ availableFilters,
76
+ automationFiltersByTab,
77
+ defaultSelectedFilters,
78
+ automationAvailableFilters,
79
+ getCatalogAttributeByRef,
80
+ getAttributeFilterDisplayForm,
81
+ }), [
82
+ locale,
83
+ separators,
84
+ settings,
85
+ enableNewScheduledExport,
86
+ catalogAttributes,
87
+ catalogDateDatasets,
88
+ dateFilterConfig,
89
+ catalogMeasures,
90
+ attributeFilterConfigs,
91
+ attributeFilterConfigsByTab,
92
+ attributeFilterSelectionTypeMap,
93
+ attributeFilterSelectionTypeMapByTab,
94
+ dateFilterConfigs,
95
+ dateFilterConfigsByTab,
96
+ dateFilterConfigOverridesByTab,
97
+ measureValueFilterConfigs,
98
+ measureValueFilterConfigsByTab,
99
+ dateFilterContextConfig,
100
+ commonDateFilterId,
101
+ lockedFilters,
102
+ hiddenFilters,
103
+ availableFilters,
104
+ automationFiltersByTab,
105
+ defaultSelectedFilters,
106
+ automationAvailableFilters,
107
+ getCatalogAttributeByRef,
108
+ getAttributeFilterDisplayForm,
109
+ ]);
110
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useBuildAutomationsContext.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBuildAutomationsContext.test.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { renderHook } from "@testing-library/react";
3
+ import { describe, expect, it, vi } from "vitest";
4
+ const selectors = vi.hoisted(() => {
5
+ const availableGranularities = ["GDC.time.date"];
6
+ const dateFilterOptions = {
7
+ allTime: {
8
+ localIdentifier: "allTime",
9
+ type: "allTime",
10
+ name: "All time",
11
+ visible: true,
12
+ },
13
+ };
14
+ const granularitiesPerTab = {
15
+ tab1: ["GDC.time.month"],
16
+ };
17
+ const optionsPerTab = {
18
+ tab1: {
19
+ relativeForm: {
20
+ fromLimit: -30,
21
+ toLimit: 0,
22
+ localIdentifier: "relative",
23
+ type: "relativeForm",
24
+ name: "Relative",
25
+ visible: true,
26
+ },
27
+ },
28
+ };
29
+ return {
30
+ availableGranularities,
31
+ dateFilterOptions,
32
+ granularitiesPerTab,
33
+ optionsPerTab,
34
+ };
35
+ });
36
+ vi.mock("../../../../model/react/DashboardStoreProvider.js", () => ({
37
+ useDashboardSelector: vi.fn((selector) => selector()),
38
+ }));
39
+ vi.mock("../../../../model/store/catalog/catalogSelectors.js", () => ({
40
+ selectAllCatalogAttributesMap: () => new Map(),
41
+ selectAllCatalogDisplayFormsMap: () => new Map(),
42
+ selectCatalogAttributes: () => [],
43
+ selectCatalogDateDatasets: () => [],
44
+ selectCatalogMeasures: () => [],
45
+ }));
46
+ vi.mock("../../../../model/store/config/configSelectors.js", () => ({
47
+ selectEnableNewScheduledExport: () => false,
48
+ selectLocale: () => "en-US",
49
+ selectSeparators: () => ({ decimal: ".", thousand: "," }),
50
+ selectSettings: () => undefined,
51
+ }));
52
+ vi.mock("../../../../model/store/filtering/dashboardFilterSelectors.js", () => ({
53
+ selectAutomationAvailableDashboardFilters: () => [],
54
+ selectAutomationCommonDateFilterId: () => undefined,
55
+ selectAutomationDefaultSelectedFilters: () => [],
56
+ selectAutomationFiltersByTab: () => [],
57
+ selectDashboardFiltersWithoutCrossFiltering: () => [],
58
+ selectDashboardHiddenFilters: () => [],
59
+ selectDashboardLockedFilters: () => [],
60
+ }));
61
+ vi.mock("../../../../model/store/meta/metaSelectors.js", () => ({
62
+ selectPersistedDashboardFilterContextDateFilterConfig: () => undefined,
63
+ }));
64
+ vi.mock("../../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js", () => ({
65
+ selectAttributeFilterConfigsOverrides: () => [],
66
+ selectAttributeFilterConfigsOverridesByTab: () => ({}),
67
+ selectAttributeFilterConfigsSelectionTypeMap: () => new Map(),
68
+ selectAttributeFilterConfigsSelectionTypeMapByTab: () => ({}),
69
+ }));
70
+ vi.mock("../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js", () => ({
71
+ selectDateFilterConfigOverridesByTab: () => ({}),
72
+ selectEffectiveDateFilterAvailableGranularities: () => selectors.availableGranularities,
73
+ selectEffectiveDateFilterGranularitiesPerTab: () => selectors.granularitiesPerTab,
74
+ selectEffectiveDateFilterOptions: () => selectors.dateFilterOptions,
75
+ selectEffectiveDateFilterOptionsPerTab: () => selectors.optionsPerTab,
76
+ }));
77
+ vi.mock("../../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js", () => ({
78
+ selectDateFilterConfigsOverrides: () => [],
79
+ selectDateFilterConfigsOverridesByTab: () => ({}),
80
+ }));
81
+ vi.mock("../../../../model/store/tabs/filterContext/filterContextSelectors.js", () => ({
82
+ selectAttributeFilterDisplayFormsMap: () => new Map(),
83
+ }));
84
+ vi.mock("../../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js", () => ({
85
+ selectMeasureValueFilterConfigsOverrides: () => [],
86
+ selectMeasureValueFilterConfigsOverridesByTab: () => ({}),
87
+ }));
88
+ import { useBuildAutomationsContext } from "./useBuildAutomationsContext.js";
89
+ describe("useBuildAutomationsContext", () => {
90
+ it("preserves per-tab date filter configuration in the automations context bridge", () => {
91
+ const { result } = renderHook(() => useBuildAutomationsContext());
92
+ expect(result.current.dateFilterConfig.availableGranularities).toEqual(selectors.availableGranularities);
93
+ expect(result.current.dateFilterConfig.dateFilterOptions).toEqual(selectors.dateFilterOptions);
94
+ expect(result.current.dateFilterConfig.getGranularitiesForTab("tab1")).toEqual(selectors.granularitiesPerTab["tab1"]);
95
+ expect(result.current.dateFilterConfig.getOptionsForTab("tab1")).toEqual(selectors.optionsPerTab["tab1"]);
96
+ expect(result.current.dateFilterConfig.getGranularitiesForTab("missing-tab")).toEqual([]);
97
+ expect(result.current.dateFilterConfig.getOptionsForTab("missing-tab")).toBeUndefined();
98
+ });
99
+ });
@@ -0,0 +1,4 @@
1
+ import { type IFilter, type IInsightDefinition } from "@gooddata/sdk-model";
2
+ import { type FilterableDashboardWidget } from "../../../../model/types/layoutTypes.js";
3
+ export declare function useWidgetAutomationFilters(widget?: FilterableDashboardWidget, insight?: IInsightDefinition): import("../../../../index.js").QueryProcessingState<IFilter[]>;
4
+ //# sourceMappingURL=useWidgetAutomationFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWidgetAutomationFilters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/connectors/hooks/useWidgetAutomationFilters.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,kBAAkB,EAK1B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAExF,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,yBAAyB,EAAE,OAAO,CAAC,EAAE,kBAAkB,kEAmB1G"}
@@ -0,0 +1,46 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useMemo } from "react";
3
+ import { filterIsEmpty, filterLocalIdentifier, isAttributeFilter, isNoopAllTimeDateFilter, } from "@gooddata/sdk-model";
4
+ import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
5
+ import { useWidgetFilters } from "../../../../model/react/useWidgetFilters.js";
6
+ import { selectCrossFilteringItems } from "../../../../model/store/drill/drillSelectors.js";
7
+ export function useWidgetAutomationFilters(widget, insight) {
8
+ const widgetFiltersQuery = useWidgetFilters(widget, insight);
9
+ const crossFilteringItems = useDashboardSelector(selectCrossFilteringItems);
10
+ return useMemo(() => {
11
+ const { result: widgetFilters, status: widgetFiltersStatus } = widgetFiltersQuery;
12
+ const sanitizedWidgetFilters = widgetFilters
13
+ ? sanitizeWidgetFilters(widgetFilters, crossFilteringItems)
14
+ : undefined;
15
+ if (widgetFiltersStatus === "success" && sanitizedWidgetFilters) {
16
+ return {
17
+ ...widgetFiltersQuery,
18
+ result: sanitizedWidgetFilters,
19
+ };
20
+ }
21
+ return widgetFiltersQuery;
22
+ }, [crossFilteringItems, widgetFiltersQuery]);
23
+ }
24
+ function sanitizeWidgetFilters(filters, crossFilteringItems) {
25
+ const withoutCrossFiltering = removeCrossFilteringFilters(filters, crossFilteringItems);
26
+ const withoutAllTimeDateFilters = removeAllTimeDateFilters(withoutCrossFiltering);
27
+ return removeEmptyAttributeFilters(withoutAllTimeDateFilters);
28
+ }
29
+ function removeCrossFilteringFilters(filters, crossFilteringItems) {
30
+ const crossFilteringFilterLocalIdentifiers = new Set(crossFilteringItems.flatMap((c) => c.filterLocalIdentifiers));
31
+ return filters.filter((filter) => {
32
+ const filterLocalId = filterLocalIdentifier(filter);
33
+ return filterLocalId ? !crossFilteringFilterLocalIdentifiers.has(filterLocalId) : true;
34
+ });
35
+ }
36
+ function removeEmptyAttributeFilters(filters) {
37
+ return filters.filter((filter) => {
38
+ if (isAttributeFilter(filter)) {
39
+ return !filterIsEmpty(filter);
40
+ }
41
+ return true;
42
+ });
43
+ }
44
+ function removeAllTimeDateFilters(filters) {
45
+ return filters.filter((filter) => !isNoopAllTimeDateFilter(filter));
46
+ }
@@ -1,9 +1,49 @@
1
+ import type { DashboardAttributeFilterSelectionType, DateFilterGranularity, FilterContextItem, IAttributeDisplayFormMetadataObject, ICatalogAttribute, ICatalogDateAttribute, ICatalogDateDataset, ICatalogMeasure, IDashboardAttributeFilterConfig, IDashboardDateFilterConfig, IDashboardDateFilterConfigItem, IDashboardMeasureValueFilterConfig, ISeparators, ISettings, ObjRef } from "@gooddata/sdk-model";
2
+ import type { ILocale } from "@gooddata/sdk-ui";
3
+ import type { IDateFilterOptionsByType } from "@gooddata/sdk-ui-filters";
4
+ import type { IAutomationFiltersTab } from "../../../model/store/filtering/types.js";
5
+ /**
6
+ * Date filter configuration provided by the dashboard connector so that AutomationDateFilter
7
+ * does not need to read dashboard selectors directly.
8
+ */
9
+ export interface IAutomationsDateFilterConfig {
10
+ availableGranularities: DateFilterGranularity[];
11
+ dateFilterOptions: IDateFilterOptionsByType;
12
+ getGranularitiesForTab: (tabId: string) => DateFilterGranularity[];
13
+ getOptionsForTab: (tabId: string) => IDateFilterOptionsByType | undefined;
14
+ }
1
15
  /**
2
16
  * Main context shared across all automation dialogs.
3
- * Shape grows incrementally as dep-cruiser migration reveals what
4
- * data is shared across all automation dialogs.
17
+ * Only fields actively consumed by migrated leaves are listed here — add fields as each leaf migrates.
5
18
  */
6
19
  export interface IAutomationsContextValue {
20
+ locale: ILocale;
21
+ separators: ISeparators;
22
+ settings?: ISettings;
23
+ catalogAttributes: ICatalogAttribute[];
24
+ catalogDateDatasets: ICatalogDateDataset[];
25
+ catalogMeasures: ICatalogMeasure[];
26
+ dateFilterConfig: IAutomationsDateFilterConfig;
27
+ dateFilterContextConfig: IDashboardDateFilterConfig | undefined;
28
+ attributeFilterConfigs: IDashboardAttributeFilterConfig[];
29
+ attributeFilterConfigsByTab: Record<string, IDashboardAttributeFilterConfig[]>;
30
+ attributeFilterSelectionTypeMap: Map<string, DashboardAttributeFilterSelectionType | undefined>;
31
+ attributeFilterSelectionTypeMapByTab: Record<string, Map<string, DashboardAttributeFilterSelectionType | undefined>>;
32
+ dateFilterConfigs: IDashboardDateFilterConfigItem[];
33
+ dateFilterConfigsByTab: Record<string, IDashboardDateFilterConfigItem[]>;
34
+ dateFilterConfigOverridesByTab: Record<string, IDashboardDateFilterConfig | undefined>;
35
+ measureValueFilterConfigs: IDashboardMeasureValueFilterConfig[];
36
+ measureValueFilterConfigsByTab: Record<string, IDashboardMeasureValueFilterConfig[]>;
37
+ commonDateFilterId: string | undefined;
38
+ lockedFilters: FilterContextItem[];
39
+ hiddenFilters: FilterContextItem[];
40
+ availableFilters: FilterContextItem[];
41
+ automationFiltersByTab: IAutomationFiltersTab[];
42
+ defaultSelectedFilters: FilterContextItem[];
43
+ automationAvailableFilters: FilterContextItem[];
44
+ enableNewScheduledExport: boolean;
45
+ getCatalogAttributeByRef: (ref: ObjRef) => ICatalogAttribute | ICatalogDateAttribute | undefined;
46
+ getAttributeFilterDisplayForm: (displayForm: ObjRef) => IAttributeDisplayFormMetadataObject | undefined;
7
47
  }
8
48
  export declare const AutomationsContextProvider: import("react").Provider<IAutomationsContextValue | undefined>;
9
49
  export declare function useAutomationsContext(): IAutomationsContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationsContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/AutomationsContext.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,MAAM,WAAW,wBAAwB;CAAG;AAI5C,eAAO,MAAM,0BAA0B,gEAA8B,CAAC;AAEtE,wBAAgB,qBAAqB,IAAI,wBAAwB,CAMhE"}
1
+ {"version":3,"file":"AutomationsContext.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/contexts/AutomationsContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,qCAAqC,EACrC,qBAAqB,EACrB,iBAAiB,EACjB,mCAAmC,EACnC,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,kCAAkC,EAClC,WAAW,EACX,SAAS,EACT,MAAM,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IACzC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,qBAAqB,EAAE,CAAC;IACnE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CAC7E;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,uBAAuB,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAChE,sBAAsB,EAAE,+BAA+B,EAAE,CAAC;IAC1D,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAC/E,+BAA+B,EAAE,GAAG,CAAC,MAAM,EAAE,qCAAqC,GAAG,SAAS,CAAC,CAAC;IAChG,oCAAoC,EAAE,MAAM,CACxC,MAAM,EACN,GAAG,CAAC,MAAM,EAAE,qCAAqC,GAAG,SAAS,CAAC,CACjE,CAAC;IACF,iBAAiB,EAAE,8BAA8B,EAAE,CAAC;IACpD,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC;IACzE,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAAC;IACvF,yBAAyB,EAAE,kCAAkC,EAAE,CAAC;IAChE,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;IACrF,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,0BAA0B,EAAE,iBAAiB,EAAE,CAAC;IAChD,wBAAwB,EAAE,OAAO,CAAC;IAClC,wBAAwB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,GAAG,qBAAqB,GAAG,SAAS,CAAC;IACjG,6BAA6B,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,mCAAmC,GAAG,SAAS,CAAC;CAC3G;AAID,eAAO,MAAM,0BAA0B,gEAA8B,CAAC;AAEtE,wBAAgB,qBAAqB,IAAI,wBAAwB,CAMhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAiEA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAgE9D,wBAAgB,2BAA2B,CAAC,EACxC,qBAAqB,EACrB,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,EAAE,0BAA0B,2CA0kB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAkB5E"}
1
+ {"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAmEA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAgE9D,wBAAgB,2BAA2B,CAAC,EACxC,qBAAqB,EACrB,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,EAAE,0BAA0B,2CA0kB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAW5E"}
@@ -17,6 +17,8 @@ import { selectExecutionTimestamp } from "../../../../model/store/ui/uiSelectors
17
17
  import { getWidgetTitle } from "../../../../model/utils/dashboardItemUtils.js";
18
18
  import { DASHBOARD_DIALOG_OVERS_Z_INDEX } from "../../../constants/zIndex.js";
19
19
  import { IntlWrapper } from "../../../localization/IntlWrapper.js";
20
+ import { useBuildAutomationsContext } from "../../connectors/hooks/useBuildAutomationsContext.js";
21
+ import { AutomationsContextProvider } from "../../contexts/AutomationsContext.js";
20
22
  import { ApplyCurrentFiltersConfirmDialog } from "../../shared/automationFilters/components/ApplyLatestFiltersConfirmDialog.js";
21
23
  import { AutomationFiltersSelect } from "../../shared/automationFilters/components/AutomationFiltersSelect.js";
22
24
  import { useValidateExistingAutomationFilters } from "../../shared/automationFilters/hooks/useValidateExistingAutomationFilters.js";
@@ -243,11 +245,15 @@ export function ScheduledMailDialogRenderer({ scheduledExportToEdit, users, user
243
245
  */
244
246
  export function DefaultScheduledEmailDialog(props) {
245
247
  const { isLoading, onCancel, scheduledExportToEdit } = props;
246
- const locale = useDashboardSelector(selectLocale);
247
248
  if (isLoading) {
248
249
  return (_jsx(DefaultLoadingScheduledEmailDialog, { onCancel: onCancel, scheduledExportToEdit: scheduledExportToEdit }));
249
250
  }
250
- return (_jsx(IntlWrapper, { locale: locale, children: _jsx(ScheduledMailDialogRenderer, { ...props }) }));
251
+ return _jsx(DefaultScheduledEmailDialogBody, { ...props });
252
+ }
253
+ function DefaultScheduledEmailDialogBody(props) {
254
+ const locale = useDashboardSelector(selectLocale);
255
+ const automationsContext = useBuildAutomationsContext();
256
+ return (_jsx(AutomationsContextProvider, { value: automationsContext, children: _jsx(IntlWrapper, { locale: locale, children: _jsx(ScheduledMailDialogRenderer, { ...props }) }) }));
251
257
  }
252
258
  function useDefaultScheduledEmailDialogData() {
253
259
  const locale = useDashboardSelector(selectLocale);
@@ -1,5 +1,5 @@
1
1
  import { type DashboardAttachmentType, type FilterContextItem, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type IAutomationRecipient, type IAutomationVisibleFilter, type IDashboardExportParameter, type IExportDefinitionVisualizationObjectSettings, type IFilter, type IInsight, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type WidgetAttachmentType } from "@gooddata/sdk-model";
2
- import { type IAutomationFiltersTab } from "../../../../../model/store/filtering/dashboardFilterSelectors.js";
2
+ import type { IAutomationFiltersTab } from "../../../../../model/store/filtering/types.js";
3
3
  import { type ExtendedDashboardWidget } from "../../../../../model/types/layoutTypes.js";
4
4
  export interface IUseEditScheduledEmailProps {
5
5
  scheduledExportToEdit?: IAutomationMetadataObject;