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

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 (152) hide show
  1. package/NOTICE +130 -130
  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/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
  8. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +10 -5
  9. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.d.ts.map +1 -1
  10. package/esm/model/commandHandlers/filterContext/dateFilter/removeDateFiltersHandler.js +22 -4
  11. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.d.ts.map +1 -1
  12. package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +3 -1
  13. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts +2 -2
  14. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts.map +1 -1
  15. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.js +36 -3
  16. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.d.ts.map +1 -1
  17. package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +3 -1
  18. package/esm/model/store/executionResults/executionResultsSelectors.d.ts +4 -0
  19. package/esm/model/store/executionResults/executionResultsSelectors.d.ts.map +1 -1
  20. package/esm/model/store/executionResults/executionResultsSelectors.js +4 -1
  21. package/esm/model/store/filtering/dashboardFilterSelectors.d.ts +1 -30
  22. package/esm/model/store/filtering/dashboardFilterSelectors.d.ts.map +1 -1
  23. package/esm/model/store/filtering/dashboardFilterSelectors.js +3 -0
  24. package/esm/model/store/filtering/types.d.ts +33 -0
  25. package/esm/model/store/filtering/types.d.ts.map +1 -0
  26. package/esm/model/store/filtering/types.js +2 -0
  27. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts +14 -0
  28. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.d.ts.map +1 -1
  29. package/esm/model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js +35 -0
  30. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +12 -0
  31. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  32. package/esm/model/store/tabs/parameters/parametersSelectors.js +37 -12
  33. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  34. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +10 -5
  35. package/esm/presentation/automations/_staging/alerting/DefaultAlertingManagementDialog/components/PauseAlertRunner.js +1 -1
  36. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts +3 -0
  37. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.d.ts.map +1 -0
  38. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.js +110 -0
  39. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.d.ts +2 -0
  40. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.d.ts.map +1 -0
  41. package/esm/presentation/automations/connectors/hooks/useBuildAutomationsContext.test.js +99 -0
  42. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.d.ts +4 -0
  43. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.d.ts.map +1 -0
  44. package/esm/presentation/automations/connectors/hooks/useWidgetAutomationFilters.js +46 -0
  45. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +42 -2
  46. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  47. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  48. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +8 -2
  49. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +1 -1
  50. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  51. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.d.ts +2 -3
  52. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.d.ts.map +1 -1
  53. package/esm/presentation/automations/scheduledEmail/hooks/useWidgetAutomationFilters.js +4 -45
  54. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.d.ts.map +1 -1
  55. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.js +9 -16
  56. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.d.ts +2 -0
  57. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.d.ts.map +1 -0
  58. package/esm/presentation/automations/shared/automationFilters/components/AutomationDateFilter.test.js +131 -0
  59. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts +1 -1
  60. package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
  61. package/esm/presentation/automations/shared/automationFilters/hooks/useAutomationVisibleFilters.d.ts.map +1 -1
  62. package/esm/presentation/automations/shared/automationFilters/hooks/useAutomationVisibleFilters.js +1 -1
  63. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts +1 -1
  64. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.d.ts.map +1 -1
  65. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +4 -6
  66. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.d.ts +1 -1
  67. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.d.ts.map +1 -1
  68. package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForNewAutomation.js +3 -4
  69. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts +1 -1
  70. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
  71. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +4 -10
  72. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts +1 -1
  73. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.d.ts.map +1 -1
  74. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +3 -28
  75. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.d.ts +2 -2
  76. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.d.ts.map +1 -1
  77. package/esm/presentation/automations/shared/automationFilters/useAutomationFiltersSelect.js +2 -5
  78. package/esm/presentation/automations/shared/automationFilters/utils.d.ts +1 -1
  79. package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
  80. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.d.ts +10 -0
  81. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.d.ts.map +1 -0
  82. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterConfigConverters.js +89 -0
  83. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.d.ts +34 -0
  84. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.d.ts.map +1 -0
  85. package/esm/presentation/automations/shared/dateFilterConfig/dateFilterOptionMapping.js +261 -0
  86. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.d.ts +12 -0
  87. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.d.ts.map +1 -0
  88. package/esm/presentation/automations/shared/dateFilterConfig/defaultConfig.js +437 -0
  89. package/esm/presentation/automations/shared/exportUtils/filterUtils.d.ts +3 -0
  90. package/esm/presentation/automations/shared/exportUtils/filterUtils.d.ts.map +1 -0
  91. package/esm/presentation/automations/shared/exportUtils/filterUtils.js +14 -0
  92. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.d.ts +3 -0
  93. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.d.ts.map +1 -0
  94. package/esm/presentation/automations/shared/hooks/useAttributeFilterDisplayFormFromMap.js +7 -0
  95. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.d.ts +3 -0
  96. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.d.ts.map +1 -0
  97. package/esm/presentation/automations/shared/hooks/useCommonDateFilterTitle.js +6 -0
  98. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.d.ts +4 -0
  99. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.d.ts.map +1 -0
  100. package/esm/presentation/automations/shared/hooks/useDateFiltersTitles.js +19 -0
  101. package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts +13 -0
  102. package/esm/presentation/automations/shared/hooks/useFiltersNamings.d.ts.map +1 -0
  103. package/esm/presentation/automations/shared/hooks/useFiltersNamings.js +196 -0
  104. package/esm/presentation/automations/shared/utils/automationUtils.d.ts +24 -0
  105. package/esm/presentation/automations/shared/utils/automationUtils.d.ts.map +1 -0
  106. package/esm/presentation/automations/shared/utils/automationUtils.js +135 -0
  107. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts +4 -0
  108. package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts.map +1 -0
  109. package/esm/presentation/automations/shared/utils/filterContextUtils.js +67 -0
  110. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.d.ts.map +1 -1
  111. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.js +11 -13
  112. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFilterConfigurationState.d.ts.map +1 -1
  113. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFilterConfigurationState.js +34 -16
  114. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFiltersConfiguration.d.ts.map +1 -1
  115. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useDependentDateFiltersConfiguration.js +23 -8
  116. package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.d.ts.map +1 -1
  117. package/esm/presentation/filterBar/attributeFilter/useDependentDateFilters.js +17 -6
  118. package/esm/presentation/topBar/menuButton/DefaultMenuButton.d.ts.map +1 -1
  119. package/esm/presentation/topBar/menuButton/DefaultMenuButton.js +11 -20
  120. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.d.ts.map +1 -1
  121. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +3 -4
  122. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.d.ts.map +1 -1
  123. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js +1 -1
  124. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.d.ts.map +1 -1
  125. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +11 -2
  126. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useCreateAlert.d.ts.map +1 -0
  127. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.d.ts.map +1 -1
  128. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.js +2 -2
  129. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useSaveAlertToBackend.d.ts.map +1 -0
  130. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useUpdateAlert.d.ts.map +1 -0
  131. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts +4 -0
  132. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.d.ts.map +1 -0
  133. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useWidgetAutomationFilters.js +46 -0
  134. package/esm/presentation/widget/insight/configuration/InsightAlertsNew.d.ts.map +1 -1
  135. package/esm/presentation/widget/insight/configuration/InsightAlertsNew.js +1 -1
  136. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuItemButton.d.ts.map +1 -1
  137. package/esm/presentation/widget/insightMenu/DefaultDashboardInsightMenu/DashboardInsightMenu/DashboardInsightMenuItemButton.js +2 -2
  138. package/esm/presentation/widget/insightMenu/types.js +1 -1
  139. package/esm/presentation/widget/widget/warningPartialResult/InsightWidgetWarningPartialResult.d.ts.map +1 -1
  140. package/esm/presentation/widget/widget/warningPartialResult/InsightWidgetWarningPartialResult.js +1 -1
  141. package/esm/sdk-ui-dashboard.d.ts +11 -2
  142. package/esm/tsdoc-metadata.json +1 -1
  143. package/package.json +20 -20
  144. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useCreateAlert.d.ts.map +0 -1
  145. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useSaveAlertToBackend.d.ts.map +0 -1
  146. package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/hooks/useUpdateAlert.d.ts.map +0 -1
  147. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useCreateAlert.d.ts +0 -0
  148. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useCreateAlert.js +0 -0
  149. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useSaveAlertToBackend.d.ts +0 -0
  150. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useSaveAlertToBackend.js +0 -0
  151. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useUpdateAlert.d.ts +0 -0
  152. /package/esm/presentation/{automations/_staging/alerting/DefaultAlertingDialog → widget/insight/configuration/InsightAlertConfig}/hooks/useUpdateAlert.js +0 -0
