@gooddata/sdk-ui-dashboard 11.55.0-alpha.2 → 11.55.0-alpha.4

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 (204) hide show
  1. package/NOTICE +9 -9
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/_staging/automation/index.d.ts +19 -1
  5. package/esm/_staging/automation/index.d.ts.map +1 -1
  6. package/esm/_staging/automation/index.js +44 -8
  7. package/esm/_staging/dashboard/dashboardFilterConverter.d.ts +1 -18
  8. package/esm/_staging/dashboard/dashboardFilterConverter.d.ts.map +1 -1
  9. package/esm/_staging/dashboard/dashboardFilterConverter.js +1 -62
  10. package/esm/_staging/insight/insightWidgetProperties.d.ts +6 -0
  11. package/esm/_staging/insight/insightWidgetProperties.d.ts.map +1 -0
  12. package/esm/_staging/insight/insightWidgetProperties.js +32 -0
  13. package/esm/_staging/sharedHooks/useRichTextFilters.d.ts.map +1 -1
  14. package/esm/_staging/sharedHooks/useRichTextFilters.js +1 -2
  15. package/esm/index.d.ts +25 -7
  16. package/esm/index.d.ts.map +1 -1
  17. package/esm/index.js +22 -4
  18. package/esm/internal.d.ts +3 -3
  19. package/esm/internal.d.ts.map +1 -1
  20. package/esm/internal.js +3 -3
  21. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -1
  22. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +1 -2
  23. package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.d.ts.map +1 -1
  24. package/esm/model/commandHandlers/common/validateDrillToCustomUrlParams.js +1 -2
  25. package/esm/model/commandHandlers/drill/drillToDashboardHandler.d.ts.map +1 -1
  26. package/esm/model/commandHandlers/drill/drillToDashboardHandler.js +1 -2
  27. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts +11 -5
  28. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts.map +1 -1
  29. package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.js +24 -7
  30. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts.map +1 -1
  31. package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.js +1 -2
  32. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
  33. package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +5 -0
  34. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
  35. package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +21 -3
  36. package/esm/model/commandHandlers/widgets/exportRawInsightWidgetHandler.js +1 -2
  37. package/esm/model/commands/filters.d.ts +1 -1
  38. package/esm/model/commands/filters.js +1 -1
  39. package/esm/model/events/filters.d.ts +6 -6
  40. package/esm/model/store/tabs/layout/layoutSelectors.d.ts.map +1 -1
  41. package/esm/model/store/tabs/layout/layoutSelectors.js +1 -2
  42. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +10 -22
  43. package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
  44. package/esm/model/store/tabs/parameters/parametersHelpers.js +13 -42
  45. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +8 -10
  46. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
  47. package/esm/model/store/tabs/parameters/parametersSelectors.js +22 -32
  48. package/esm/presentation/automations/alerting/AlertingManagementDialog.d.ts +4 -0
  49. package/esm/presentation/automations/alerting/AlertingManagementDialog.d.ts.map +1 -1
  50. package/esm/presentation/automations/alerting/AlertingManagementDialog.js +6 -2
  51. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +16 -16
  52. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  53. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +34 -109
  54. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.d.ts +10 -0
  55. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.d.ts.map +1 -0
  56. package/esm/presentation/automations/alerting/blocks/AlertingDialogFormFieldGroup.js +12 -0
  57. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts +49 -0
  58. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.d.ts.map +1 -0
  59. package/esm/presentation/automations/alerting/blocks/AlertingDialogShell.js +128 -0
  60. package/esm/presentation/automations/alerting/blocks/DefaultLoadingAlertingDialog.d.ts.map +1 -0
  61. package/esm/presentation/automations/alerting/types.d.ts +109 -0
  62. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  63. package/esm/presentation/automations/connectors/AlertingConnector.d.ts +3 -3
  64. package/esm/presentation/automations/connectors/AlertingConnector.d.ts.map +1 -1
  65. package/esm/presentation/automations/connectors/AlertingConnector.js +6 -4
  66. package/esm/presentation/automations/connectors/ScheduledEmailConnector.d.ts +3 -3
  67. package/esm/presentation/automations/connectors/ScheduledEmailConnector.d.ts.map +1 -1
  68. package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +6 -4
  69. package/esm/presentation/automations/connectors/hooks/useBuildAlertingManagementDialogContext.d.ts.map +1 -1
  70. package/esm/presentation/automations/connectors/hooks/useBuildAlertingManagementDialogContext.js +7 -0
  71. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts +22 -0
  72. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.d.ts.map +1 -1
  73. package/esm/presentation/automations/contexts/AlertingManagementDialogContext.js +10 -0
  74. package/esm/presentation/automations/contexts/AutomationsContext.d.ts +10 -0
  75. package/esm/presentation/automations/contexts/AutomationsContext.d.ts.map +1 -1
  76. package/esm/presentation/automations/contexts/AutomationsContext.js +10 -0
  77. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts +10 -0
  78. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.d.ts.map +1 -1
  79. package/esm/presentation/automations/contexts/ScheduledEmailManagementDialogContext.js +10 -0
  80. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +15 -10
  81. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  82. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +45 -198
  83. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts +2 -18
  84. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
  85. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +2 -23
  86. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  87. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.d.ts +11 -0
  88. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.d.ts.map +1 -0
  89. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogDashboardAttachments.js +12 -0
  90. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.d.ts +11 -0
  91. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.d.ts.map +1 -0
  92. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogEvaluationMode.js +12 -0
  93. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.d.ts +11 -0
  94. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.d.ts.map +1 -0
  95. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogMessage.js +12 -0
  96. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.d.ts +11 -0
  97. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.d.ts.map +1 -0
  98. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogRecurrence.js +12 -0
  99. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.d.ts +11 -0
  100. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.d.ts.map +1 -0
  101. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogSubject.js +12 -0
  102. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.d.ts +11 -0
  103. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.d.ts.map +1 -0
  104. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/DefaultScheduledEmailDialogWidgetAttachments.js +12 -0
  105. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.d.ts +2 -17
  106. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.d.ts.map +1 -1
  107. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/EvaluationModeCheckbox/EvaluationModeCheckbox.js +0 -3
  108. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.d.ts +2 -6
  109. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/MessageForm/MessageForm.d.ts.map +1 -1
  110. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelect.js +1 -1
  111. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/SubjectForm/SubjectForm.d.ts +2 -10
  112. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/SubjectForm/SubjectForm.d.ts.map +1 -1
  113. package/esm/presentation/automations/scheduledEmail/ScheduledEmailManagementDialog.d.ts +4 -0
  114. package/esm/presentation/automations/scheduledEmail/ScheduledEmailManagementDialog.d.ts.map +1 -1
  115. package/esm/presentation/automations/scheduledEmail/ScheduledEmailManagementDialog.js +6 -2
  116. package/esm/presentation/automations/scheduledEmail/blocks/DefaultLoadingScheduledEmailDialog.d.ts.map +1 -0
  117. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.d.ts +16 -0
  118. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.d.ts.map +1 -0
  119. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogDashboardAttachments.js +28 -0
  120. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.d.ts +16 -0
  121. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.d.ts.map +1 -0
  122. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogEvaluationMode.js +28 -0
  123. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.d.ts +15 -0
  124. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.d.ts.map +1 -0
  125. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogMessage.js +27 -0
  126. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.d.ts +16 -0
  127. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.d.ts.map +1 -0
  128. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogRecurrence.js +24 -0
  129. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts +59 -0
  130. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.d.ts.map +1 -0
  131. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogShell.js +195 -0
  132. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.d.ts +16 -0
  133. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.d.ts.map +1 -0
  134. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogSubject.js +29 -0
  135. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.d.ts +16 -0
  136. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.d.ts.map +1 -0
  137. package/esm/presentation/automations/scheduledEmail/blocks/ScheduledEmailDialogWidgetAttachments.js +28 -0
  138. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.d.ts +6 -0
  139. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.d.ts.map +1 -0
  140. package/esm/presentation/automations/scheduledEmail/state/useIsInPlatformChannel.js +13 -0
  141. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.d.ts +73 -0
  142. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.d.ts.map +1 -0
  143. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailDialogFieldProps.js +168 -0
  144. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.d.ts +30 -0
  145. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.d.ts.map +1 -0
  146. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailSubmitOnEnter.js +26 -0
  147. package/esm/presentation/automations/scheduledEmail/types.d.ts +351 -1
  148. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  149. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts +8 -4
  150. package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts.map +1 -1
  151. package/esm/presentation/automations/shared/automationFilters/automationParameters.js +30 -13
  152. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts.map +1 -1
  153. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.js +1 -4
  154. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
  155. package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +12 -7
  156. package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts.map +1 -1
  157. package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.js +3 -1
  158. package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
  159. package/esm/presentation/automations/shared/filters/conversions.js +1 -2
  160. package/esm/presentation/automations/shared/hooks/useWorkspaceUsersSearch.d.ts +51 -0
  161. package/esm/presentation/automations/shared/hooks/useWorkspaceUsersSearch.d.ts.map +1 -0
  162. package/esm/presentation/automations/{scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect → shared/hooks}/useWorkspaceUsersSearch.js +13 -0
  163. package/esm/presentation/dashboard/components/DashboardRenderer.d.ts.map +1 -1
  164. package/esm/presentation/dashboard/components/DashboardRenderer.js +4 -1
  165. package/esm/presentation/dashboard/components/DashboardScreenSizeContext.js +1 -1
  166. package/esm/presentation/dashboard/types.d.ts +32 -2
  167. package/esm/presentation/dashboard/types.d.ts.map +1 -1
  168. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts +6 -2
  169. package/esm/presentation/dashboardContexts/DashboardComponentsContext.d.ts.map +1 -1
  170. package/esm/presentation/dashboardContexts/DashboardComponentsContext.js +3 -0
  171. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.d.ts.map +1 -1
  172. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.js +1 -2
  173. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.d.ts.map +1 -1
  174. package/esm/presentation/filterBar/attributeFilter/AttributeFilterParentFilteringContext.js +1 -2
  175. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +1 -3
  176. package/esm/presentation/filterBar/attributeFilter/useParentFilters.d.ts.map +1 -1
  177. package/esm/presentation/filterBar/attributeFilter/useParentFilters.js +1 -2
  178. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.d.ts.map +1 -1
  179. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.js +12 -8
  180. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +91 -91
  181. package/esm/presentation/widget/insight/ViewModeDashboardInsight/useResolveDashboardInsightProperties.d.ts.map +1 -1
  182. package/esm/presentation/widget/insight/ViewModeDashboardInsight/useResolveDashboardInsightProperties.js +3 -35
  183. package/esm/presentation/widget/insightMenu/types.js +1 -1
  184. package/esm/presentation/widget/richTextMenu/types.d.ts.map +1 -1
  185. package/esm/presentation/widget/richTextMenu/types.js +2 -1
  186. package/esm/presentation/widget/widget/DefaultDashboardWidget.d.ts +2 -1
  187. package/esm/presentation/widget/widget/DefaultDashboardWidget.d.ts.map +1 -1
  188. package/esm/sdk-ui-dashboard.d.ts +1118 -161
  189. package/esm/types.d.ts +59 -3
  190. package/esm/types.d.ts.map +1 -1
  191. package/esm/types.js +2 -4
  192. package/package.json +23 -24
  193. package/styles/scss/dashboard.scss +4 -4
  194. package/esm/converters/filterConverters.d.ts +0 -93
  195. package/esm/converters/filterConverters.d.ts.map +0 -1
  196. package/esm/converters/filterConverters.js +0 -199
  197. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultLoadingAlertingDialog.d.ts.map +0 -1
  198. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultLoadingScheduledEmailDialog.d.ts.map +0 -1
  199. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/useWorkspaceUsersSearch.d.ts +0 -13
  200. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/useWorkspaceUsersSearch.d.ts.map +0 -1
  201. /package/esm/presentation/automations/alerting/{DefaultAlertingDialog → blocks}/DefaultLoadingAlertingDialog.d.ts +0 -0
  202. /package/esm/presentation/automations/alerting/{DefaultAlertingDialog → blocks}/DefaultLoadingAlertingDialog.js +0 -0
  203. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog → blocks}/DefaultLoadingScheduledEmailDialog.d.ts +0 -0
  204. /package/esm/presentation/automations/scheduledEmail/{DefaultScheduledEmailDialog → blocks}/DefaultLoadingScheduledEmailDialog.js +0 -0
