@gooddata/sdk-ui-dashboard 11.35.0-alpha.5 → 11.35.0-alpha.6
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/NOTICE +8 -8
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +3 -4
- package/esm/index.js +1 -2
- package/esm/model/commandHandlers/dashboard/common/parameterHydration.d.ts +11 -2
- package/esm/model/commandHandlers/dashboard/common/parameterHydration.js +21 -0
- package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +44 -79
- package/esm/model/commandHandlers/dashboard/saveAsDashboardHandler.js +10 -5
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +11 -7
- package/esm/model/store/dashboardStore.d.ts +0 -2
- package/esm/model/store/dashboardStore.js +0 -2
- package/esm/model/store/meta/metaSelectors.js +4 -3
- package/esm/model/store/tabs/index.d.ts +12 -0
- package/esm/model/store/tabs/index.js +2 -0
- package/esm/model/store/{parameters → tabs/parameters}/parametersReducers.d.ts +3 -7
- package/esm/model/store/tabs/parameters/parametersReducers.js +46 -0
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +72 -0
- package/esm/model/store/tabs/parameters/parametersSelectors.js +228 -0
- package/esm/model/store/{parameters → tabs/parameters}/parametersState.d.ts +11 -1
- package/esm/model/store/tabs/parameters/parametersState.js +20 -0
- package/esm/model/store/tabs/tabsState.d.ts +2 -0
- package/esm/model/store/types.d.ts +0 -6
- package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.js +1 -1
- package/esm/presentation/dragAndDrop/useFilterDeleteDrop.js +2 -2
- package/esm/presentation/filterBar/filterBar/DefaultFilterBar.js +1 -1
- package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.js +3 -3
- package/esm/presentation/filterBar/parameterFilter/DashboardParameterPicker.js +3 -3
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +1 -1
- package/esm/sdk-ui-dashboard.d.ts +27 -26
- package/package.json +21 -21
- package/esm/model/store/parameters/index.d.ts +0 -12
- package/esm/model/store/parameters/index.js +0 -14
- package/esm/model/store/parameters/parametersReducers.js +0 -36
- package/esm/model/store/parameters/parametersSelectors.d.ts +0 -67
- package/esm/model/store/parameters/parametersSelectors.js +0 -122
- package/esm/model/store/parameters/parametersState.js +0 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-dashboard",
|
|
3
|
-
"version": "11.35.0-alpha.
|
|
3
|
+
"version": "11.35.0-alpha.6",
|
|
4
4
|
"description": "GoodData SDK - Dashboard Component",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -60,19 +60,19 @@
|
|
|
60
60
|
"ts-invariant": "0.10.3",
|
|
61
61
|
"tslib": "2.8.1",
|
|
62
62
|
"uuid": "11.1.0",
|
|
63
|
-
"@gooddata/sdk-backend-base": "11.35.0-alpha.
|
|
64
|
-
"@gooddata/sdk-backend-spi": "11.35.0-alpha.
|
|
65
|
-
"@gooddata/sdk-
|
|
66
|
-
"@gooddata/sdk-ui": "11.35.0-alpha.
|
|
67
|
-
"@gooddata/sdk-
|
|
68
|
-
"@gooddata/sdk-ui-ext": "11.35.0-alpha.
|
|
69
|
-
"@gooddata/sdk-ui-
|
|
70
|
-
"@gooddata/sdk-ui-filters": "11.35.0-alpha.
|
|
71
|
-
"@gooddata/sdk-ui-
|
|
72
|
-
"@gooddata/sdk-ui-
|
|
73
|
-
"@gooddata/sdk-ui-
|
|
74
|
-
"@gooddata/sdk-ui-vis-commons": "11.35.0-alpha.
|
|
75
|
-
"@gooddata/util": "11.35.0-alpha.
|
|
63
|
+
"@gooddata/sdk-backend-base": "11.35.0-alpha.6",
|
|
64
|
+
"@gooddata/sdk-backend-spi": "11.35.0-alpha.6",
|
|
65
|
+
"@gooddata/sdk-ui": "11.35.0-alpha.6",
|
|
66
|
+
"@gooddata/sdk-ui-charts": "11.35.0-alpha.6",
|
|
67
|
+
"@gooddata/sdk-model": "11.35.0-alpha.6",
|
|
68
|
+
"@gooddata/sdk-ui-ext": "11.35.0-alpha.6",
|
|
69
|
+
"@gooddata/sdk-ui-kit": "11.35.0-alpha.6",
|
|
70
|
+
"@gooddata/sdk-ui-filters": "11.35.0-alpha.6",
|
|
71
|
+
"@gooddata/sdk-ui-geo": "11.35.0-alpha.6",
|
|
72
|
+
"@gooddata/sdk-ui-pivot": "11.35.0-alpha.6",
|
|
73
|
+
"@gooddata/sdk-ui-theme-provider": "11.35.0-alpha.6",
|
|
74
|
+
"@gooddata/sdk-ui-vis-commons": "11.35.0-alpha.6",
|
|
75
|
+
"@gooddata/util": "11.35.0-alpha.6"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -118,12 +118,12 @@
|
|
|
118
118
|
"typescript": "5.9.3",
|
|
119
119
|
"vitest": "4.1.0",
|
|
120
120
|
"vitest-dom": "0.1.1",
|
|
121
|
-
"@gooddata/
|
|
122
|
-
"@gooddata/
|
|
123
|
-
"@gooddata/oxlint-config": "11.35.0-alpha.
|
|
124
|
-
"@gooddata/reference-workspace": "11.35.0-alpha.
|
|
125
|
-
"@gooddata/sdk-backend-mockingbird": "11.35.0-alpha.
|
|
126
|
-
"@gooddata/stylelint-config": "11.35.0-alpha.
|
|
121
|
+
"@gooddata/i18n-toolkit": "11.35.0-alpha.6",
|
|
122
|
+
"@gooddata/eslint-config": "11.35.0-alpha.6",
|
|
123
|
+
"@gooddata/oxlint-config": "11.35.0-alpha.6",
|
|
124
|
+
"@gooddata/reference-workspace": "11.35.0-alpha.6",
|
|
125
|
+
"@gooddata/sdk-backend-mockingbird": "11.35.0-alpha.6",
|
|
126
|
+
"@gooddata/stylelint-config": "11.35.0-alpha.6"
|
|
127
127
|
},
|
|
128
128
|
"peerDependencies": {
|
|
129
129
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"build-check": "tsgo",
|
|
139
139
|
"build-dynamic-files": "bash scripts/build.sh --genFilesOnly",
|
|
140
140
|
"build-ts": "tsgo -p tsconfig.build.json",
|
|
141
|
-
"clean": "../../common/scripts/clean-command-state.sh && rm -rf ci dist esm coverage *.log styles/css tsconfig.tsbuildinfo",
|
|
141
|
+
"clean": "../../common/scripts/clean-command-state.sh && rm -rf ci dist esm coverage temp *.log styles/css tsconfig.tsbuildinfo",
|
|
142
142
|
"dep-cruiser": "depcruise --validate .dependency-cruiser.js --output-type err-long src/",
|
|
143
143
|
"format-check": "oxfmt --check .",
|
|
144
144
|
"format-write": "oxfmt .",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type Reducer } from "@reduxjs/toolkit";
|
|
2
|
-
import { type IParametersState } from "./parametersState.js";
|
|
3
|
-
export declare const parametersSliceReducer: Reducer<IParametersState>;
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export declare const parametersActions: {
|
|
8
|
-
addParameter: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./parametersReducers.js").IAddParameterPayload, "parameters/addParameter">;
|
|
9
|
-
setParameterRuntimeValue: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./parametersReducers.js").ISetParameterRuntimeValuePayload, "parameters/setParameterRuntimeValue">;
|
|
10
|
-
removeParameter: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./parametersReducers.js").IRemoveParameterPayload, "parameters/removeParameter">;
|
|
11
|
-
setParameterEntries: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./parametersState.js").IDashboardParameterEntry[], "parameters/setParameterEntries">;
|
|
12
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { createSlice } from "@reduxjs/toolkit";
|
|
3
|
-
import { parametersReducers } from "./parametersReducers.js";
|
|
4
|
-
import { parametersInitialState } from "./parametersState.js";
|
|
5
|
-
const parametersSlice = createSlice({
|
|
6
|
-
name: "parameters",
|
|
7
|
-
initialState: parametersInitialState,
|
|
8
|
-
reducers: parametersReducers,
|
|
9
|
-
});
|
|
10
|
-
export const parametersSliceReducer = parametersSlice.reducer;
|
|
11
|
-
/**
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export const parametersActions = { ...parametersSlice.actions };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
3
|
-
const addParameter = (state, action) => {
|
|
4
|
-
const { parameter, workspaceDefault } = action.payload;
|
|
5
|
-
if (state.parameters.some((entry) => areObjRefsEqual(entry.parameter.ref, parameter.ref))) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
state.parameters.push({
|
|
9
|
-
parameter,
|
|
10
|
-
runtimeOverride: parameter.value ?? workspaceDefault,
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
const setParameterRuntimeValue = (state, action) => {
|
|
14
|
-
const { ref, value } = action.payload;
|
|
15
|
-
const entry = state.parameters.find((item) => areObjRefsEqual(item.parameter.ref, ref));
|
|
16
|
-
if (entry) {
|
|
17
|
-
entry.runtimeOverride = value;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const removeParameter = (state, action) => {
|
|
21
|
-
state.parameters = state.parameters.filter((entry) => !areObjRefsEqual(entry.parameter.ref, action.payload.ref));
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Replace the entire entry list. Used when (re-)loading a persisted dashboard.
|
|
25
|
-
*
|
|
26
|
-
* @alpha
|
|
27
|
-
*/
|
|
28
|
-
const setParameterEntries = (state, action) => {
|
|
29
|
-
state.parameters = action.payload;
|
|
30
|
-
};
|
|
31
|
-
export const parametersReducers = {
|
|
32
|
-
addParameter,
|
|
33
|
-
setParameterRuntimeValue,
|
|
34
|
-
removeParameter,
|
|
35
|
-
setParameterEntries,
|
|
36
|
-
};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { type IDashboardParameter, type IInsightParameterValue, type ObjRef } from "@gooddata/sdk-model";
|
|
2
|
-
import { type DashboardSelector } from "../types.js";
|
|
3
|
-
import { type IDashboardParameterEntry } from "./parametersState.js";
|
|
4
|
-
/**
|
|
5
|
-
* Returns the persisted-shape parameter entries currently held by the dashboard.
|
|
6
|
-
*
|
|
7
|
-
* @alpha
|
|
8
|
-
*/
|
|
9
|
-
export declare const selectDashboardParameters: DashboardSelector<IDashboardParameter[]>;
|
|
10
|
-
/**
|
|
11
|
-
* Returns currently active parameter references.
|
|
12
|
-
*
|
|
13
|
-
* @alpha
|
|
14
|
-
*/
|
|
15
|
-
export declare const selectActiveParameterRefKeys: DashboardSelector<ReadonlySet<string>>;
|
|
16
|
-
/**
|
|
17
|
-
* Returns the full per-parameter entries (persisted shape + ephemeral `runtimeOverride`).
|
|
18
|
-
*
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export declare const selectDashboardParameterEntries: DashboardSelector<IDashboardParameterEntry[]>;
|
|
22
|
-
/**
|
|
23
|
-
* Returns a selector that yields the entry held by the dashboard for a given parameter ref,
|
|
24
|
-
* or `undefined` if no such entry exists.
|
|
25
|
-
*
|
|
26
|
-
* @alpha
|
|
27
|
-
*/
|
|
28
|
-
export declare const selectDashboardParameterEntryByRef: (ref: ObjRef) => DashboardSelector<IDashboardParameterEntry | undefined>;
|
|
29
|
-
/**
|
|
30
|
-
* Returns a selector that yields the current `runtimeOverride` for a given parameter ref,
|
|
31
|
-
* or `undefined` if the dashboard does not hold an entry for that ref.
|
|
32
|
-
*
|
|
33
|
-
* @alpha
|
|
34
|
-
*/
|
|
35
|
-
export declare const selectParameterRuntimeOverrideByRef: (ref: ObjRef) => DashboardSelector<number | undefined>;
|
|
36
|
-
/**
|
|
37
|
-
* Computes the dashboard parameters in the shape that would be persisted on save right now.
|
|
38
|
-
*
|
|
39
|
-
* @remarks
|
|
40
|
-
* For resolved entries (catalog parameters loaded AND ref present), applies smart persistence:
|
|
41
|
-
* `value` is dropped when equal to the workspace default and `label` is dropped when equal
|
|
42
|
-
* to the parameter title. For non-resolved entries (catalog not loaded, gated off, or ref
|
|
43
|
-
* missing), the persisted entry is passed through verbatim so we never compare against an
|
|
44
|
-
* unknown workspace default.
|
|
45
|
-
*
|
|
46
|
-
* @internal
|
|
47
|
-
*/
|
|
48
|
-
export declare const selectSmartPersistedDashboardParameters: DashboardSelector<IDashboardParameter[]>;
|
|
49
|
-
/**
|
|
50
|
-
* Returns true if the dashboard parameters that would be persisted differ from the persisted version.
|
|
51
|
-
*
|
|
52
|
-
* @alpha
|
|
53
|
-
*/
|
|
54
|
-
export declare const selectIsParametersChanged: DashboardSelector<boolean>;
|
|
55
|
-
/**
|
|
56
|
-
* Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`.
|
|
57
|
-
*
|
|
58
|
-
* @remarks
|
|
59
|
-
* The result is the intersection of dashboard parameter entries and the parameters referenced
|
|
60
|
-
* by the widget's insight (per `insightParameters`). Dashboard parameters not referenced by the
|
|
61
|
-
* widget's insight are excluded so that adding/removing unrelated parameters does not invalidate
|
|
62
|
-
* the widget's `defFingerprint`. Returns an empty array when `enableParameters` is off so
|
|
63
|
-
* persisted parameter values cannot silently affect execution while the UI is hidden.
|
|
64
|
-
*
|
|
65
|
-
* @alpha
|
|
66
|
-
*/
|
|
67
|
-
export declare const selectEffectiveParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { createSelector } from "@reduxjs/toolkit";
|
|
3
|
-
import { isEqual } from "lodash-es";
|
|
4
|
-
import { areObjRefsEqual, insightParameters, isNumberParameterDefinition, objRefToString, } from "@gooddata/sdk-model";
|
|
5
|
-
import { createMemoizedSelector } from "../_infra/selectors.js";
|
|
6
|
-
import { selectCatalogParameters, selectCatalogParametersIsLoaded } from "../catalog/catalogSelectors.js";
|
|
7
|
-
import { selectEnableParameters } from "../config/configSelectors.js";
|
|
8
|
-
import { selectInsightByWidgetRef } from "../insights/insightsSelectors.js";
|
|
9
|
-
const selectSelf = (state) => state.parameters;
|
|
10
|
-
const EMPTY_PARAMETERS = [];
|
|
11
|
-
const selectPersistedParametersFromMeta = (state) => state.meta?.persistedDashboard?.parameters ?? EMPTY_PARAMETERS;
|
|
12
|
-
/**
|
|
13
|
-
* Returns the persisted-shape parameter entries currently held by the dashboard.
|
|
14
|
-
*
|
|
15
|
-
* @alpha
|
|
16
|
-
*/
|
|
17
|
-
export const selectDashboardParameters = createSelector(selectSelf, (state) => state.parameters.map((entry) => entry.parameter));
|
|
18
|
-
/**
|
|
19
|
-
* Returns currently active parameter references.
|
|
20
|
-
*
|
|
21
|
-
* @alpha
|
|
22
|
-
*/
|
|
23
|
-
export const selectActiveParameterRefKeys = createSelector(selectDashboardParameters, (parameters) => new Set(parameters.map((parameter) => objRefToString(parameter.ref))));
|
|
24
|
-
/**
|
|
25
|
-
* Returns the full per-parameter entries (persisted shape + ephemeral `runtimeOverride`).
|
|
26
|
-
*
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
export const selectDashboardParameterEntries = createSelector(selectSelf, (state) => state.parameters);
|
|
30
|
-
/**
|
|
31
|
-
* Returns a selector that yields the entry held by the dashboard for a given parameter ref,
|
|
32
|
-
* or `undefined` if no such entry exists.
|
|
33
|
-
*
|
|
34
|
-
* @alpha
|
|
35
|
-
*/
|
|
36
|
-
export const selectDashboardParameterEntryByRef = createMemoizedSelector((ref) => createSelector(selectSelf, (state) => state.parameters.find((item) => areObjRefsEqual(item.parameter.ref, ref))));
|
|
37
|
-
/**
|
|
38
|
-
* Returns a selector that yields the current `runtimeOverride` for a given parameter ref,
|
|
39
|
-
* or `undefined` if the dashboard does not hold an entry for that ref.
|
|
40
|
-
*
|
|
41
|
-
* @alpha
|
|
42
|
-
*/
|
|
43
|
-
export const selectParameterRuntimeOverrideByRef = createMemoizedSelector((ref) => createSelector(selectDashboardParameterEntryByRef(ref), (entry) => entry?.runtimeOverride));
|
|
44
|
-
/**
|
|
45
|
-
* Computes the dashboard parameters in the shape that would be persisted on save right now.
|
|
46
|
-
*
|
|
47
|
-
* @remarks
|
|
48
|
-
* For resolved entries (catalog parameters loaded AND ref present), applies smart persistence:
|
|
49
|
-
* `value` is dropped when equal to the workspace default and `label` is dropped when equal
|
|
50
|
-
* to the parameter title. For non-resolved entries (catalog not loaded, gated off, or ref
|
|
51
|
-
* missing), the persisted entry is passed through verbatim so we never compare against an
|
|
52
|
-
* unknown workspace default.
|
|
53
|
-
*
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
export const selectSmartPersistedDashboardParameters = createSelector(selectDashboardParameterEntries, selectCatalogParameters, selectCatalogParametersIsLoaded, selectPersistedParametersFromMeta, (entries, workspaceParameters, isCatalogLoaded, persistedParameters) => {
|
|
57
|
-
const persistedByRef = new Map(persistedParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
58
|
-
const workspaceByRef = new Map(workspaceParameters.map((wp) => [objRefToString(wp.ref), wp]));
|
|
59
|
-
return entries.map((entry) => {
|
|
60
|
-
const refKey = objRefToString(entry.parameter.ref);
|
|
61
|
-
const workspaceParameter = isCatalogLoaded ? workspaceByRef.get(refKey) : undefined;
|
|
62
|
-
if (!workspaceParameter) {
|
|
63
|
-
return persistedByRef.get(refKey) ?? entry.parameter;
|
|
64
|
-
}
|
|
65
|
-
return smartPersistResolvedEntry(entry, workspaceParameter);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
/**
|
|
69
|
-
* Returns true if the dashboard parameters that would be persisted differ from the persisted version.
|
|
70
|
-
*
|
|
71
|
-
* @alpha
|
|
72
|
-
*/
|
|
73
|
-
export const selectIsParametersChanged = createSelector(selectSmartPersistedDashboardParameters, selectPersistedParametersFromMeta, (smartPersisted, persisted) => !isEqual(smartPersisted, persisted));
|
|
74
|
-
/**
|
|
75
|
-
* Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`.
|
|
76
|
-
*
|
|
77
|
-
* @remarks
|
|
78
|
-
* The result is the intersection of dashboard parameter entries and the parameters referenced
|
|
79
|
-
* by the widget's insight (per `insightParameters`). Dashboard parameters not referenced by the
|
|
80
|
-
* widget's insight are excluded so that adding/removing unrelated parameters does not invalidate
|
|
81
|
-
* the widget's `defFingerprint`. Returns an empty array when `enableParameters` is off so
|
|
82
|
-
* persisted parameter values cannot silently affect execution while the UI is hidden.
|
|
83
|
-
*
|
|
84
|
-
* @alpha
|
|
85
|
-
*/
|
|
86
|
-
export const selectEffectiveParameterValuesForWidget = createMemoizedSelector((ref) => createSelector(selectDashboardParameterEntries, selectInsightByWidgetRef(ref), selectEnableParameters, (entries, insight, isEnabled) => {
|
|
87
|
-
if (!isEnabled || !insight) {
|
|
88
|
-
return [];
|
|
89
|
-
}
|
|
90
|
-
const referencedRefs = new Set(insightParameters(insight).map((parameter) => objRefToString(parameter.ref)));
|
|
91
|
-
const result = [];
|
|
92
|
-
for (const entry of entries) {
|
|
93
|
-
if (entry.runtimeOverride === undefined) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
if (referencedRefs.has(objRefToString(entry.parameter.ref))) {
|
|
97
|
-
result.push({ ref: entry.parameter.ref, value: entry.runtimeOverride });
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return result;
|
|
101
|
-
}));
|
|
102
|
-
function smartPersistResolvedEntry(entry, workspaceParameter) {
|
|
103
|
-
const workspaceDefault = isNumberParameterDefinition(workspaceParameter.definition)
|
|
104
|
-
? workspaceParameter.definition.defaultValue
|
|
105
|
-
: undefined;
|
|
106
|
-
const result = {
|
|
107
|
-
ref: entry.parameter.ref,
|
|
108
|
-
parameterType: entry.parameter.parameterType,
|
|
109
|
-
mode: entry.parameter.mode,
|
|
110
|
-
...labelOverride(entry, workspaceParameter),
|
|
111
|
-
};
|
|
112
|
-
if (entry.runtimeOverride === undefined || entry.runtimeOverride === workspaceDefault) {
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
return { ...result, value: entry.runtimeOverride };
|
|
116
|
-
}
|
|
117
|
-
function labelOverride(entry, workspaceParameter) {
|
|
118
|
-
if (entry.parameter.label && entry.parameter.label !== workspaceParameter.title) {
|
|
119
|
-
return { label: entry.parameter.label };
|
|
120
|
-
}
|
|
121
|
-
return {};
|
|
122
|
-
}
|