@@ -131,6 +131,9 @@ export const isFilterContextItemLocked = (filter, filterConfigurations) => {
131
131
  }
132
132
  return false;
133
133
  };
134
+ //
135
+ // Per-tab automation filter selectors
136
+ //
134
137
  /**
135
138
  * Returns automation-available filters structured per tab.
136
139
  * Each entry includes tab information and the filters applicable to that tab.
@@ -0,0 +1,33 @@
1
+ import type { FilterContextItem } from "@gooddata/sdk-model";
2
+ /**
3
+ * Automation filters grouped by tab, returned by {@link selectAutomationFiltersByTab}.
4
+ * @alpha
5
+ */
6
+ export interface IAutomationFiltersTab {
7
+ /**
8
+ * Tab local identifier.
9
+ */
10
+ tabId: string;
11
+ /**
12
+ * Tab title.
13
+ */
14
+ tabTitle: string;
15
+ /**
16
+ * Automation-available filters for the tab (hidden filters removed).
17
+ */
18
+ availableFilters: FilterContextItem[];
19
+ /**
20
+ * Default selected filters for the tab
21
+ * (no-op filters removed: "all values" attribute filters and "all" measure value filters).
22
+ */
23
+ defaultSelectedFilters: FilterContextItem[];
24
+ /**
25
+ * Locked filters for the tab.
26
+ */
27
+ lockedFilters: FilterContextItem[];
28
+ /**
29
+ * Hidden filters for the tab.
30
+ */
31
+ hiddenFilters: FilterContextItem[];
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filtering/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC;;;OAGG;IACH,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C;;OAEG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -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,2CA+kBtB;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";
@@ -123,9 +125,8 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
123
125
  message: validationErrorMessage,
124
126
  severity: isInvalidConnectionToInsight ? "error" : "warning",
125
127
  }),