@@ -1,9 +1,11 @@
1
1
  // (C) 2021-2026 GoodData Corporation
2
2
  import { call, put, select } from "redux-saga/effects";
3
3
  import { invariant } from "ts-invariant";
4
- import { serializeObjRef, } from "@gooddata/sdk-model";
4
+ import { isInsightWidget, serializeObjRef, } from "@gooddata/sdk-model";
5
5
  import { createExportFunction, prepareGeoInsightForDataExport, prepareGeoLayerInsightsForDataExport, } from "@gooddata/sdk-ui";
6
+ import { getEffectiveConditionalFormatting } from "@gooddata/sdk-ui-ext";
6
7
  import { createExportExecutionDefinition, } from "@gooddata/sdk-ui/internal";
8
+ import { mergeInsightWithWidgetProperties } from "../../../_staging/insight/insightWidgetProperties.js";
7
9
  import { invalidArgumentsProvided } from "../../events/general.js";
8
10
  import { insightWidgetExportRequested, insightWidgetExportResolved, } from "../../events/insight.js";
9
11
  import { selectCatalogAttributes } from "../../store/catalog/catalogSelectors.js";
@@ -12,6 +14,7 @@ import { selectExecutionResultByRef, selectIsExecutionResultExportableToCsvByRef
12
14
  import { selectInsightByWidgetRef } from "../../store/insights/insightsSelectors.js";
13
15
  import { selectEffectiveDashboardTimezone } from "../../store/meta/metaSelectors.js";
14
16
  import { selectPreloadedAttributesWithReferences } from "../../store/tabs/filterContext/filterContextSelectors.js";
17
+ import { selectWidgetByRef } from "../../store/tabs/layout/layoutSelectors.js";
15
18
  async function performExport(ctx, executionResult, config, exportDefinition) {
16
19
  const exportExecutionResult = exportDefinition
17
20
  ? await ctx.backend.workspace(ctx.workspace).execution().forDefinition(exportDefinition).execute()
@@ -66,6 +69,11 @@ export function* exportInsightWidgetHandler(ctx, cmd) {
66
69
  const settings = yield select(selectSettings);
67
70
  const catalogAttributes = yield select(selectCatalogAttributes);
68
71
  const preloadedAttributesWithReferences = yield select(selectPreloadedAttributesWithReferences);
72
+ const widget = yield select(selectWidgetByRef(ref));
73
+ const effectiveInsight = insight && isInsightWidget(widget) ? mergeInsightWithWidgetProperties(insight, widget) : insight;
74
+ const conditionalFormatting = effectiveInsight
75
+ ? getEffectiveConditionalFormatting(effectiveInsight, settings)
76
+ : undefined;
69
77
  const buildLayerDefinition = (tableInsight, definitionOptions) => createExportExecutionDefinition(tableInsight, ctx.workspace, executionResult.definition, definitionOptions);
70
78
  // Per-layer export is defined for XLSX (sheet per layer) and CSV (zipped file per layer) only;
71
79
  // other formats (PDF) keep the original single-execution behavior.
@@ -89,7 +97,12 @@ export function* exportInsightWidgetHandler(ctx, cmd) {
89
97
  includeInsightFilters: true,
90
98
  attributeLocalIdMapping: layer.attributeLocalIdMapping,
91
99
  }),
92
- })), { ...config, timeout, timezoneId }));
100
+ })), {
101
+ ...config,
102
+ timeout,
103
+ timezoneId,
104
+ ...(conditionalFormatting ? { conditionalFormatting } : {}),
105
+ }));
93
106
  }
