@gooddata/sdk-ui-dashboard 11.48.0-alpha.1 → 11.48.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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/automation/index.d.ts +7 -9
- package/esm/_staging/automation/index.d.ts.map +1 -1
- package/esm/_staging/automation/index.js +22 -12
- package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts +10 -3
- package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/automationParametersRestore.js +5 -4
- package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/createScheduledEmailHandler.js +11 -2
- package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts +9 -1
- package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/csvRawExecutionDefinition.js +4 -4
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/initializeAutomationsHandler.js +9 -2
- package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/scheduledEmail/saveScheduledEmailHandler.js +11 -2
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/widgets/exportInsightWidgetHandler.js +47 -13
- package/esm/model/react/useExportTemplates.d.ts +7 -2
- package/esm/model/react/useExportTemplates.d.ts.map +1 -1
- package/esm/model/react/useExportTemplates.js +50 -6
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts +1 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersHelpers.js +10 -11
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +0 -20
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.js +8 -34
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.js +2 -2
- package/esm/presentation/automations/connectors/hooks/useBuildAlertingDialogContext.test.js +1 -1
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js +2 -2
- package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts +20 -17
- package/esm/presentation/automations/shared/automationFilters/automationParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/automationParameters.js +57 -40
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts +3 -3
- package/esm/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts +2 -2
- package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.js +3 -3
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +9 -5
- package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts +2 -2
- package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationAlertParameters.js +13 -5
- package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts +3 -3
- package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/useAutomationExportParameters.js +18 -10
- package/esm/presentation/automations/shared/automationFilters/useParameterAnnouncements.d.ts +2 -2
- package/esm/presentation/automations/shared/automationFilters/useParameterAnnouncements.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -0
- package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts +1 -1
- package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts.map +1 -1
- package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.js +6 -7
- package/esm/sdk-ui-dashboard.d.ts +1 -1
- package/package.json +21 -21
- package/styles/css/main.css +3 -13
- package/styles/css/main.css.map +1 -1
- package/styles/css/topBar.css +3 -13
- package/styles/css/topBar.css.map +1 -1
- package/styles/scss/topBar.scss +3 -15
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { DashboardParameterModeValues, insightMeasures, insightParameters, isMeasureDefinition, isValidParameterValue, objRefToString, } from "@gooddata/sdk-model";
|
|
2
|
+
import { DashboardParameterModeValues, insightMeasures, insightParameters, isMeasureDefinition, isValidParameterValue, objRefToString, sanitizeParameterValue, } from "@gooddata/sdk-model";
|
|
3
3
|
import { parametersInitialState, pickTabParametersSource, } from "./parametersState.js";
|
|
4
4
|
const EMPTY_PARAMETERS = [];
|
|
5
5
|
const EMPTY_PARAMETER_VALUES = [];
|
|
@@ -57,7 +57,7 @@ export function resolveEffectiveParameterValuesForRefs(entries, referencedRefs,
|
|
|
57
57
|
}
|
|
58
58
|
result.push({
|
|
59
59
|
ref: entry.parameter.ref,
|
|
60
|
-
value:
|
|
60
|
+
value: sanitizeParameterExecutionValue(runtimeOverride, workspaceParameterByRef.get(refKey)),
|
|
61
61
|
});
|
|
62
62
|
seen.add(refKey);
|
|
63
63
|
}
|
|
@@ -68,7 +68,7 @@ export function resolveEffectiveParameterValuesForRefs(entries, referencedRefs,
|
|
|
68
68
|
}
|
|
69
69
|
result.push({
|
|
70
70
|
ref: insightParameterValue.ref,
|
|
71
|
-
value:
|
|
71
|
+
value: sanitizeParameterExecutionValue(insightParameterValue.value, workspaceParameterByRef.get(refKey)),
|
|
72
72
|
});
|
|
73
73
|
seen.add(refKey);
|
|
74
74
|
}
|
|
@@ -114,17 +114,15 @@ export function matchingWorkspaceDefinition(parameter, workspaceParameter) {
|
|
|
114
114
|
/**
|
|
115
115
|
* The value to execute for a runtime override: a value that is not valid for the workspace
|
|
116
116
|
* parameter (constraint-violating or of the wrong kind) is replaced by the workspace default so
|
|
117
|
-
* the dashboard renders the default instead of failing
|
|
117
|
+
* the dashboard renders the default instead of failing, while the chip keeps showing
|
|
118
118
|
* the user's saved value. Valid values, and values of removed parameters (no workspace entry —
|
|
119
119
|
* meant to surface as the standard widget error), pass through unchanged.
|
|
120
120
|
*
|
|
121
121
|
* @internal
|
|
122
122
|
*/
|
|
123
|
-
function
|
|
123
|
+
function sanitizeParameterExecutionValue(runtimeOverride, workspaceParameter) {
|
|
124
124
|
const definition = workspaceParameter?.definition;
|
|
125
|
-
return definition
|
|
126
|
-
? definition.defaultValue
|
|
127
|
-
: runtimeOverride;
|
|
125
|
+
return definition ? sanitizeParameterValue(definition, runtimeOverride) : runtimeOverride;
|
|
128
126
|
}
|
|
129
127
|
/**
|
|
130
128
|
* Classifies one dashboard parameter against its workspace catalog entry — the single source of
|
|
@@ -256,8 +254,9 @@ export function formatDashboardParameter(entry, workspaceParameter) {
|
|
|
256
254
|
}
|
|
257
255
|
return {
|
|
258
256
|
id: entry.parameter.ref.identifier,
|
|
259
|
-
value: String(
|
|
257
|
+
value: String(sanitizeParameterExecutionValue(runtimeOverride, workspaceParameter)),
|
|
260
258
|
title: resolveParameterTitle(entry.parameter, workspaceParameter),
|
|
259
|
+
parameterType: entry.parameter.parameterType,
|
|
261
260
|
};
|
|
262
261
|
}
|
|
263
262
|
/**
|
|
@@ -355,10 +354,10 @@ export function computeParameterResetTargets(entries, workspaceParameters, isInE
|
|
|
355
354
|
*
|
|
356
355
|
* @internal
|
|
357
356
|
*/
|
|
358
|
-
export function collectExportOverrides(tabRefSelections, workspaceParameterByRef,
|
|
357
|
+
export function collectExportOverrides(tabRefSelections, workspaceParameterByRef, isStringEnabled) {
|
|
359
358
|
const result = {};
|
|
360
359
|
for (const { tab, allowedRefs } of tabRefSelections) {
|
|
361
|
-
const entries = (tab.parameters?.parameters ?? parametersInitialState.parameters).filter((entry) => !isGatedStringEntry(entry,
|
|
360
|
+
const entries = (tab.parameters?.parameters ?? parametersInitialState.parameters).filter((entry) => !isGatedStringEntry(entry, isStringEnabled));
|
|
362
361
|
const scoped = allowedRefs
|
|
363
362
|
? entries.filter((entry) => allowedRefs.has(objRefToString(entry.parameter.ref)))
|
|
364
363
|
: entries;
|
|
@@ -142,16 +142,6 @@ export declare const selectWidgetParameterContext: (ref: ObjRef | undefined) =>
|
|
|
142
142
|
* @alpha
|
|
143
143
|
*/
|
|
144
144
|
export declare const selectEffectiveParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
|
|
145
|
-
/**
|
|
146
|
-
* {@link selectEffectiveParameterValuesForWidget} minus string values, for seeding an alert's
|
|
147
|
-
* stored execution parameters. Same rationale as
|
|
148
|
-
* {@link selectAutomationExportEffectiveParameters}: the automation dialogs are NUMBER-only until
|
|
149
|
-
* the interactions slice, and a stored string value would be invisible there and deleted by any
|
|
150
|
-
* edit.
|
|
151
|
-
*
|
|
152
|
-
* @internal
|
|
153
|
-
*/
|
|
154
|
-
export declare const selectAutomationParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
|
|
155
145
|
/**
|
|
156
146
|
* The insight half of {@link selectEffectiveParameterValuesForWidget}: insight-authored values for
|
|
157
147
|
* the metric-referenced refs, flag-gated and ref-filtered, with no dashboard chip overrides.
|
|
@@ -194,16 +184,6 @@ export declare const selectEffectiveDashboardParametersForWidget: (ref: ObjRef |
|
|
|
194
184
|
* @alpha
|
|
195
185
|
*/
|
|
196
186
|
export declare const selectExportEffectiveParameters: (widgetIds: string[] | undefined) => DashboardSelector<Record<string, IDashboardExportParameter[]>>;
|
|
197
|
-
/**
|
|
198
|
-
* {@link selectExportEffectiveParameters} minus STRING entries, for the wire persisted onto
|
|
199
|
-
* automations. The automation dialogs and restore paths decode NUMBER-only until the interactions
|
|
200
|
-
* slice (F1-2636…F1-2641): a stored STRING row would drive the headless render while being
|
|
201
|
-
* invisible in the dialog, and any edit re-encodes the wire without it — so it must not be
|
|
202
|
-
* persisted at all, regardless of `enableStringParameters`.
|
|
203
|
-
*
|
|
204
|
-
* @internal
|
|
205
|
-
*/
|
|
206
|
-
export declare const selectAutomationExportEffectiveParameters: (widgetIds: string[] | undefined) => DashboardSelector<Record<string, IDashboardExportParameter[]>>;
|
|
207
187
|
/**
|
|
208
188
|
* Active-tab slice of {@link selectExportEffectiveParameters}.
|
|
209
189
|
*
|
|
@@ -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,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,cAAc,EAGtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { createSelector } from "@reduxjs/toolkit";
|
|
3
3
|
import { isEqual } from "lodash-es";
|
|
4
4
|
import { areObjRefsEqual, objRefToString, } from "@gooddata/sdk-model";
|
|
5
|
-
import { isAutomationSupportedParameterValue } from "../../../../_staging/automation/index.js";
|
|
6
5
|
import { createMemoizedSelector } from "../../_infra/selectors.js";
|
|
7
6
|
import { selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, selectCatalogParameterByRef, selectCatalogParameters, selectCatalogParametersIsLoaded, } from "../../catalog/catalogSelectors.js";
|
|
8
7
|
import { selectEnableParameters, selectEnableStringParameters } from "../../config/configSelectors.js";
|
|
@@ -284,19 +283,6 @@ export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((r
|
|
|
284
283
|
const { insightParameterValues, referencedRefs, entries, workspaceParameterByRef } = resolved;
|
|
285
284
|
return resolveEffectiveParameterValuesForRefs(entries, referencedRefs, insightParameterValues, workspaceParameterByRef);
|
|
286
285
|
}));
|
|
287
|
-
/**
|
|
288
|
-
* {@link selectEffectiveParameterValuesForWidget} minus string values, for seeding an alert's
|
|
289
|
-
* stored execution parameters. Same rationale as
|
|
290
|
-
* {@link selectAutomationExportEffectiveParameters}: the automation dialogs are NUMBER-only until
|
|
291
|
-
* the interactions slice, and a stored string value would be invisible there and deleted by any
|
|
292
|
-
* edit.
|
|
293
|
-
*
|
|
294
|
-
* @internal
|
|
295
|
-
*/
|
|
296
|
-
export const selectAutomationParameterValuesForWidget = createMemoizedSelector((ref) => createSelector(selectEffectiveParameterValuesForWidget(ref), (values) => {
|
|
297
|
-
const supportedValues = values.filter((row) => isAutomationSupportedParameterValue(row.value));
|
|
298
|
-
return supportedValues.length === 0 ? EMPTY_PARAMETER_VALUES : supportedValues;
|
|
299
|
-
}));
|
|
300
286
|
/**
|
|
301
287
|
* The insight half of {@link selectEffectiveParameterValuesForWidget}: insight-authored values for
|
|
302
288
|
* the metric-referenced refs, flag-gated and ref-filtered, with no dashboard chip overrides.
|
|
@@ -354,36 +340,24 @@ export const selectEffectiveDashboardParametersForWidget = createMemoizedSelecto
|
|
|
354
340
|
* @alpha
|
|
355
341
|
*/
|
|
356
342
|
export const selectExportEffectiveParameters = (widgetIds) => widgetIds?.length
|
|
357
|
-
? selectExportEffectiveParametersForWidgets(widgetIds
|
|
358
|
-
: selectExportEffectiveParametersDashboardScope
|
|
359
|
-
|
|
360
|
-
* {@link selectExportEffectiveParameters} minus STRING entries, for the wire persisted onto
|
|
361
|
-
* automations. The automation dialogs and restore paths decode NUMBER-only until the interactions
|
|
362
|
-
* slice (F1-2636…F1-2641): a stored STRING row would drive the headless render while being
|
|
363
|
-
* invisible in the dialog, and any edit re-encodes the wire without it — so it must not be
|
|
364
|
-
* persisted at all, regardless of `enableStringParameters`.
|
|
365
|
-
*
|
|
366
|
-
* @internal
|
|
367
|
-
*/
|
|
368
|
-
export const selectAutomationExportEffectiveParameters = (widgetIds) => widgetIds?.length
|
|
369
|
-
? selectExportEffectiveParametersForWidgets(widgetIds, false)
|
|
370
|
-
: selectExportEffectiveParametersDashboardScope(false);
|
|
371
|
-
const selectExportEffectiveParametersDashboardScope = createMemoizedSelector((includeStringOverrides) => createSelector(selectTabs, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, (tabs, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded) => {
|
|
343
|
+
? selectExportEffectiveParametersForWidgets(widgetIds)
|
|
344
|
+
: selectExportEffectiveParametersDashboardScope;
|
|
345
|
+
const selectExportEffectiveParametersDashboardScope = createSelector(selectTabs, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, (tabs, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded) => {
|
|
372
346
|
if (!isEnabled || !isCatalogLoaded || !tabs?.length) {
|
|
373
347
|
return EMPTY_EXPORT_PARAMETERS_BY_TAB;
|
|
374
348
|
}
|
|
375
|
-
return collectExportOverrides(tabs.map((tab) => ({ tab })), workspaceParameterByRef, isStringEnabled
|
|
376
|
-
})
|
|
377
|
-
const selectExportEffectiveParametersForWidgets = createMemoizedSelector((widgetIds
|
|
349
|
+
return collectExportOverrides(tabs.map((tab) => ({ tab })), workspaceParameterByRef, isStringEnabled);
|
|
350
|
+
});
|
|
351
|
+
const selectExportEffectiveParametersForWidgets = createMemoizedSelector((widgetIds) => createSelector(selectAllTabsInsightWidgetContexts, selectInsightsMap, selectEnableParameters, selectEnableStringParameters, selectWorkspaceParametersByRef, selectCatalogParametersIsLoaded, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, (widgetContexts, insights, isEnabled, isStringEnabled, workspaceParameterByRef, isCatalogLoaded, measureParameters, measureParametersStatus) => {
|
|
378
352
|
if (!isEnabled || !isCatalogLoaded || measureParametersStatus !== "loaded") {
|
|
379
353
|
return EMPTY_EXPORT_PARAMETERS_BY_TAB;
|
|
380
354
|
}
|
|
381
355
|
const tabRefSelections = buildWidgetScopeTabRefSelections(widgetContexts, widgetIds, insights, measureParameters);
|
|
382
|
-
return collectExportOverrides(tabRefSelections, workspaceParameterByRef, isStringEnabled
|
|
356
|
+
return collectExportOverrides(tabRefSelections, workspaceParameterByRef, isStringEnabled);
|
|
383
357
|
}));
|
|
384
358
|
/**
|
|
385
359
|
* Active-tab slice of {@link selectExportEffectiveParameters}.
|
|
386
360
|
*
|
|
387
361
|
* @internal
|
|
388
362
|
*/
|
|
389
|
-
export const selectActiveTabExportParameters = createSelector(selectExportEffectiveParametersDashboardScope
|
|
363
|
+
export const selectActiveTabExportParameters = createSelector(selectExportEffectiveParametersDashboardScope, selectActiveOrDefaultTabLocalIdentifier, (parametersByTab, activeTabId) => parametersByTab[activeTabId] ?? EMPTY_EXPORT_PARAMETERS);
|
|
@@ -20,7 +20,7 @@ export declare function useEditAlert({ alertToEdit, notificationChannels, insigh
|
|
|
20
20
|
onApplyCurrentFilters: () => void;
|
|
21
21
|
automationParameters: import("../../../shared/automationFilters/automationParameters.js").IAutomationParameter[];
|
|
22
22
|
availableParameters: import("../../../shared/automationFilters/automationParameters.js").IAutomationParameter[];
|
|
23
|
-
onParameterChange: (ref: import("@gooddata/sdk-model").IdentifierRef, value: number) => void;
|
|
23
|
+
onParameterChange: (ref: import("@gooddata/sdk-model").IdentifierRef, value: string | number) => void;
|
|
24
24
|
onParameterDelete: (ref: import("@gooddata/sdk-model").IdentifierRef) => void;
|
|
25
25
|
onParameterAdd: (ref: import("@gooddata/sdk-model").IdentifierRef) => void;
|
|
26
26
|
dropStaleParameters: () => void;
|
|
@@ -7,7 +7,7 @@ import { selectExecutionResultEntities } from "../../../../model/store/execution
|
|
|
7
7
|
import { selectAutomationCommonDateFilterId, selectAutomationDefaultSelectedFilters, selectDashboardHiddenFilters, } from "../../../../model/store/filtering/dashboardFilterSelectors.js";
|
|
8
8
|
import { selectDashboardId, selectEvaluationFrequency } from "../../../../model/store/meta/metaSelectors.js";
|
|
9
9
|
import { selectWidgetLocalIdToTabIdMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
|
|
10
|
-
import {
|
|
10
|
+
import { selectEffectiveParameterValuesForWidget } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
|
|
11
11
|
import { getWidgetTitle } from "../../../../model/utils/dashboardItemUtils.js";
|
|
12
12
|
import { useCommandAsPromise, useDeleteAutomation } from "./useCommandAsPromise.js";
|
|
13
13
|
export function useBuildAlertingDialogContext(opts) {
|
|
@@ -19,7 +19,7 @@ export function useBuildAlertingDialogContext(opts) {
|
|
|
19
19
|
const executionResultEntities = useDashboardSelector(selectExecutionResultEntities);
|
|
20
20
|
const commonDateFilterId = useDashboardSelector(selectAutomationCommonDateFilterId);
|
|
21
21
|
const dashboardEvaluationFrequency = useDashboardSelector(selectEvaluationFrequency);
|
|
22
|
-
const parameterValues = useDashboardSelector(
|
|
22
|
+
const parameterValues = useDashboardSelector(selectEffectiveParameterValuesForWidget(widget?.ref));
|
|
23
23
|
const widgetTitle = useMemo(() => {
|
|
24
24
|
if (widget) {
|
|
25
25
|
return getWidgetTitle(widget);
|
|
@@ -43,7 +43,7 @@ vi.mock("../../../../model/store/tabs/layout/layoutSelectors.js", () => ({
|
|
|
43
43
|
selectWidgetLocalIdToTabIdMap: () => ({}),
|
|
44
44
|
}));
|
|
45
45
|
vi.mock("../../../../model/store/tabs/parameters/parametersSelectors.js", () => ({
|
|
46
|
-
|
|
46
|
+
selectEffectiveParameterValuesForWidget: () => () => [],
|
|
47
47
|
}));
|
|
48
48
|
vi.mock("../../../../model/utils/dashboardItemUtils.js", () => ({
|
|
49
49
|
getWidgetTitle: () => "widget title",
|
package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.js
CHANGED
|
@@ -12,7 +12,7 @@ import { selectEffectiveAttributeFiltersModeMap } from "../../../../model/store/
|
|
|
12
12
|
import { selectEffectiveDateFilterMode } from "../../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
|
|
13
13
|
import { selectEffectiveDateFiltersModeMap } from "../../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
|
|
14
14
|
import { selectWidgetLocalIdToTabIdMap } from "../../../../model/store/tabs/layout/layoutSelectors.js";
|
|
15
|
-
import {
|
|
15
|
+
import { selectExportEffectiveParameters } from "../../../../model/store/tabs/parameters/parametersSelectors.js";
|
|
16
16
|
import { selectTabs } from "../../../../model/store/tabs/tabsSelectors.js";
|
|
17
17
|
import { getWidgetTitle } from "../../../../model/utils/dashboardItemUtils.js";
|
|
18
18
|
import { useCommandAsPromise, useDeleteAutomation } from "./useCommandAsPromise.js";
|
|
@@ -24,7 +24,7 @@ export function useBuildScheduledEmailDialogContext(opts) {
|
|
|
24
24
|
const dashboardTitle = useDashboardSelector(selectDashboardTitle);
|
|
25
25
|
const widgetLocalIdToTabIdMap = useDashboardSelector(selectWidgetLocalIdToTabIdMap);
|
|
26
26
|
const commonDateFilterId = useDashboardSelector(selectAutomationCommonDateFilterId);
|
|
27
|
-
const exportParametersByTab = useDashboardSelector(
|
|
27
|
+
const exportParametersByTab = useDashboardSelector(selectExportEffectiveParameters(widget ? [objRefToString(widget.ref)] : undefined));
|
|
28
28
|
const exportTemplates = useExportTemplates();
|
|
29
29
|
const dateFormat = useDashboardSelector(selectDateFormat);
|
|
30
30
|
const isCrossFiltering = useDashboardSelector(selectIsCrossFiltering);
|
package/esm/presentation/automations/connectors/hooks/useBuildScheduledEmailDialogContext.test.js
CHANGED
|
@@ -60,7 +60,7 @@ vi.mock("../../../../model/store/tabs/tabsSelectors.js", () => ({
|
|
|
60
60
|
selectTabs: () => [],
|
|
61
61
|
}));
|
|
62
62
|
vi.mock("../../../../model/store/tabs/parameters/parametersSelectors.js", () => ({
|
|
63
|
-
|
|
63
|
+
selectExportEffectiveParameters: () => () => ({}),
|
|
64
64
|
}));
|
|
65
65
|
vi.mock("../../../../model/react/useExportTemplates.js", () => ({
|
|
66
66
|
useExportTemplates: () => [],
|
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
import { type DashboardParameterMode, type IAutomationMetadataObjectDefinition, type IDashboardExportParameter, type IDashboardParameter, type IInsightParameterValue, type
|
|
1
|
+
import { type DashboardParameterMode, type IAutomationMetadataObjectDefinition, type IDashboardExportParameter, type IDashboardParameter, type IInsightParameterValue, type IParameterDefinition, type IParameterMetadataObject, type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
|
|
2
2
|
/**
|
|
3
3
|
* A workspace parameter resolved for display and editing inside an automation (alert/schedule)
|
|
4
|
-
* dialog. The `value` is the current effective value the headless run will capture
|
|
4
|
+
* dialog. The `value` is the current effective value the headless run will capture; `definition`
|
|
5
|
+
* picks which control renders.
|
|
5
6
|
*
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
8
9
|
export interface IAutomationParameter {
|
|
9
10
|
ref: IdentifierRef;
|
|
10
11
|
title: string;
|
|
11
|
-
value:
|
|
12
|
+
value: ParameterValue;
|
|
12
13
|
mode: DashboardParameterMode;
|
|
13
|
-
|
|
14
|
+
definition: IParameterDefinition;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* Stored {@link IInsightParameterValue} overrides carry only {ref, value}; title, mode and
|
|
17
|
-
*
|
|
18
|
+
* definition are re-derived from the current dashboard and workspace catalog. Rows without a
|
|
19
|
+
* resolvable definition (see {@link resolveParameterDefinition}) are dropped.
|
|
18
20
|
*
|
|
19
21
|
* @internal
|
|
20
22
|
*/
|
|
21
|
-
export declare function reconstructAutomationParametersFromValues(stored: IInsightParameterValue[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[]): IAutomationParameter[];
|
|
23
|
+
export declare function reconstructAutomationParametersFromValues(stored: IInsightParameterValue[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[], isStringParametersEnabled: boolean): IAutomationParameter[];
|
|
22
24
|
/**
|
|
23
25
|
* Stored export overrides ({@link IDashboardExportParameter}) carry the value as a string; it is
|
|
24
|
-
*
|
|
25
|
-
* re-derived from the current dashboard and workspace catalog, mirroring
|
|
26
|
+
* decoded back by the row's own type tag (see `exportParametersToValues`). Title, mode and
|
|
27
|
+
* definition are re-derived from the current dashboard and workspace catalog, mirroring
|
|
26
28
|
* {@link reconstructAutomationParametersFromValues}.
|
|
27
29
|
*
|
|
28
30
|
* @internal
|
|
29
31
|
*/
|
|
30
|
-
export declare function reconstructAutomationParametersFromExportParameters(stored: IDashboardExportParameter[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[]): IAutomationParameter[];
|
|
32
|
+
export declare function reconstructAutomationParametersFromExportParameters(stored: IDashboardExportParameter[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[], isStringParametersEnabled: boolean): IAutomationParameter[];
|
|
31
33
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
34
|
+
* Dashboard-`hidden` and `readonly` parameters are dropped — once added they would derive back to
|
|
35
|
+
* an invisible or locked (undeletable) parameter. Catalog STRING parameters are dropped too while
|
|
36
|
+
* `isStringParametersEnabled` is off.
|
|
35
37
|
*
|
|
36
38
|
* @internal
|
|
37
39
|
*/
|
|
38
|
-
export declare function availableAutomationParameters(catalog: IParameterMetadataObject[], selected: IAutomationParameter[], dashboardParameters
|
|
40
|
+
export declare function availableAutomationParameters(catalog: IParameterMetadataObject[], selected: IAutomationParameter[], dashboardParameters: IDashboardParameter[] | undefined, widgetParameterValues: IInsightParameterValue[] | undefined, isStringParametersEnabled: boolean): IAutomationParameter[];
|
|
39
41
|
/**
|
|
40
42
|
* Returns a copy of the automation with `alert.execution.parameters` replaced. No-op when the
|
|
41
43
|
* automation carries no alert.
|
|
@@ -45,7 +47,8 @@ export declare function availableAutomationParameters(catalog: IParameterMetadat
|
|
|
45
47
|
export declare function setAlertExecutionParameters(automation: IAutomationMetadataObjectDefinition, parameters: IInsightParameterValue[]): IAutomationMetadataObjectDefinition;
|
|
46
48
|
/**
|
|
47
49
|
* A param dropped from the *dashboard* is not stale: parameters are workspace-scoped, so only
|
|
48
|
-
* removal from the workspace catalog counts
|
|
50
|
+
* removal from the workspace catalog counts — as does a parameter recreated with the same id but
|
|
51
|
+
* the other type, where the decoded value kind disagrees with the current definition.
|
|
49
52
|
*
|
|
50
53
|
* @internal
|
|
51
54
|
*/
|
|
@@ -57,9 +60,9 @@ export declare function hasStaleAlertParameters(stored: IInsightParameterValue[]
|
|
|
57
60
|
*/
|
|
58
61
|
export declare function dropStaleAlertParameters(stored: IInsightParameterValue[], catalog: IParameterMetadataObject[]): IInsightParameterValue[];
|
|
59
62
|
/**
|
|
60
|
-
* Encodes the display-ready
|
|
61
|
-
* title}). The full per-tab execution set (including `hidden` entries) is converted, not just the
|
|
62
|
-
* visible
|
|
63
|
+
* Encodes the display-ready parameter set back to the neutral export wire shape ({id, value:string,
|
|
64
|
+
* title, parameterType}). The full per-tab execution set (including `hidden` entries) is converted, not just the
|
|
65
|
+
* visible ones, so the server resolver does not drop omitted parameters to the workspace default.
|
|
63
66
|
*
|
|
64
67
|
* @internal
|
|
65
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automationParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/automationParameters.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,sBAAsB,EAE3B,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,
|
|
1
|
+
{"version":3,"file":"automationParameters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/automationFilters/automationParameters.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,sBAAsB,EAE3B,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,cAAc,EAKtB,MAAM,qBAAqB,CAAC;AAI7B;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACrD,MAAM,EAAE,sBAAsB,EAAE,EAChC,mBAAmB,EAAE,mBAAmB,EAAE,EAC1C,OAAO,EAAE,wBAAwB,EAAE,EACnC,yBAAyB,EAAE,OAAO,GACnC,oBAAoB,EAAE,CAyBxB;AAED;;;;;;;GAOG;AACH,wBAAgB,mDAAmD,CAC/D,MAAM,EAAE,yBAAyB,EAAE,EACnC,mBAAmB,EAAE,mBAAmB,EAAE,EAC1C,OAAO,EAAE,wBAAwB,EAAE,EACnC,yBAAyB,EAAE,OAAO,GACnC,oBAAoB,EAAE,CAOxB;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,wBAAwB,EAAE,EACnC,QAAQ,EAAE,oBAAoB,EAAE,EAChC,mBAAmB,mCAA4B,EAC/C,qBAAqB,sCAA+B,EACpD,yBAAyB,EAAE,OAAO,GACnC,oBAAoB,EAAE,CAmCxB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,mCAAmC,EAC/C,UAAU,EAAE,sBAAsB,EAAE,GACrC,mCAAmC,CAcrC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,sBAAsB,EAAE,GAAG,SAAS,EAC5C,OAAO,EAAE,wBAAwB,EAAE,GACpC,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,sBAAsB,EAAE,EAChC,OAAO,EAAE,wBAAwB,EAAE,GACpC,sBAAsB,EAAE,CAG1B;AAED;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAClD,UAAU,EAAE,oBAAoB,EAAE,GACnC,yBAAyB,EAAE,CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,EACvD,WAAW,EAAE,OAAO,GACrB,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,GAAG,SAAS,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,UAAQ,GAAG,OAAO,CAEpG"}
|
|
@@ -1,61 +1,59 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { DashboardParameterModeValues, isIdentifierRef,
|
|
3
|
-
import { exportParametersToValues
|
|
2
|
+
import { DashboardParameterModeValues, isIdentifierRef, objRefToString, parameterValueMatchesType, sanitizeParameterValue, } from "@gooddata/sdk-model";
|
|
3
|
+
import { exportParametersToValues } from "../../../../_staging/automation/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Stored {@link IInsightParameterValue} overrides carry only {ref, value}; title, mode and
|
|
6
|
-
*
|
|
6
|
+
* definition are re-derived from the current dashboard and workspace catalog. Rows without a
|
|
7
|
+
* resolvable definition (see {@link resolveParameterDefinition}) are dropped.
|
|
7
8
|
*
|
|
8
9
|
* @internal
|
|
9
10
|
*/
|
|
10
|
-
export function reconstructAutomationParametersFromValues(stored, dashboardParameters, catalog) {
|
|
11
|
+
export function reconstructAutomationParametersFromValues(stored, dashboardParameters, catalog, isStringParametersEnabled) {
|
|
11
12
|
const dashboardByRef = new Map(dashboardParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
12
13
|
const workspaceByRef = new Map(catalog.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
13
14
|
return stored.flatMap((row) => {
|
|
14
|
-
if (!isAutomationSupportedParameterValue(row.value)) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
15
|
const refKey = objRefToString(row.ref);
|
|
18
16
|
const dashboardParameter = dashboardByRef.get(refKey);
|
|
19
17
|
const workspaceParameter = workspaceByRef.get(refKey);
|
|
20
|
-
const
|
|
18
|
+
const definition = resolveParameterDefinition(workspaceParameter, row.value, isStringParametersEnabled);
|
|
19
|
+
if (!definition) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
21
22
|
return {
|
|
22
23
|
ref: row.ref,
|
|
23
24
|
title: dashboardParameter?.label ?? workspaceParameter?.title ?? row.ref.identifier,
|
|
24
25
|
value: row.value,
|
|
25
26
|
mode: dashboardParameter?.mode ?? DashboardParameterModeValues.ACTIVE,
|
|
26
|
-
|
|
27
|
+
definition,
|
|
27
28
|
};
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Stored export overrides ({@link IDashboardExportParameter}) carry the value as a string; it is
|
|
32
|
-
*
|
|
33
|
-
* re-derived from the current dashboard and workspace catalog, mirroring
|
|
33
|
+
* decoded back by the row's own type tag (see `exportParametersToValues`). Title, mode and
|
|
34
|
+
* definition are re-derived from the current dashboard and workspace catalog, mirroring
|
|
34
35
|
* {@link reconstructAutomationParametersFromValues}.
|
|
35
36
|
*
|
|
36
37
|
* @internal
|
|
37
38
|
*/
|
|
38
|
-
export function reconstructAutomationParametersFromExportParameters(stored, dashboardParameters, catalog) {
|
|
39
|
-
return reconstructAutomationParametersFromValues(exportParametersToValues(stored), dashboardParameters, catalog);
|
|
39
|
+
export function reconstructAutomationParametersFromExportParameters(stored, dashboardParameters, catalog, isStringParametersEnabled) {
|
|
40
|
+
return reconstructAutomationParametersFromValues(exportParametersToValues(stored, isStringParametersEnabled), dashboardParameters, catalog, isStringParametersEnabled);
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Dashboard-`hidden` and `readonly` parameters are dropped — once added they would derive back to
|
|
44
|
+
* an invisible or locked (undeletable) parameter. Catalog STRING parameters are dropped too while
|
|
45
|
+
* `isStringParametersEnabled` is off.
|
|
45
46
|
*
|
|
46
47
|
* @internal
|
|
47
48
|
*/
|
|
48
|
-
export function availableAutomationParameters(catalog, selected, dashboardParameters = [], widgetParameterValues = []) {
|
|
49
|
+
export function availableAutomationParameters(catalog, selected, dashboardParameters = [], widgetParameterValues = [], isStringParametersEnabled) {
|
|
49
50
|
const selectedRefKeys = new Set(selected.map((parameter) => objRefToString(parameter.ref)));
|
|
50
51
|
const dashboardByRef = new Map(dashboardParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
51
52
|
const widgetValueByRef = new Map(widgetParameterValues.map((row) => [objRefToString(row.ref), row.value]));
|
|
52
53
|
const result = [];
|
|
53
54
|
for (const workspaceParameter of catalog) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
const { ref } = workspaceParameter;
|
|
58
|
-
if (!isIdentifierRef(ref)) {
|
|
55
|
+
const { ref, definition } = workspaceParameter;
|
|
56
|
+
if (!isIdentifierRef(ref) || (definition.type === "STRING" && !isStringParametersEnabled)) {
|
|
59
57
|
continue;
|
|
60
58
|
}
|
|
61
59
|
const refKey = objRefToString(ref);
|
|
@@ -65,15 +63,14 @@ export function availableAutomationParameters(catalog, selected, dashboardParame
|
|
|
65
63
|
dashboardParameter?.mode === DashboardParameterModeValues.READONLY) {
|
|
66
64
|
continue;
|
|
67
65
|
}
|
|
68
|
-
const { defaultValue, constraints } = workspaceParameter.definition;
|
|
69
66
|
// mirror the live-render precedence: runtimeOverride/insight value > dashboard value > default
|
|
70
|
-
const effectiveValue = widgetValueByRef.get(refKey) ?? dashboardParameter?.value ?? defaultValue;
|
|
67
|
+
const effectiveValue = widgetValueByRef.get(refKey) ?? dashboardParameter?.value ?? definition.defaultValue;
|
|
71
68
|
result.push({
|
|
72
69
|
ref,
|
|
73
70
|
title: dashboardParameter?.label ?? workspaceParameter.title,
|
|
74
|
-
value:
|
|
71
|
+
value: sanitizeParameterValue(definition, effectiveValue),
|
|
75
72
|
mode: DashboardParameterModeValues.ACTIVE,
|
|
76
|
-
|
|
73
|
+
definition,
|
|
77
74
|
});
|
|
78
75
|
}
|
|
79
76
|
return result;
|
|
@@ -101,7 +98,8 @@ export function setAlertExecutionParameters(automation, parameters) {
|
|
|
101
98
|
}
|
|
102
99
|
/**
|
|
103
100
|
* A param dropped from the *dashboard* is not stale: parameters are workspace-scoped, so only
|
|
104
|
-
* removal from the workspace catalog counts
|
|
101
|
+
* removal from the workspace catalog counts — as does a parameter recreated with the same id but
|
|
102
|
+
* the other type, where the decoded value kind disagrees with the current definition.
|
|
105
103
|
*
|
|
106
104
|
* @internal
|
|
107
105
|
*/
|
|
@@ -109,8 +107,8 @@ export function hasStaleAlertParameters(stored, catalog) {
|
|
|
109
107
|
if (!stored?.length) {
|
|
110
108
|
return false;
|
|
111
109
|
}
|
|
112
|
-
const
|
|
113
|
-
return stored.some((parameter) => !
|
|
110
|
+
const catalogById = new Map(catalog.map((parameter) => [parameter.id, parameter]));
|
|
111
|
+
return stored.some((parameter) => !alertParameterMatchesCatalog(parameter, catalogById));
|
|
114
112
|
}
|
|
115
113
|
/**
|
|
116
114
|
* Removes the parameters {@link hasStaleAlertParameters} flags as stale.
|
|
@@ -118,13 +116,13 @@ export function hasStaleAlertParameters(stored, catalog) {
|
|
|
118
116
|
* @internal
|
|
119
117
|
*/
|
|
120
118
|
export function dropStaleAlertParameters(stored, catalog) {
|
|
121
|
-
const
|
|
122
|
-
return stored.filter((parameter) =>
|
|
119
|
+
const catalogById = new Map(catalog.map((parameter) => [parameter.id, parameter]));
|
|
120
|
+
return stored.filter((parameter) => alertParameterMatchesCatalog(parameter, catalogById));
|
|
123
121
|
}
|
|
124
122
|
/**
|
|
125
|
-
* Encodes the display-ready
|
|
126
|
-
* title}). The full per-tab execution set (including `hidden` entries) is converted, not just the
|
|
127
|
-
* visible
|
|
123
|
+
* Encodes the display-ready parameter set back to the neutral export wire shape ({id, value:string,
|
|
124
|
+
* title, parameterType}). The full per-tab execution set (including `hidden` entries) is converted, not just the
|
|
125
|
+
* visible ones, so the server resolver does not drop omitted parameters to the workspace default.
|
|
128
126
|
*
|
|
129
127
|
* @internal
|
|
130
128
|
*/
|
|
@@ -133,6 +131,7 @@ export function automationParametersToExportParameters(parameters) {
|
|
|
133
131
|
id: parameter.ref.identifier,
|
|
134
132
|
value: String(parameter.value),
|
|
135
133
|
title: parameter.title,
|
|
134
|
+
parameterType: parameter.definition.type,
|
|
136
135
|
}));
|
|
137
136
|
}
|
|
138
137
|
/**
|
|
@@ -161,11 +160,29 @@ export function toEffectiveParametersByTab(parametersByTab, shouldStore) {
|
|
|
161
160
|
export function shouldStoreExportParameters(isWidgetSchedule, storeFilters = false) {
|
|
162
161
|
return isWidgetSchedule || storeFilters;
|
|
163
162
|
}
|
|
164
|
-
function
|
|
165
|
-
|
|
163
|
+
function alertParameterMatchesCatalog(parameter, catalogById) {
|
|
164
|
+
const workspaceParameter = catalogById.get(parameter.ref.identifier);
|
|
165
|
+
return !!workspaceParameter && parameterValueMatchesType(workspaceParameter.definition, parameter.value);
|
|
166
166
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
/**
|
|
168
|
+
* Every parameter needs a definition — its `type` picks which control renders. The workspace
|
|
169
|
+
* parameter definition is the source of truth; when its type disagrees with the stored value the
|
|
170
|
+
* parameter was recreated as the other type, so the parameter is dropped.
|
|
171
|
+
*/
|
|
172
|
+
function resolveParameterDefinition(workspaceParameter, value, isStringParametersEnabled) {
|
|
173
|
+
const definition = workspaceParameter?.definition;
|
|
174
|
+
if (definition) {
|
|
175
|
+
if (definition.type === "STRING" && !isStringParametersEnabled) {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
return parameterValueMatchesType(definition, value) ? definition : undefined;
|
|
179
|
+
}
|
|
180
|
+
// Deleted workspace parameter: synthesize a definition from the value so the parameter stays
|
|
181
|
+
// editable (the constraint-less M1 fallback). Its `defaultValue` is a shape-filling
|
|
182
|
+
// placeholder — rely only on `type`. STRING synthesis is gated the same way as the catalog
|
|
183
|
+
// branch above.
|
|
184
|
+
if (typeof value === "number") {
|
|
185
|
+
return { type: "NUMBER", defaultValue: value };
|
|
186
|
+
}
|
|
187
|
+
return isStringParametersEnabled ? { type: "STRING", defaultValue: value } : undefined;
|
|
171
188
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IdentifierRef, type ObjRef } from "@gooddata/sdk-model";
|
|
1
|
+
import { type FilterContextItem, type ICatalogAttribute, type ICatalogDateDataset, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IdentifierRef, type ObjRef, type ParameterValue } from "@gooddata/sdk-model";
|
|
2
2
|
import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
|
|
3
3
|
import type { IAutomationFiltersTab } from "../../../../../model/store/filtering/types.js";
|
|
4
4
|
import { type IAutomationParameter } from "../automationParameters.js";
|
|
@@ -60,7 +60,7 @@ export interface IAutomationFiltersSelectProps {
|
|
|
60
60
|
/**
|
|
61
61
|
* Called when an `active` parameter chip's value is edited.
|
|
62
62
|
*/
|
|
63
|
-
onParameterChange?: (ref: IdentifierRef, value:
|
|
63
|
+
onParameterChange?: (ref: IdentifierRef, value: ParameterValue) => void;
|
|
64
64
|
/**
|
|
65
65
|
* Called when an `active` parameter chip is removed.
|
|
66
66
|
*/
|
|
@@ -80,7 +80,7 @@ export interface IAutomationFiltersSelectProps {
|
|
|
80
80
|
/**
|
|
81
81
|
* Called when an `active` parameter chip's value is edited in a tab section.
|
|
82
82
|
*/
|
|
83
|
-
onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value:
|
|
83
|
+
onParameterChangeByTab?: (tabId: string, ref: IdentifierRef, value: ParameterValue) => void;
|
|
84
84
|
/**
|
|
85
85
|
* Called when an `active` parameter chip is removed in a tab section.
|
|
86
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationFiltersSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAGxB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEnC,KAAK,aAAa,EAClB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"AutomationFiltersSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationFiltersSelect.tsx"],"names":[],"mappings":"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"}
|
package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
import { type IdentifierRef } from "@gooddata/sdk-model";
|
|
2
|
+
import { type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
|
|
3
3
|
import { type OverlayPositionType } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
import { type IAutomationParameter } from "../automationParameters.js";
|
|
5
5
|
/**
|
|
@@ -7,7 +7,7 @@ import { type IAutomationParameter } from "../automationParameters.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export interface IAutomationParameterProps {
|
|
9
9
|
parameter: IAutomationParameter;
|
|
10
|
-
onChange?: (ref: IdentifierRef, value:
|
|
10
|
+
onChange?: (ref: IdentifierRef, value: ParameterValue) => void;
|
|
11
11
|
onDelete?: (ref: IdentifierRef) => void;
|
|
12
12
|
overlayPositionType?: OverlayPositionType;
|
|
13
13
|
isReadOnly?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutomationParameter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationParameter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AutomationParameter.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/shared/automationFilters/components/AutomationParameter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAgC,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAEH,KAAK,mBAAmB,EAM3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACb,EAAE,yBAAyB,GAAG,SAAS,CA0FvC"}
|