126
- !!thresholdErrorMessage && createInvalidDatapoint({ message: thresholdErrorMessage }),
127
128
  ]);
128
- }, [validationErrorMessage, thresholdErrorMessage, isInvalidConnectionToInsight, setInvalidDatapoints]);
129
+ }, [validationErrorMessage, isInvalidConnectionToInsight, setInvalidDatapoints]);
129
130
  const helpTextId = isMobileView()
130
131
  ? defineMessage({ id: "dialogs.alerting.footer.title.short" }).id
131
132
  : defineMessage({ id: "dialogs.alerting.footer.title" }).id;
@@ -202,11 +203,15 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
202
203
  */
203
204
  export function DefaultAlertingDialog(props) {
204
205
  const { isLoading, onCancel, alertToEdit } = props;
205
- const locale = useDashboardSelector(selectLocale);
206
206
  if (isLoading) {
207
207
  return _jsx(DefaultLoadingAlertingDialog, { onCancel: onCancel, alertToEdit: alertToEdit });
208
208
  }
209
- return (_jsx(IntlWrapper, { locale: locale, children: _jsx(AlertingDialogRenderer, { ...props }) }));
209
+ return _jsx(DefaultAlertingDialogBody, { ...props });
210
+ }
211
+ function DefaultAlertingDialogBody(props) {
212
+ const locale = useDashboardSelector(selectLocale);
213
+ const automationsContext = useBuildAutomationsContext();
214
+ return (_jsx(AutomationsContextProvider, { value: automationsContext, children: _jsx(IntlWrapper, { locale: locale, children: _jsx(AlertingDialogRenderer, { ...props }) }) }));
210
215
  }
211
216
  function useDefaultAlertingDialogData() {
212
217
  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;