94
107
  else {
95
108
  const exportInsight = insight
@@ -100,7 +113,12 @@ export function* exportInsightWidgetHandler(ctx, cmd) {
100
113
  }) ?? insight)
101
114
  : undefined;
102
115
  const exportDefinition = exportInsight && exportInsight !== insight ? buildLayerDefinition(exportInsight) : undefined;
103
- result = (yield call(performExport, ctx, executionResult, { ...config, timeout, timezoneId }, exportDefinition));
116
+ result = (yield call(performExport, ctx, executionResult, {
117
+ ...config,
118
+ timeout,
119
+ timezoneId,
120
+ ...(conditionalFormatting ? { conditionalFormatting } : {}),
121
+ }, exportDefinition));
104
122
  }
105
123
  // prepend hostname if provided so that the results are downloaded from there, not from where the app is hosted
106
124
  const fullUri = ctx.backend.config.hostname
@@ -1,9 +1,8 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
2
  import { call, select } from "redux-saga/effects";
3
3
  import { invariant } from "ts-invariant";
4
- import { defWithDimensions, defaultDimensionsGenerator, insightRef, newDefForInsight, } from "@gooddata/sdk-model";
4
+ import { defWithDimensions, defaultDimensionsGenerator, filterContextItemsToDashboardFiltersByWidget, insightRef, newDefForInsight, } from "@gooddata/sdk-model";
5
5
  import { fillMissingTitles, resolveDefaultDisplayFormRefForDisplayForm } from "@gooddata/sdk-ui";
6
- import { filterContextItemsToDashboardFiltersByWidget } from "../../../converters/filterConverters.js";
7
6
  import { insightWidgetExportResolved, } from "../../events/insight.js";
8
7
  import { selectCatalogAttributes } from "../../store/catalog/catalogSelectors.js";
9
8
  import { selectExportResultPollingTimeout, selectLocale, selectSettings, } from "../../store/config/configSelectors.js";
@@ -510,7 +510,7 @@ export declare function changeWorkingAttributeFilterSelection(filterLocalId: str
510
510
  * The {@link ChangeAttributeFilterSelectionPayload}'s `selectionType` and `elements` are derived from the
511
511
  * provided attribute filter.
512
512
  *
513
- * To convert {@link IDashboardFilter} to {@link @gooddata/sdk-model#IFilter} use {@link dashboardAttributeFilterToAttributeFilter}.
513
+ * To convert {@link IDashboardFilter} to {@link @gooddata/sdk-model#IFilter} use {@link @gooddata/sdk-model#dashboardAttributeFilterToAttributeFilter}.
514
514
  * Converted filter can be used within the command's payload.
515
515
  *
516
516
  * @param filterLocalId - dashboard attribute filter's local id
@@ -378,7 +378,7 @@ export function changeWorkingAttributeFilterSelection(filterLocalId, elements, s
378
378
  * The {@link ChangeAttributeFilterSelectionPayload}'s `selectionType` and `elements` are derived from the
379
379
  * provided attribute filter.
380
380
  *
381
- * To convert {@link IDashboardFilter} to {@link @gooddata/sdk-model#IFilter} use {@link dashboardAttributeFilterToAttributeFilter}.
381
+ * To convert {@link IDashboardFilter} to {@link @gooddata/sdk-model#IFilter} use {@link @gooddata/sdk-model#dashboardAttributeFilterToAttributeFilter}.
382
382
  * Converted filter can be used within the command's payload.
383
383
  *
384
384
  * @param filterLocalId - dashboard attribute filter's local id
@@ -6,7 +6,7 @@ import { type DashboardEventBody, type IDashboardEvent } from "./base.js";
6
6
  *
7
7
  * @remarks
8
8
  *
9
- * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors
9
+ * See also {@link @gooddata/sdk-model#dashboardDateFilterToDateFilterByWidget} and {@link @gooddata/sdk-model#dashboardDateFilterToDateFilterByDateDataSet} convertors
10
10
  * – those allow you to convert the `filter` object to an {@link @gooddata/sdk-model#IDateFilter} instance you can use
11
11
  * with visualizations, filter UI components and so on.
12
12
  *
@@ -27,7 +27,7 @@ export type DashboardDateFilterSelectionChangedPayload = {
27
27
  *
28
28
  * @remarks
29
29
  *
30
- * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors
30
+ * See also {@link @gooddata/sdk-model#dashboardDateFilterToDateFilterByWidget} and {@link @gooddata/sdk-model#dashboardDateFilterToDateFilterByDateDataSet} convertors
31
31
  * – those allow you to convert the `filter` in the event payload to an {@link @gooddata/sdk-model#IDateFilter} instance you can use
32
32
  * with visualizations, filter UI components and so on.
33
33
  *
@@ -157,7 +157,7 @@ export declare const isDashboardAttributeFilterMoved: (obj: unknown) => obj is I
157
157
  *
158
158
  * @remarks
159
159
  *
160
- * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
160
+ * See also {@link @gooddata/sdk-model#dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
161
161
  * object to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations,
162
162
  * filter UI components and so on.
163
163
  *
@@ -176,7 +176,7 @@ export type DashboardAttributeFilterSelectionChangedPayload = {
176
176
  *
177
177
  * @remarks
178
178
  *
179
- * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
179
+ * See also {@link @gooddata/sdk-model#dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
180
180
  * in the event payload to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations,
181
181
  * filter UI components and so on.
182
182
  *
@@ -427,7 +427,7 @@ export declare const isDashboardAttributeFilterConfigLimitingItemsChanged: (obj:
427
427
  *
428
428
  * @remarks
429
429
  *
430
- * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors
430
+ * See also {@link @gooddata/sdk-model#filterContextToDashboardFiltersByWidget} and {@link @gooddata/sdk-model#filterContextToDashboardFiltersByDateDataSet} convertors
431
431
  * – those allow you to convert the `filterContext` object to array of {@link @gooddata/sdk-model#IFilter} instances you can use
432
432
  * with visualizations, filter UI components and so on.
433
433
  *
@@ -458,7 +458,7 @@ export type DashboardFilterContextChangedPayload = {
458
458
  * This event is emitted as convenience - more granular events describe all the possible
459
459
  * changes to the dashboard filters and can be used to even source the state of filter context.
460
460
  *
461
- * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors
461
+ * See also {@link @gooddata/sdk-model#filterContextToDashboardFiltersByWidget} and {@link @gooddata/sdk-model#filterContextToDashboardFiltersByDateDataSet} convertors
462
462
  * – those allow you to convert the `filterContext` in the event payload to array of {@link @gooddata/sdk-model#IFilter} instances you can use
463
463
  * with visualizations, filter UI components and so on.
464
464
  *
@@ -1 +1 @@
1
- {"version":3,"file":"layoutSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/layout/layoutSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACX,KAAK,UAAU,EASlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,4CAA4C,CAAC;AAEzG,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5G,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAGrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,KAAK,gBAAgB,EAAiC,MAAM,8BAA8B,CAAC;AAMpG,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAqB,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAa3F;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAC7C,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAAC,CAWvE,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAavD,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAKtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,CAGlG,CAAC;AAEP;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAOrF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAKlE,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,kFA2BlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAG1E,CAAC;AA6BF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,uBAAuB,EAAE,CAGtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAKlF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,CASzD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,OAAO,GAAG,aAAa,GAAG,SAAS,CAYzD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAczC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4CAA4C,EAAE,CACvD,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,mBAAmB,EAAE,CAE3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4CAA4C,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAMjG,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,uBAAuB,EAAE,GAAG,sBAAsB,EAAE,GAAG,eAAe,EAAE,CAG1F,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,CACzC,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAqD7D,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAK1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,UAAU,EAAE,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,EAAE,CAKhF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,uBAAuB,EAAE,CAK/E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,OAAO,EAAE,CAKnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAKvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,eAAe,CAOhF,CAAC;AAEP;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,kBAAkB,CAO1F,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,CAK1F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,eAAe,GAAG,SAAS,CAMtF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,SAAS,CAI3F,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,CAG5F,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,eAAe,GAAG,SAAS,CAGxF,CAAC;AAEP;;;;;;;GAOG;AACH,eAAO,MAAM,yCAAyC,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,SAAS,CAIlG,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,CAGxF,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,eAAe,GAAG,SAAS,CAMzF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,SAAS,CAI9F,CAAC;AAEP;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,OAAO,CAKpF,CAAC;AAEN;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAC/D,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAkB9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,CACY,CAAC;AAE1G;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,IAAI,wBAAwB,CAEzG;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAkBxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsBnF,CAAC"}
1
+ {"version":3,"file":"layoutSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/layout/layoutSelectors.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,8 @@
2
2
  import { createSelector } from "@reduxjs/toolkit";
3
3
  import { isEmpty, partition } from "lodash-es";
4
4
  import { invariant } from "ts-invariant";
5
- import { dashboardAttributeFilterItemLocalIdentifier, isDashboardAttributeFilterItem, isDashboardCommonDateFilter, isDashboardLayout, isInsightWidget, isKpiWidget, isVisualizationSwitcherWidget, objRefToString, } from "@gooddata/sdk-model";
5
+ import { dashboardAttributeFilterItemLocalIdentifier, filterContextItemsToDashboardFiltersByWidget, isDashboardAttributeFilterItem, isDashboardCommonDateFilter, isDashboardLayout, isInsightWidget, isKpiWidget, isVisualizationSwitcherWidget, objRefToString, } from "@gooddata/sdk-model";
6
6
  import { newMapForObjectWithIdentity } from "../../../../_staging/metadata/objRefMap.js";
7
- import { filterContextItemsToDashboardFiltersByWidget } from "../../../../converters/filterConverters.js";
8
7
  import { isInsightPlaceholderWidget, isKpiPlaceholderWidget, isPlaceholderWidget, } from "../../../../widgets/placeholders/types.js";
9
8
  import { isCustomWidget, isExtendedDashboardLayoutWidget, } from "../../../types/layoutTypes.js";
10
9
  import { createMemoizedSelector } from "../../_infra/selectors.js";
@@ -1,6 +1,4 @@
1
- import { type IDashboardExportParameter, type IDashboardParameter, type IDashboardTab, type IInsight, type IInsightDefinition, type IInsightParameterValue, type IParameterDefinition, type IParameterMetadataObject, type IdentifierRef, type ObjRef, type ParameterValue } from "@gooddata/sdk-model";
2
- import { type ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
3
- import { type IInsightWidgetTabContext } from "../layout/layoutSelectors.js";
1
+ import { type IDashboardExportParameter, type IDashboardParameter, type IDashboardTab, type IInsightDefinition, type IInsightParameterValue, type IParameterDefinition, type IParameterMetadataObject, type IdentifierRef, type ObjRef, type ParameterValue } from "@gooddata/sdk-model";
4
2
  import { type ITabState } from "../tabsState.js";
5
3
  import { type IDashboardParameterEntry } from "./parametersState.js";
6
4
  /**
@@ -107,6 +105,12 @@ export declare function isGatedStringEntry(entry: IDashboardParameterEntry, isSt
107
105
  * @internal
108
106
  */
109
107
  export declare function isGatedStringValue(value: ParameterValue, isStringEnabled: boolean): boolean;
108
+ /**
109
+ * The tab's parameter entries without the gated-off STRING entries.
110
+ *
111
+ * @internal
112
+ */
113
+ export declare function ungatedTabEntries(tab: ITabState, isStringEnabled: boolean): IDashboardParameterEntry[];
110
114
  /**
111
115
  * The insight-authored parameter values that pass the string gate — the single home of
112
116
  * insight-level gating for both the widget-execution hook path and the selector path.
@@ -196,27 +200,11 @@ export declare function computeParameterResetTargets(entries: IDashboardParamete
196
200
  value: ParameterValue | undefined;
197
201
  }[];
198
202
  /**
199
- * Folds per-tab ref selections into the wire shape, dropping entries without a
200
- * `runtimeOverride`. Each selection pairs a tab with an optional ref restriction:
201
- * `allowedRefs === undefined` selects all refs (whole-dashboard scope); a defined set restricts
202
- * entries to those refs (widget scope). Tabs that yield no rows are omitted from the result.
203
+ * Folds the parameter entries of the given tabs into the wire shape, dropping entries without a
204
+ * `runtimeOverride`. Tabs that yield no rows are omitted from the result.
203
205
  *
204
206
  * @internal
205
207
  */
206
- export declare function collectExportOverrides(tabRefSelections: ReadonlyArray<{
207
- tab: ITabState;
208
- allowedRefs?: Set<string>;
209
- }>, workspaceParameterByRef: Map<string, IParameterMetadataObject>, isStringEnabled: boolean): Record<string, IDashboardExportParameter[]>;
210
- /**
211
- * Builds per-tab ref selections for a widget-scope export: each widget's owning tab is restricted
212
- * to refs referenced by the widget's insight metrics. Multiple widgets on the same tab union their
213
- * refs.
214
- *
215
- * @internal
216
- */
217
- export declare function buildWidgetScopeTabRefSelections(widgetContexts: ReadonlyArray<IInsightWidgetTabContext>, widgetIds: ReadonlyArray<string>, insights: ObjRefMap<IInsight>, measureParameters: Record<string, IdentifierRef[]>): {
218
- tab: ITabState;
219
- allowedRefs: Set<string>;
220
- }[];
208
+ export declare function collectExportOverrides(tabs: ReadonlyArray<ITabState>, workspaceParameterByRef: Map<string, IParameterMetadataObject>, isStringEnabled: boolean): Record<string, IDashboardExportParameter[]>;
221
209
  export {};
222
210
  //# sourceMappingURL=parametersHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parametersHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parametersHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,cAAc,EAOtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAI9B;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAM,CAAC;AAE9F;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,GACnD,aAAa,EAAE,CAmBjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,wBAAwB,EAAE,EACnC,cAAc,EAAE,aAAa,EAAE,EAC/B,sBAAsB,EAAE,sBAAsB,EAAE,EAChD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAC/D,sBAAsB,EAAE,CAkC1B;AAED,UAAU,2BAA2B;IACjC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC/D,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CACrD,OAAO,EAAE,2BAA2B,GAAG,SAAS,EAChD,OAAO,EAAE,kBAAkB,GAC5B,sBAAsB,EAAE,CAW1B;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,mBAAmB,EAC9B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,cAAc,GAAG,SAAS,CAK5B;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACvC,SAAS,EAAE,mBAAmB,EAC9B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,oBAAoB,GAAG,SAAS,CAGlC;AAmBD;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC3C,kBAAkB,EAAE,mBAAmB,EACvC,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,uBAAuB,GAAG,SAAS,CAcrC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,wBAAwB,EAAE,EACnC,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,6BAA6B,EAAE,CAsBjC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAErG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAE3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,GAAG,wBAAwB,EAAE,CAItG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,OAAO,GACzB,sBAAsB,EAAE,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CACzC,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAEvC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,wBAAwB,GAAG,cAAc,GAAG,SAAS,CAE3F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAEzF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAEzF;AAYD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,wBAAwB,EAC/B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,yBAAyB,GAAG,SAAS,CAWvC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,wBAAwB,EAC/B,kBAAkB,EAAE,wBAAwB,GAC7C,mBAAmB,CAYrB;AAYD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,EAC3C,uBAAuB,EAAE,mBAAmB,EAAE,GAC/C,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAW/C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,wBAAwB,EAC/B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,EACxD,YAAY,EAAE,OAAO,GACtB,cAAc,GAAG,SAAS,CAc5B;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CACxC,OAAO,EAAE,wBAAwB,EAAE,EACnC,mBAAmB,EAAE,wBAAwB,EAAE,EAC/C,YAAY,EAAE,OAAO,GACtB;IAAE,GAAG,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAAA;CAAE,EAAE,CAsB5F;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,EAC9B,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAC9D,eAAe,EAAE,OAAO,GACzB,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAS7C"}
@@ -196,6 +196,14 @@ export function isGatedStringEntry(entry, isStringEnabled) {
196
196
  export function isGatedStringValue(value, isStringEnabled) {
197
197
  return typeof value === "string" && !isStringEnabled;
198
198
  }
199
+ /**
200
+ * The tab's parameter entries without the gated-off STRING entries.
201
+ *
202
+ * @internal
203
+ */
204
+ export function ungatedTabEntries(tab, isStringEnabled) {
205
+ return (tab.parameters?.parameters ?? parametersInitialState.parameters).filter((entry) => !isGatedStringEntry(entry, isStringEnabled));
206
+ }
199
207
  /**
200
208
  * The insight-authored parameter values that pass the string gate — the single home of
201
209
  * insight-level gating for both the widget-execution hook path and the selector path.
@@ -371,58 +379,21 @@ export function computeParameterResetTargets(entries, workspaceParameters, isInE
371
379
  return result;
372
380
  }
373
381
  /**
374
- * Folds per-tab ref selections into the wire shape, dropping entries without a
375
- * `runtimeOverride`. Each selection pairs a tab with an optional ref restriction:
376
- * `allowedRefs === undefined` selects all refs (whole-dashboard scope); a defined set restricts
377
- * entries to those refs (widget scope). Tabs that yield no rows are omitted from the result.
382
+ * Folds the parameter entries of the given tabs into the wire shape, dropping entries without a
383
+ * `runtimeOverride`. Tabs that yield no rows are omitted from the result.
378
384
  *
379
385
  * @internal
380
386
  */
381
- export function collectExportOverrides(tabRefSelections, workspaceParameterByRef, isStringEnabled) {
387
+ export function collectExportOverrides(tabs, workspaceParameterByRef, isStringEnabled) {
382
388
  const result = {};
383
- for (const { tab, allowedRefs } of tabRefSelections) {
384
- const entries = (tab.parameters?.parameters ?? parametersInitialState.parameters).filter((entry) => !isGatedStringEntry(entry, isStringEnabled));
385
- const scoped = allowedRefs
386
- ? entries.filter((entry) => allowedRefs.has(objRefToString(entry.parameter.ref)))
387
- : entries;
388
- const rows = formatEntries(scoped, workspaceParameterByRef);
389
+ for (const tab of tabs) {
390
+ const rows = formatEntries(ungatedTabEntries(tab, isStringEnabled), workspaceParameterByRef);
389
391
  if (rows.length > 0) {
390
392
  result[tab.localIdentifier] = rows;
391
393
  }
392
394
  }
393
395
  return Object.keys(result).length === 0 ? EMPTY_EXPORT_PARAMETERS_BY_TAB : result;
394
396
  }
395
- /**
396
- * Builds per-tab ref selections for a widget-scope export: each widget's owning tab is restricted
397
- * to refs referenced by the widget's insight metrics. Multiple widgets on the same tab union their
398
- * refs.
399
- *
400
- * @internal
401
- */
402
- export function buildWidgetScopeTabRefSelections(widgetContexts, widgetIds, insights, measureParameters) {
403
- const byTab = new Map();
404
- for (const widgetId of widgetIds) {
405
- const context = widgetContexts.find((ctx) => ctx.widget.identifier === widgetId);
406
- if (!context) {
407
- continue;
408
- }
409
- const insight = insights.get(context.widget.insight);
410
- if (!insight) {
411
- continue;
412
- }
413
- const referencedRefs = collectReferencedParameterRefs(insight, measureParameters);
414
- if (referencedRefs.length === 0) {
415
- continue;
416
- }
417
- const tabId = context.tab.localIdentifier;
418
- const existing = byTab.get(tabId) ?? { tab: context.tab, allowedRefs: new Set() };
419
- for (const ref of referencedRefs) {
420
- existing.allowedRefs.add(objRefToString(ref));
421
- }
422
- byTab.set(tabId, existing);
423
- }
424
- return [...byTab.values()];
425
- }
426
397
  function formatEntries(entries, workspaceParameterByRef) {
427
398
  const rows = [];
428
399
  for (const entry of entries) {
@@ -183,23 +183,21 @@ export declare const selectReferencedInsightParameterValuesForWidget: (ref: ObjR
183
183
  */
184
184
  export declare const selectEffectiveDashboardParametersForWidget: (ref: ObjRef | undefined) => DashboardSelector<IDashboardParameter[]>;
185
185
  /**
186
- * Returns the per-tab parameter overrides to send on dashboard tabular export, keyed by
187
- * tab `localIdentifier`. The shape matches the backend's `dashboardTabsParametersOverrides`
186
+ * Returns the per-tab parameter overrides to send on dashboard export, keyed by tab
187
+ * `localIdentifier`. The shape matches the backend's `dashboardTabsParametersOverrides`
188
188
  * field directly.
189
189
  *
190
190
  * @remarks
191
- * Scope rules:
192
- * - When `widgetIds` is empty/undefined (whole-dashboard export), every tab in scope contributes
193
- * parameter entries with a `runtimeOverride`.
194
- * - When `widgetIds` is non-empty, each widget's owning tab contributes only entries with a
195
- * `runtimeOverride` whose ref is referenced by the widget's insight metrics via the dashboard-wide
196
- * metric → parameter dependency map. Multi-widget across distinct owning tabs yields one
197
- * map entry per owning tab; entries for the same tab are unioned and deduplicated by ref.
191
+ * The request sends every `runtimeOverride` entry of each tab in scope; the query drops the
192
+ * parameters a widget's metrics do not use.
193
+ * - When `widgetIds` is empty/undefined (whole-dashboard export), every tab is in scope.
194
+ * - When `widgetIds` is non-empty, only the owning tabs of those widgets are in scope. Send only
195
+ * these tabs. A non-empty map tells the backend that the map is complete, and the backend then
196
+ * does not resolve pinned values for any tab.
198
197
  *
199
198
  * Returns `{}` (signalling "omit the field on the wire") when:
200
199
  * - `enableParameters` is off,
201
200
  * - the workspace catalog parameters are not loaded,
202
- * - (widget scope only) the `measureParameters` dependency map is not loaded,
203
201
  * - or no in-scope parameter has a `runtimeOverride`.
204
202
  *
205
203
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { createSelector } from "@reduxjs/toolkit";
3
- import { isEqual } from "lodash-es";
3
+ import { isEqual, uniq } from "lodash-es";
4
4
  import { areObjRefsEqual, objRefToString, } from "@gooddata/sdk-model";
5
5
  import { createMemoizedSelector } from "../../_infra/selectors.js";
6
6
  import { selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, selectCatalogParameterByRef, selectCatalogParameters, selectCatalogParametersIsLoaded, } from "../../catalog/catalogSelectors.js";
7
7
  import { selectEnableParameters, selectEnableStringParameters } from "../../config/configSelectors.js";
8
8
  import { selectInsightsMap } from "../../insights/insightsSelectors.js";
9
9
  import { selectIsInEditMode } from "../../renderMode/renderModeSelectors.js";
10
- import { selectAllTabsInsightWidgetContexts } from "../layout/layoutSelectors.js";
10
+ import { selectAllTabsInsightWidgetContexts, selectAllTabsWidgetContexts, } from "../layout/layoutSelectors.js";
11
11
  import { selectActiveOrDefaultTabLocalIdentifier, selectActiveTab, selectTabs } from "../tabsSelectors.js";
12
12
  import { DEFAULT_TAB_ID } from "../tabsState.js";
13
- import { EMPTY_EXPORT_PARAMETERS_BY_TAB, applyDisplayOverride, applyRuntimeOverride, buildPersistedByTabAndRef, buildWidgetScopeTabRefSelections, buildWorkspaceParametersByRef, classifyParameterReconciliation, collectExportOverrides, collectParameterReconciliations, collectReferencedParameterRefs, computeParameterResetTargets, computeParameterResetValue, displayOverride, isGatedStringEntry, resolveEffectiveParameterValuesForRefs, smartPersistResolvedEntry, ungatedInsightParameterValues, } from "./parametersHelpers.js";
13
+ import { EMPTY_EXPORT_PARAMETERS_BY_TAB, applyDisplayOverride, applyRuntimeOverride, buildPersistedByTabAndRef, buildWorkspaceParametersByRef, classifyParameterReconciliation, collectExportOverrides, collectParameterReconciliations, collectReferencedParameterRefs, computeParameterResetTargets, computeParameterResetValue, displayOverride, isGatedStringEntry, resolveEffectiveParameterValuesForRefs, smartPersistResolvedEntry, ungatedInsightParameterValues, ungatedTabEntries, } from "./parametersHelpers.js";
14
14
  import { parametersInitialState, pickTabParametersSource, } from "./parametersState.js";
15
15
  const EMPTY_PARAMETERS = [];
16
16
  const EMPTY_EXPORT_PARAMETERS = [];
@@ -222,9 +222,7 @@ export const selectParameterReconciliations = createSelector(selectTabs, selectC
222
222
  if (!isEnabled || !isCatalogLoaded || !tabs) {
223
223
  return EMPTY_RECONCILIATIONS;
224
224
  }
225
- const entries = tabs
226
- .flatMap((tab) => tab.parameters?.parameters ?? [])
227
- .filter((entry) => !isGatedStringEntry(entry, isStringEnabled));
225
+ const entries = tabs.flatMap((tab) => ungatedTabEntries(tab, isStringEnabled));
228
226
  const result = collectParameterReconciliations(entries, workspaceParameters);
229
227
  return result.length === 0 ? EMPTY_RECONCILIATIONS : result;
230
228
  });
@@ -254,9 +252,8 @@ export const selectWidgetParameterContext = createMemoizedSelector((ref) => crea
254
252
  if (!context) {
255
253
  return undefined;
256
254
  }
257
- const entries = (context.tab.parameters?.parameters ?? parametersInitialState.parameters).filter((entry) => !isGatedStringEntry(entry, isStringEnabled));
258
255
  return {
259
- entries,
256
+ entries: ungatedTabEntries(context.tab, isStringEnabled),
260
257
  measureParameters,
261
258
  workspaceParameterByRef,
262
259
  widgetInsightRef: context.widget.insight,
@@ -337,46 +334,39 @@ export const selectEffectiveDashboardParametersForWidget = createMemoizedSelecto
337
334
  return (owningTabEntries ?? parametersInitialState.parameters).map(applyRuntimeOverride);
338
335
  }));
339
336
  /**
340
- * Returns the per-tab parameter overrides to send on dashboard tabular export, keyed by
341
- * tab `localIdentifier`. The shape matches the backend's `dashboardTabsParametersOverrides`
337
+ * Returns the per-tab parameter overrides to send on dashboard export, keyed by tab
338
+ * `localIdentifier`. The shape matches the backend's `dashboardTabsParametersOverrides`
342
339
  * field directly.
343
340
  *
344
341
  * @remarks
345
- * Scope rules:
346
- * - When `widgetIds` is empty/undefined (whole-dashboard export), every tab in scope contributes
347
- * parameter entries with a `runtimeOverride`.
348
- * - When `widgetIds` is non-empty, each widget's owning tab contributes only entries with a
349
- * `runtimeOverride` whose ref is referenced by the widget's insight metrics via the dashboard-wide
350
- * metric → parameter dependency map. Multi-widget across distinct owning tabs yields one
351
- * map entry per owning tab; entries for the same tab are unioned and deduplicated by ref.
342
+ * The request sends every `runtimeOverride` entry of each tab in scope; the query drops the
343
+ * parameters a widget's metrics do not use.
344
+ * - When `widgetIds` is empty/undefined (whole-dashboard export), every tab is in scope.
345
+ * - When `widgetIds` is non-empty, only the owning tabs of those widgets are in scope. Send only
346
+ * these tabs. A non-empty map tells the backend that the map is complete, and the backend then
347
+ * does not resolve pinned values for any tab.
352
348
  *
353
349
  * Returns `{}` (signalling "omit the field on the wire") when:
354
350
  * - `enableParameters` is off,
355
351
  * - the workspace catalog parameters are not loaded,
356
- * - (widget scope only) the `measureParameters` dependency map is not loaded,
357
352
  * - or no in-scope parameter has a `runtimeOverride`.
358
353
  *
359
354
  * @alpha
360
355
  */
361
- export const selectExportEffectiveParameters = (widgetIds) => widgetIds?.length
362
- ? selectExportEffectiveParametersForWidgets(widgetIds)
363
- : selectExportEffectiveParametersDashboardScope;
364
- const selectExportEffectiveParametersDashboardScope = createSelector(selectTabs, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, (tabs, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded) => {
365
- if (!isEnabled || !isCatalogLoaded || !tabs?.length) {
356
+ export const selectExportEffectiveParameters = createMemoizedSelector((widgetIds) => createSelector(selectTabs, selectAllTabsWidgetContexts, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, (tabs, widgetContexts, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded) => {
357
+ if (!isEnabled || !isCatalogLoaded) {
366
358
  return EMPTY_EXPORT_PARAMETERS_BY_TAB;
367
359
  }
368
- return collectExportOverrides(tabs.map((tab) => ({ tab })), workspaceParameterByRef, isStringEnabled);
369
- });
370
- const selectExportEffectiveParametersForWidgets = createMemoizedSelector((widgetIds) => createSelector(selectAllTabsInsightWidgetContexts, selectInsightsMap, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, (widgetContexts, insights, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded, measureParameters, measureParametersStatus) => {
371
- if (!isEnabled || !isCatalogLoaded || measureParametersStatus !== "loaded") {
372
- return EMPTY_EXPORT_PARAMETERS_BY_TAB;
373
- }
374
- const tabRefSelections = buildWidgetScopeTabRefSelections(widgetContexts, widgetIds, insights, measureParameters);
375
- return collectExportOverrides(tabRefSelections, workspaceParameterByRef, isStringEnabled);
360
+ const scopedTabs = widgetIds?.length
361
+ ? uniq(widgetContexts
362
+ .filter((ctx) => widgetIds.includes(ctx.widget.identifier))
363
+ .map((ctx) => ctx.tab))
364
+ : (tabs ?? []);
365
+ return collectExportOverrides(scopedTabs, workspaceParameterByRef, isStringEnabled);
376
366
  }));
377
367
  /**
378
368
  * Active-tab slice of {@link selectExportEffectiveParameters}.
379
369
  *
380
370
  * @internal
381
371
  */
382
- export const selectActiveTabExportParameters = createSelector(selectExportEffectiveParametersDashboardScope, selectActiveOrDefaultTabLocalIdentifier, (parametersByTab, activeTabId) => parametersByTab[activeTabId] ?? EMPTY_EXPORT_PARAMETERS);
372
+ export const selectActiveTabExportParameters = createSelector(selectExportEffectiveParameters(undefined), selectActiveOrDefaultTabLocalIdentifier, (parametersByTab, activeTabId) => parametersByTab[activeTabId] ?? EMPTY_EXPORT_PARAMETERS);
@@ -1,6 +1,10 @@
1
1
  import { type ReactElement } from "react";
2
2
  import { type IAlertingManagementDialogProps } from "./types.js";
3
3
  /**
4
+ * Resolves the management dialog component from DashboardComponentsContext and mounts it inside
5
+ * the resolved context decorator — so a decorated management context is what the dialog (default
6
+ * or replacement) reads.
7
+ *
4
8
  * @internal
5
9
  */
6
10
  export declare function AlertingManagementDialog(props: IAlertingManagementDialogProps): ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"AlertingManagementDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/AlertingManagementDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,CAI5F"}
1
+ {"version":3,"file":"AlertingManagementDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/AlertingManagementDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,CAS5F"}
@@ -1,9 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useDashboardComponentsContext } from "../../dashboardContexts/DashboardComponentsContext.js";
3
3
  /**
4
+ * Resolves the management dialog component from DashboardComponentsContext and mounts it inside
5
+ * the resolved context decorator — so a decorated management context is what the dialog (default
6
+ * or replacement) reads.
7
+ *
4
8
  * @internal
5
9
  */
6
10
  export function AlertingManagementDialog(props) {
7
- const { AlertingManagementDialogComponent } = useDashboardComponentsContext();
8
- return _jsx(AlertingManagementDialogComponent, { ...props });
11
+ const { AlertingManagementDialogComponent, AlertingManagementDialogContextDecoratorComponent } = useDashboardComponentsContext();
12
+ return (_jsx(AlertingManagementDialogContextDecoratorComponent, { children: _jsx(AlertingManagementDialogComponent, { ...props }) }));
9
13
  }
@@ -1,5 +1,5 @@
1
+ import { type ReactElement } from "react";
1
2
  import { type IDefaultAlertingDialogProps } from "../types.js";
2
- export declare function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDeleteError, onError, onSuccess, onSaveError, onSaveSuccess, slots, topContent, bottomContent }: IDefaultAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
3
3
  /**
4
4
  * Default implementation of the alerting create/edit dialog.
5
5
  *
@@ -17,25 +17,25 @@ export declare function AlertingDialogRenderer({ onCancel, onDeleteSuccess, onDe
17
17
  * that is what lets a wholesale replacement receive the same contexts. Rendering this component
18
18
  * outside those providers throws at runtime.
19
19
  *
20
- * The dialog is composed from the exported region renders — {@link DefaultAlertingDialogHeader},
21
- * {@link DefaultAlertingDialogFilters}, {@link DefaultAlertingDialogDestination},
22
- * {@link DefaultAlertingDialogRecipients}, {@link DefaultAutomationDialogActionBar} — fed by the
23
- * matching `use*Props` hooks ({@link useAlertingDialogFiltersProps} and siblings), and from the
24
- * connected field blocks — {@link AlertingDialogMeasure}, {@link AlertingDialogAttribute},
25
- * {@link AlertingDialogComparisonOperator}, {@link AlertingDialogThreshold},
26
- * {@link AlertingDialogComparisonPeriod}, {@link AlertingDialogSensitivity},
27
- * {@link AlertingDialogGranularity}, {@link AlertingDialogTriggerMode},
28
- * {@link AlertingDialogTriggerInterval} — each a labelled {@link AutomationDialogFormField} row; the
29
- * conditional ones (Attribute, Threshold, ComparisonPeriod, Sensitivity, Granularity, TriggerInterval)
30
- * gate themselves on the draft. A custom `AlertingDialogComponent` that keeps our regions and fields
31
- * but owns the markup places the connected blocks ({@link AlertingDialogFilters},
32
- * {@link AlertingDialogThreshold} and siblings) instead of this component, and reads or writes the
33
- * same draft through {@link useAlertDraft} and {@link useAlertActions}.
20
+ * The dialog is {@link AlertingDialogShell} — the chrome: overlay, frame, header row, action bar, the
21
+ * dialog's messages, the stale-filters and delete confirmation steps, the loading skeleton — around the
22
+ * exported region renders ({@link DefaultAlertingDialogFilters}, {@link DefaultAlertingDialogDestination},
23
+ * {@link DefaultAlertingDialogRecipients}, fed by {@link useAlertingDialogFiltersProps} and siblings; the
24
+ * header and action bar are the shell's) and the connected field blocks — {@link AlertingDialogMeasure},
25
+ * {@link AlertingDialogAttribute}, {@link AlertingDialogComparisonOperator}, {@link AlertingDialogThreshold},
26
+ * {@link AlertingDialogComparisonPeriod}, {@link AlertingDialogSensitivity}, {@link AlertingDialogGranularity},
27
+ * {@link AlertingDialogTriggerMode}, {@link AlertingDialogTriggerInterval} — grouped under the "When" and
28
+ * "Do" headings by {@link AlertingDialogFormFieldGroup}; each field is a labelled
29
+ * {@link AutomationDialogFormField} row and the conditional ones gate themselves on the draft. A custom
30
+ * `AlertingDialogComponent` that keeps this chrome but owns the arrangement renders
31
+ * {@link AlertingDialogShell} around the blocks it wants (see its example); one that owns the chrome too
32
+ * places the blocks in its own markup and reads or writes the same draft through {@link useAlertDraft} and
33
+ * {@link useAlertActions}.
34
34
  *
35
35
  * Slots render only in the fully rendered dialog: not while the dialog context reports loading,
36
36
  * and not while the stale-filters confirmation step is shown.
37
37
  *
38
38
  * @alpha
39
39
  */
40
- export declare function DefaultAlertingDialog(props: IDefaultAlertingDialogProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function DefaultAlertingDialog(props: IDefaultAlertingDialogProps): ReactElement;
41
41
  //# sourceMappingURL=DefaultAlertingDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAsDA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAW/D,wBAAgB,sBAAsB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,KAAK,EACL,UAAU,EACV,aAAa,EAChB,EAAE,2BAA2B,2CAiO7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,2CAcvE"}
1
+ {"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AA2B1C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,GAAG,YAAY,CActF"}