@gooddata/sdk-ui-dashboard 11.43.0-alpha.1 → 11.43.0-alpha.3
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 +4826 -13873
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts +2 -2
- package/esm/model/commandHandlers/dashboard/common/filterViews.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/common/filterViews.js +1 -5
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +1 -1
- package/esm/model/commandHandlers/dashboard/resetDashboardHandler.js +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +10 -5
- package/esm/model/queryServices/queryWidgetFilters.d.ts +1 -1
- package/esm/model/queryServices/queryWidgetFilters.d.ts.map +1 -1
- package/esm/model/queryServices/queryWidgetFilters.js +19 -36
- package/esm/model/store/config/configSelectors.d.ts +0 -6
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +0 -8
- 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 +2 -2
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +6 -0
- package/esm/model/store/tabs/parameters/parametersSelectors.d.ts.map +1 -1
- package/esm/model/store/tabs/parameters/parametersSelectors.js +11 -4
- package/esm/model/store/topBar/topBarSelectors.d.ts.map +1 -1
- package/esm/model/store/topBar/topBarSelectors.js +4 -4
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +1 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +18 -13
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.js +3 -4
- package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.d.ts.map +1 -1
- package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.js +11 -13
- package/esm/presentation/export/DefaultDashboardExportVariables.d.ts.map +1 -1
- package/esm/presentation/export/DefaultDashboardExportVariables.js +13 -8
- package/esm/presentation/export/DefaultDashboardExportVariables.test.d.ts +2 -0
- package/esm/presentation/export/DefaultDashboardExportVariables.test.d.ts.map +1 -0
- package/esm/presentation/export/DefaultDashboardExportVariables.test.js +58 -0
- package/esm/presentation/export/types.d.ts +2 -1
- package/esm/presentation/export/types.d.ts.map +1 -1
- package/esm/presentation/export/useExportData.d.ts.map +1 -1
- package/esm/presentation/export/useExportData.js +6 -0
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +3 -3
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +2 -2
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -1
- package/esm/presentation/topBar/menuButton/DefaultMenuButton.d.ts.map +1 -1
- package/esm/presentation/topBar/menuButton/DefaultMenuButton.js +10 -19
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +3 -4
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.d.ts.map +1 -1
- package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogExportDropdown.js +1 -1
- package/esm/sdk-ui-dashboard.d.ts +2 -8
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
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,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,eAAO,MAAM,
|
|
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,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAG9B;;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;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,wBAAwB,EAAE,EACnC,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,sBAAsB,EAAE,CAe1B;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,mBAAmB,EAC9B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,MAAM,GAAG,SAAS,CAOpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,mBAAmB,EAAE,wBAAwB,EAAE,GAChD,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAKzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,wBAAwB,EAC/B,kBAAkB,EAAE,wBAAwB,GAAG,SAAS,GACzD,yBAAyB,GAAG,SAAS,CAUvC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,wBAAwB,EAC/B,kBAAkB,EAAE,wBAAwB,GAC7C,mBAAmB,CAcrB;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,MAAM,GAAG,SAAS,CAapB;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,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,CAiBpF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,gBAAgB,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,EAC9E,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACtD,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAa7C;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC5C,cAAc,EAAE,aAAa,CAAC,wBAAwB,CAAC,EACvD,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC7B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,GACnD;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,EAAE,CAuBhD"}
|
|
@@ -5,7 +5,7 @@ const EMPTY_PARAMETERS = [];
|
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export const
|
|
8
|
+
export const EMPTY_EXPORT_PARAMETERS_BY_TAB = {};
|
|
9
9
|
/**
|
|
10
10
|
* Walks the insight's metric buckets and returns the parameter refs they reference,
|
|
11
11
|
* deduped by ref string. The order matches the first occurrence in the measure traversal.
|
|
@@ -219,7 +219,7 @@ export function collectExportOverrides(tabRefSelections, workspaceByRef) {
|
|
|
219
219
|
result[tab.localIdentifier] = rows;
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
|
-
return Object.keys(result).length === 0 ?
|
|
222
|
+
return Object.keys(result).length === 0 ? EMPTY_EXPORT_PARAMETERS_BY_TAB : result;
|
|
223
223
|
}
|
|
224
224
|
/**
|
|
225
225
|
* Builds per-tab ref selections for a widget-scope export: each widget's owning tab is restricted
|
|
@@ -149,4 +149,10 @@ export declare const selectEffectiveDashboardParametersForWidget: (ref: ObjRef |
|
|
|
149
149
|
* @alpha
|
|
150
150
|
*/
|
|
151
151
|
export declare const selectExportEffectiveParameters: (widgetIds: string[] | undefined) => DashboardSelector<Record<string, IDashboardExportParameter[]>>;
|
|
152
|
+
/**
|
|
153
|
+
* Active-tab slice of {@link selectExportEffectiveParameters}.
|
|
154
|
+
*
|
|
155
|
+
* @internal
|
|
156
|
+
*/
|
|
157
|
+
export declare const selectActiveTabExportParameters: DashboardSelector<IDashboardExportParameter[]>;
|
|
152
158
|
//# sourceMappingURL=parametersSelectors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EAId,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBxD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"parametersSelectors.d.ts","sourceRoot":"","sources":["../../../../../src/model/store/tabs/parameters/parametersSelectors.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EAId,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBxD,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,sBAAsB,CAAC;AAmB9B;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,CAG9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAG/E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,CAGzF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,SAAS,CAMtF,CAAC;AAEP;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,CAC7C,GAAG,EAAE,MAAM,KACV,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAI1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAGlG,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAa7F,CAAC;AAEN;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CA4BnG,CAAC;AA6BN;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAchE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,iBAAiB,CAChE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,CAa/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,EAAE,iBAAiB,CAAC,OAAO,CAGjF,CAAC;AA6BF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uCAAuC,EAAE,CAClD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,sBAAsB,EAAE,CA6B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+CAA+C,EAAE,CAC1D,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,sBAAsB,EAAE,CAW9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2CAA2C,EAAE,CACtD,GAAG,EAAE,MAAM,GAAG,SAAS,KACtB,iBAAiB,CAAC,mBAAmB,EAAE,CAe3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,+BAA+B,EAAE,CAC1C,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,KAC9B,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAGX,CAAC;AA6DxD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,yBAAyB,EAAE,CAI1F,CAAC"}
|
|
@@ -8,11 +8,12 @@ import { selectEnableParameters } from "../../config/configSelectors.js";
|
|
|
8
8
|
import { selectInsightsMap } from "../../insights/insightsSelectors.js";
|
|
9
9
|
import { selectIsInEditMode } from "../../renderMode/renderModeSelectors.js";
|
|
10
10
|
import { selectAllTabsInsightWidgetContexts } from "../layout/layoutSelectors.js";
|
|
11
|
-
import { selectActiveTab, selectTabs } from "../tabsSelectors.js";
|
|
11
|
+
import { selectActiveOrDefaultTabLocalIdentifier, selectActiveTab, selectTabs } from "../tabsSelectors.js";
|
|
12
12
|
import { DEFAULT_TAB_ID } from "../tabsState.js";
|
|
13
|
-
import {
|
|
13
|
+
import { EMPTY_EXPORT_PARAMETERS_BY_TAB, applyRuntimeOverride, buildPersistedByTabAndRef, buildWidgetScopeTabRefSelections, collectExportOverrides, collectReferencedParameterRefs, computeParameterResetTargets, computeParameterResetValue, smartPersistResolvedEntry, workspaceParametersByRef, } from "./parametersHelpers.js";
|
|
14
14
|
import { parametersInitialState, pickTabParametersSource, } from "./parametersState.js";
|
|
15
15
|
const EMPTY_PARAMETERS = [];
|
|
16
|
+
const EMPTY_EXPORT_PARAMETERS = [];
|
|
16
17
|
const EMPTY_PARAMETER_VALUES = [];
|
|
17
18
|
const EMPTY_TABS = [];
|
|
18
19
|
const EMPTY_RESET_TARGETS = [];
|
|
@@ -293,16 +294,22 @@ export const selectExportEffectiveParameters = (widgetIds) => widgetIds?.length
|
|
|
293
294
|
: selectExportEffectiveParametersDashboardScope;
|
|
294
295
|
const selectExportEffectiveParametersDashboardScope = createSelector(selectTabs, selectEnableParameters, selectCatalogParameters, selectCatalogParametersIsLoaded, (tabs, isEnabled, catalogParameters, isCatalogLoaded) => {
|
|
295
296
|
if (!isEnabled || !isCatalogLoaded || !tabs?.length) {
|
|
296
|
-
return
|
|
297
|
+
return EMPTY_EXPORT_PARAMETERS_BY_TAB;
|
|
297
298
|
}
|
|
298
299
|
const workspaceByRef = new Map(catalogParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
299
300
|
return collectExportOverrides(tabs.map((tab) => ({ tab })), workspaceByRef);
|
|
300
301
|
});
|
|
301
302
|
const selectExportEffectiveParametersForWidgets = createMemoizedSelector((widgetIds) => createSelector(selectAllTabsInsightWidgetContexts, selectInsightsMap, selectEnableParameters, selectCatalogParameters, selectCatalogParametersIsLoaded, selectCatalogMeasureParameters, selectCatalogMeasureParametersStatus, (widgetContexts, insights, isEnabled, catalogParameters, isCatalogLoaded, measureParameters, measureParametersStatus) => {
|
|
302
303
|
if (!isEnabled || !isCatalogLoaded || measureParametersStatus !== "loaded") {
|
|
303
|
-
return
|
|
304
|
+
return EMPTY_EXPORT_PARAMETERS_BY_TAB;
|
|
304
305
|
}
|
|
305
306
|
const workspaceByRef = new Map(catalogParameters.map((parameter) => [objRefToString(parameter.ref), parameter]));
|
|
306
307
|
const tabRefSelections = buildWidgetScopeTabRefSelections(widgetContexts, widgetIds, insights, measureParameters);
|
|
307
308
|
return collectExportOverrides(tabRefSelections, workspaceByRef);
|
|
308
309
|
}));
|
|
310
|
+
/**
|
|
311
|
+
* Active-tab slice of {@link selectExportEffectiveParameters}.
|
|
312
|
+
*
|
|
313
|
+
* @internal
|
|
314
|
+
*/
|
|
315
|
+
export const selectActiveTabExportParameters = createSelector(selectExportEffectiveParametersDashboardScope, selectActiveOrDefaultTabLocalIdentifier, (parametersByTab, activeTabId) => parametersByTab[activeTabId] ?? EMPTY_EXPORT_PARAMETERS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topBarSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/topBar/topBarSelectors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"topBarSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/topBar/topBarSelectors.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1E;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAO7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,iBAAiB,CAAC,OAAO,CAIxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAI/D,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,WAE3D;AAED;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CAAC,OAAO,CAK5E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uCAAuC,EAAE,iBAAiB,CAAC,OAAO,CAO9E,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAMhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAOhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,iBAAiB,CAAC,OAAO,CAIxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAAiB,CAAC,OAAO,CAuBjE,CAAC;AAEF;;GAEG;AACH,wBAAgB,6CAA6C,CAAC,KAAK,EAAE,cAAc,WAElF;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,OAAO,CAuBrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,OAAO,CAMlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAAC,OAAO,CAMrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,CAAC,OAAO,CAYnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAW7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAkB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAM5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAM1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAK/D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
// (C) 2021-
|
|
1
|
+
// (C) 2021-2026 GoodData Corporation
|
|
2
2
|
import { createSelector } from "@reduxjs/toolkit";
|
|
3
3
|
import { selectSupportsCrossFiltering } from "../backendCapabilities/backendCapabilitiesSelectors.js";
|
|
4
|
-
import { selectEnableAutomationManagement, selectEnableDashboardShareDialogLink,
|
|
4
|
+
import { selectEnableAutomationManagement, selectEnableDashboardShareDialogLink, selectEnableKDCrossFiltering, selectEnableKPIDashboardExportPDF, selectEnableSlideshowExports, selectIsExport, selectIsReadOnly, selectIsSaveAsNewButtonHidden, selectIsShareButtonHidden, selectIsWhiteLabeled, } from "../config/configSelectors.js";
|
|
5
5
|
import { selectCanEditDashboardPermission, selectCanEditLockedDashboardPermission, selectCanShareDashboardPermission, selectCanShareLockedDashboardPermission, } from "../dashboardPermissions/dashboardPermissionsSelectors.js";
|
|
6
6
|
import { selectListedDashboardsMap } from "../listedDashboards/listedDashboardsSelectors.js";
|
|
7
7
|
import { selectIsDashboardLoading } from "../loading/loadingSelectors.js";
|
|
@@ -156,6 +156,6 @@ export const selectDeleteVisible = createSelector(selectIsInEditMode, selectMenu
|
|
|
156
156
|
*
|
|
157
157
|
* @internal
|
|
158
158
|
*/
|
|
159
|
-
export const selectFilterViewsVisible = createSelector(
|
|
160
|
-
return
|
|
159
|
+
export const selectFilterViewsVisible = createSelector(selectDisableFilterViews, (disableFilterViews) => {
|
|
160
|
+
return !disableFilterViews;
|
|
161
161
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA2DA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA2BxD,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"DefaultAlertingDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/_staging/alerting/DefaultAlertingDialog/DefaultAlertingDialog.tsx"],"names":[],"mappings":"AA2DA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA2BxD,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EAChB,EAAE,oBAAoB,2CA+kBtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,2CAMhE"}
|
|
@@ -125,9 +125,8 @@ export function AlertingDialogRenderer({ alertToEdit, users, usersError, notific
|
|
|
125
125
|
message: validationErrorMessage,
|
|
126
126
|
severity: isInvalidConnectionToInsight ? "error" : "warning",
|
|
127
127
|
}),
|
|
128
|
-
!!thresholdErrorMessage && createInvalidDatapoint({ message: thresholdErrorMessage }),
|
|
129
128
|
]);
|
|
130
|
-
}, [validationErrorMessage,
|
|
129
|
+
}, [validationErrorMessage, isInvalidConnectionToInsight, setInvalidDatapoints]);
|
|
131
130
|
const helpTextId = isMobileView()
|
|
132
131
|
? defineMessage({ id: "dialogs.alerting.footer.title.short" }).id
|
|
133
132
|
: defineMessage({ id: "dialogs.alerting.footer.title" }).id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"AAOA,OAAO,EAGH,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAE9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,4CAA4C,EACjD,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EAU5B,MAAM,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAM3F,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAmBzF,MAAM,WAAW,2BAA2B;IACxC,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAEnE;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnE;;;OAGG;IACH,+BAA+B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,KAAK,IAAI,CAAC;IACzF,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACvD,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,qCAAqC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAEnF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;CACjF;AAED,wBAAgB,qBAAqB,CAAC,EAClC,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,EAChC,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,qCAAqC,EACxC,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"AAOA,OAAO,EAGH,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAE9B,KAAK,mCAAmC,EACxC,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,4CAA4C,EACjD,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EAU5B,MAAM,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAM3F,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAmBzF,MAAM,WAAW,2BAA2B;IACxC,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,oBAAoB,EAAE,8BAA8B,EAAE,GAAG,kCAAkC,EAAE,CAAC;IAC9F,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,0BAA0B,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAEnE;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnE;;;OAGG;IACH,+BAA+B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,KAAK,IAAI,CAAC;IACzF,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACvD,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,qCAAqC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAEnF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;CACjF;AAED,wBAAgB,qBAAqB,CAAC,EAClC,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,EAChC,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,qCAAqC,EACxC,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA62B7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2019-2026 GoodData Corporation
|
|
2
|
-
import { useCallback, useMemo, useState } from "react";
|
|
2
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { useIntl } from "react-intl";
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
5
|
import { DEFAULT_CSV_DELIMITER, insightProperties, isAutomationExternalUserRecipient, isAutomationUnknownUserRecipient, isAutomationUserRecipient, isExportDefinitionDashboardRequestPayload, isExportDefinitionVisualizationObjectRequestPayload, isInsightWidget, isWidget, objRefToString, } from "@gooddata/sdk-model";
|
|
@@ -110,10 +110,17 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
110
110
|
parametersByTab: parametersByTabForNewAutomation,
|
|
111
111
|
}));
|
|
112
112
|
const [originalAutomation] = useState(editedAutomation);
|
|
113
|
+
// Holds the wire outside the automation so it survives a rebuild from zero export definitions —
|
|
114
|
+
// with no definitions `setExportParametersByTab` has nowhere to store it.
|
|
115
|
+
// Seeded from the stored wire.
|
|
116
|
+
const latestParametersWireRef = useRef(getAutomationExportParametersByTab(editedAutomation));
|
|
113
117
|
// The user-edit path into `content.parametersByTab`: re-encoded wire in, every export definition
|
|
114
118
|
// patched. Handed to `useAutomationExportParameters`, which owns when to call it. Definition
|
|
115
119
|
// rebuilds preserve the wire separately via `withRebuiltExportDefinitions`.
|
|
116
|
-
const setParametersWire = useCallback((wire) =>
|
|
120
|
+
const setParametersWire = useCallback((wire) => {
|
|
121
|
+
latestParametersWireRef.current = wire;
|
|
122
|
+
setEditedAutomation((automation) => setExportParametersByTab(automation, wire));
|
|
123
|
+
}, []);
|
|
117
124
|
const selectedAttachments = useMemo(() => {
|
|
118
125
|
return (editedAutomation.exportDefinitions
|
|
119
126
|
?.map((exportDefinition) => exportDefinition.requestPayload.format)
|
|
@@ -128,7 +135,7 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
128
135
|
setEditedAutomation((s) => ({
|
|
129
136
|
...s,
|
|
130
137
|
schedule: {
|
|
131
|
-
...
|
|
138
|
+
...s.schedule,
|
|
132
139
|
cron: cronExpression,
|
|
133
140
|
firstRun: toModifiedISOStringToTimezone(startDate ?? new Date(), timezone).iso,
|
|
134
141
|
},
|
|
@@ -157,7 +164,7 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
157
164
|
setEditedAutomation((s) => ({
|
|
158
165
|
...s,
|
|
159
166
|
details: {
|
|
160
|
-
...
|
|
167
|
+
...s.details,
|
|
161
168
|
subject: value,
|
|
162
169
|
},
|
|
163
170
|
}));
|
|
@@ -167,7 +174,7 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
167
174
|
setEditedAutomation((s) => ({
|
|
168
175
|
...s,
|
|
169
176
|
details: {
|
|
170
|
-
...
|
|
177
|
+
...s.details,
|
|
171
178
|
message: value,
|
|
172
179
|
},
|
|
173
180
|
}));
|
|
@@ -188,7 +195,7 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
188
195
|
format,
|
|
189
196
|
}));
|
|
190
197
|
const updatedExportDefinitions = [...keptExportDefinitions, ...newExportDefinitions];
|
|
191
|
-
return withRebuiltExportDefinitions(s, updatedExportDefinitions);
|
|
198
|
+
return withRebuiltExportDefinitions(s, updatedExportDefinitions, latestParametersWireRef.current);
|
|
192
199
|
});
|
|
193
200
|
};
|
|
194
201
|
const onWidgetAttachmentsChange = (formats) => {
|
|
@@ -212,7 +219,7 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
212
219
|
defaultPdfPageSize,
|
|
213
220
|
}));
|
|
214
221
|
const updatedExportDefinitions = [...keptExportDefinitions, ...newExportDefinitions];
|
|
215
|
-
return withRebuiltExportDefinitions(s, updatedExportDefinitions);
|
|
222
|
+
return withRebuiltExportDefinitions(s, updatedExportDefinitions, latestParametersWireRef.current);
|
|
216
223
|
});
|
|
217
224
|
};
|
|
218
225
|
const onXlsxSettingsChange = useCallback((settings) => {
|
|
@@ -629,14 +636,12 @@ export function useEditScheduledEmail({ scheduledExportToEdit, notificationChann
|
|
|
629
636
|
};
|
|
630
637
|
}
|
|
631
638
|
/**
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
|
-
*
|
|
635
|
-
* with "keep parameters".
|
|
639
|
+
* Rebuilds the export definitions and re-applies the parameter wire (fresh definitions carry no
|
|
640
|
+
* `content.parametersByTab`). The wire is passed in rather than read off `automation` so it survives
|
|
641
|
+
* a rebuild from zero definitions — see `latestParametersWireRef`.
|
|
636
642
|
*/
|
|
637
|
-
function withRebuiltExportDefinitions(automation, exportDefinitions) {
|
|
643
|
+
function withRebuiltExportDefinitions(automation, exportDefinitions, parametersByTab) {
|
|
638
644
|
const next = { ...automation, exportDefinitions };
|
|
639
|
-
const parametersByTab = getAutomationExportParametersByTab(automation);
|
|
640
645
|
return parametersByTab ? setExportParametersByTab(next, parametersByTab) : next;
|
|
641
646
|
}
|
|
642
647
|
function newDashboardExportDefinitionMetadataObjectDefinition({ dashboardId, dashboardTitle, dashboardFilters, filtersByTab, format, templateId, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultDashboardSettingsDialog.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAoD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultDashboardSettingsDialog.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardSettingsDialog/DefaultDashboardSettingsDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAoD,MAAM,OAAO,CAAC;AAqC5F,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAGhE;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC3C,SAAS,EACT,OAAO,EACP,QAAQ,EACX,EAAE,6BAA6B,GAAG,YAAY,GAAG,IAAI,CAkMrD"}
|
|
@@ -7,7 +7,7 @@ import { Bubble, BubbleHoverTrigger, ConfirmDialog, DialogListHeader, Dropdown,
|
|
|
7
7
|
import { queryDateDatasetsForInsight, } from "../../model/queries/insights.js";
|
|
8
8
|
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
9
9
|
import { useDashboardQueryProcessing } from "../../model/react/useDashboardQueryProcessing.js";
|
|
10
|
-
import { selectDateFormat, selectEnableAlertsEvaluationFrequencySetup, selectEnableDashboardSectionHeadersDateDataSet,
|
|
10
|
+
import { selectDateFormat, selectEnableAlertsEvaluationFrequencySetup, selectEnableDashboardSectionHeadersDateDataSet, selectIsWhiteLabeled, selectLocale, selectSettings, selectWeekStart, } from "../../model/store/config/configSelectors.js";
|
|
11
11
|
import { selectCrossFilteringEnabledAndSupported } from "../../model/store/topBar/topBarSelectors.js";
|
|
12
12
|
import { useDialogData } from "./useDialogData.js";
|
|
13
13
|
/**
|
|
@@ -22,7 +22,6 @@ export function DefaultDashboardSettingsDialog({ isVisible, onApply, onCancel /*
|
|
|
22
22
|
const locale = useDashboardSelector(selectLocale);
|
|
23
23
|
const isCrossFilteringEnabledAndSupported = useDashboardSelector(selectCrossFilteringEnabledAndSupported);
|
|
24
24
|
const enableAlertsEvaluationFrequencySetup = useDashboardSelector(selectEnableAlertsEvaluationFrequencySetup);
|
|
25
|
-
const isFilterViewsFeatureEnabled = useDashboardSelector(selectEnableFilterViews);
|
|
26
25
|
const settings = useDashboardSelector(selectSettings);
|
|
27
26
|
const isWhiteLabeled = useDashboardSelector(selectIsWhiteLabeled);
|
|
28
27
|
const enableDashboardSectionHeadersDateDataSet = useDashboardSelector(selectEnableDashboardSectionHeadersDateDataSet);
|
|
@@ -62,7 +61,7 @@ export function DefaultDashboardSettingsDialog({ isVisible, onApply, onCancel /*
|
|
|
62
61
|
disableUserFilterReset: newValue,
|
|
63
62
|
});
|
|
64
63
|
} })
|
|
65
|
-
] })) : null,
|
|
64
|
+
] })) : null, _jsx(ConfigurationOption, { label: intl.formatMessage({
|
|
66
65
|
id: "filters.configurationPanel.filterViews.toggle",
|
|
67
66
|
}), tooltip: intl.formatMessage({ id: "filters.configurationPanel.filterViews.toggle.tooltip" }, {
|
|
68
67
|
p: (chunks) => _jsx("p", { children: chunks }),
|
|
@@ -71,7 +70,7 @@ export function DefaultDashboardSettingsDialog({ isVisible, onApply, onCancel /*
|
|
|
71
70
|
...currentData,
|
|
72
71
|
disableFilterViews: newValue,
|
|
73
72
|
});
|
|
74
|
-
} })
|
|
73
|
+
} }), _jsx(ConfigurationOption, { label: intl.formatMessage({ id: "filters.configurationPanel.userFilterSave.toggle" }), tooltip: intl.formatMessage({
|
|
75
74
|
id: "filters.configurationPanel.userFilterSave.toggle.tooltip",
|
|
76
75
|
}), isChecked: !currentData.disableUserFilterSave, onChange: (newValue) => {
|
|
77
76
|
setCurrentData({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomUrlEditor.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,SAAS,EAAW,MAAM,YAAY,CAAC;AAEvE,OAAO,EAKH,KAAK,MAAM,EAad,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomUrlEditor.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,SAAS,EAAW,MAAM,YAAY,CAAC;AAEvE,OAAO,EAKH,KAAK,MAAM,EAad,MAAM,qBAAqB,CAAC;AA6B7B,OAAO,EAAE,KAAK,cAAc,EAA4B,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5C,IAAI,EAAE,SAAS,CAAC;CACnB;AAsCD,wBAAgB,QAAQ,CAAC,EACrB,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,uBAAuB,EAC1B,EAAE,cAAc,kDAoBhB;AAwHD,UAAU,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAmLD,MAAM,WAAW,qBAAqB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACpD,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,sCAAsC,EAAE,MAAM,EAAE,CAAC;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,OAAO,CAAC;IACjC,4BAA4B,EAAE,OAAO,CAAC;IACtC,uBAAuB,EAAE,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACrB;AAmHD,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,2CAkB3D"}
|
|
@@ -9,13 +9,11 @@ import { filterObjRef, idRef, insightFilters as insightDefinitionFilters, isArbi
|
|
|
9
9
|
import { ConfirmDialogBase, FullScreenOverlay, Overlay, OverlayController, OverlayControllerProvider, SyntaxHighlightingInput, useMediaQuery, } from "@gooddata/sdk-ui-kit";
|
|
10
10
|
import { dashboardAttributeFilterItemToAttributeFilter } from "../../../../converters/filterConverters.js";
|
|
11
11
|
import { useDashboardSelector } from "../../../../model/react/DashboardStoreProvider.js";
|
|
12
|
-
import { useWidgetFilters } from "../../../../model/react/useWidgetFilters.js";
|
|
13
12
|
import { selectAllCatalogDisplayFormsMap, selectAllCatalogMeasuresMap, } from "../../../../model/store/catalog/catalogSelectors.js";
|
|
14
13
|
import { selectEnableMeasureValueFilterKD, selectIsWhiteLabeled, } from "../../../../model/store/config/configSelectors.js";
|
|
15
14
|
import { selectInsightByWidgetRef } from "../../../../model/store/insights/insightsSelectors.js";
|
|
16
15
|
import { selectAttributeFilterConfigsOverrides } from "../../../../model/store/tabs/attributeFilterConfigs/attributeFilterConfigsSelectors.js";
|
|
17
16
|
import { selectFilterContextAttributeFilterItems, selectFilterContextMeasureValueFilters, } from "../../../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
18
|
-
import { selectFilterableWidgetByRef } from "../../../../model/store/tabs/layout/layoutSelectors.js";
|
|
19
17
|
import { DASHBOARD_HEADER_OVERLAYS_Z_INDEX } from "../../../constants/zIndex.js";
|
|
20
18
|
import { useInvalidFilteringParametersIdentifiers } from "../../../widget/insight/configuration/DrillTargets/useInvalidFilteringParametersIdentifiers.js";
|
|
21
19
|
import { isDrillToCustomUrlConfig } from "../../types.js";
|
|
@@ -291,19 +289,19 @@ function useInsightMeasureValueFilters(widgetRef, enabled) {
|
|
|
291
289
|
}, [enabled, insight]);
|
|
292
290
|
}
|
|
293
291
|
function useSanitizedInsightFilters(widgetRef) {
|
|
294
|
-
const
|
|
295
|
-
const widgetFiltersResult = useWidgetFilters(widget);
|
|
292
|
+
const insight = useDashboardSelector(selectInsightByWidgetRef(widgetRef));
|
|
296
293
|
const sanitizeAttributeFilter = useSanitizeAttributeFilter();
|
|
297
294
|
return useMemo(() => {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
295
|
+
if (!insight) {
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
298
|
+
// Date filters are currently not supported, so filter them out
|
|
299
|
+
return uniqBy(insightDefinitionFilters(insight)
|
|
300
|
+
.filter(isAttributeFilter)
|
|
301
|
+
.map(sanitizeAttributeFilter)
|
|
302
|
+
.filter(isAttributeFilter), // filter out undefined values (eg. filters with removed display forms)
|
|
303
|
+
(f) => serializeObjRef(filterObjRef(f)));
|
|
304
|
+
}, [insight, sanitizeAttributeFilter]);
|
|
307
305
|
}
|
|
308
306
|
function useSanitizedDashboardFilters() {
|
|
309
307
|
// Date filters are currently not supported, so select only attribute filters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultDashboardExportVariables.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/DefaultDashboardExportVariables.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DefaultDashboardExportVariables.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/DefaultDashboardExportVariables.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD;;GAEG;AACH,MAAM,WAAW,qCAAqC;IAClD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,UAAU,EAAE,EAAE,qCAAqC,kDAyEpG"}
|
|
@@ -6,6 +6,7 @@ import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
|
6
6
|
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
7
7
|
import { selectConfig } from "../../model/store/config/configSelectors.js";
|
|
8
8
|
import { selectDashboardDescriptor, selectDashboardId } from "../../model/store/meta/metaSelectors.js";
|
|
9
|
+
import { selectActiveTabExportParameters } from "../../model/store/tabs/parameters/parametersSelectors.js";
|
|
9
10
|
import { selectCurrentUser } from "../../model/store/user/userSelectors.js";
|
|
10
11
|
import { useDashboardRelatedFilters } from "./hooks/useDashboardRelatedFilters.js";
|
|
11
12
|
import { useMetaExportData, useMetaExportImageData, useMetaPaletteData } from "./useExportData.js";
|
|
@@ -20,21 +21,25 @@ export function DefaultDashboardExportVariables({ renderMode }) {
|
|
|
20
21
|
const dashboardId = useDashboardSelector(selectDashboardId);
|
|
21
22
|
const dashboardDescriptor = useDashboardSelector(selectDashboardDescriptor);
|
|
22
23
|
const { dateFilters, attributeFilters, measureValueFilters, isError, isLoading } = useDashboardRelatedFilters(run);
|
|
24
|
+
const parameters = useDashboardSelector(selectActiveTabExportParameters);
|
|
23
25
|
const theme = useTheme();
|
|
24
26
|
if (!run) {
|
|
25
27
|
return null;
|
|
26
28
|
}
|
|
29
|
+
const filterGroups = [
|
|
30
|
+
{ kind: "date", items: dateFilters, attrs: exportData?.filters?.dateFilter },
|
|
31
|
+
{ kind: "attribute", items: attributeFilters, attrs: exportData?.filters?.attributeFilter },
|
|
32
|
+
{ kind: "measureValue", items: measureValueFilters, attrs: exportData?.filters?.measureValueFilter },
|
|
33
|
+
];
|
|
34
|
+
const hasEntries = dateFilters.length + attributeFilters.length + measureValueFilters.length + parameters.length > 0;
|
|
27
35
|
return (_jsxs("div", { className: "gd-dashboard-meta", ...exportData?.root, children: [
|
|
28
|
-
_jsx("div", { ...exportData?.id, children: dashboardId }), dashboardDescriptor.title ? _jsx("div", { ...exportData?.title, children: dashboardDescriptor.title }) : null, dashboardDescriptor.description ? (_jsx("div", { ...exportData?.description, children: dashboardDescriptor.description })) : null, dashboardDescriptor.tags && dashboardDescriptor.tags.length > 0 ? (_jsx("div", { ...exportData?.tags?.root, children: dashboardDescriptor.tags.map((tag, i) => (_jsx("span", { ...exportData?.tags?.tag, children: tag }, i))) })) : null, _jsx("div", { ...exportData?.filters?.root, ...exportData?.filters?.rootData(isLoading, isError), children:
|
|
36
|
+
_jsx("div", { ...exportData?.id, children: dashboardId }), dashboardDescriptor.title ? _jsx("div", { ...exportData?.title, children: dashboardDescriptor.title }) : null, dashboardDescriptor.description ? (_jsx("div", { ...exportData?.description, children: dashboardDescriptor.description })) : null, dashboardDescriptor.tags && dashboardDescriptor.tags.length > 0 ? (_jsx("div", { ...exportData?.tags?.root, children: dashboardDescriptor.tags.map((tag, i) => (_jsx("span", { ...exportData?.tags?.tag, children: tag }, i))) })) : null, _jsx("div", { ...exportData?.filters?.root, ...exportData?.filters?.rootData(isLoading, isError), children: hasEntries ? (_jsxs(_Fragment, { children: [filterGroups.flatMap(({ kind, items, attrs }) => items.map((filter, i) => (_jsxs("div", { ...attrs, ...exportData?.filters?.filter.filterData(filter, isLoading, isError), children: [
|
|
29
37
|
_jsx("span", { ...exportData?.filters?.filter.name, children: filter?.title }),
|
|
30
38
|
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: filter?.subtitle })
|
|
31
|
-
] }, i))),
|
|
32
|
-
_jsx("span", { ...exportData?.filters?.filter.name, children:
|
|
33
|
-
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children:
|
|
34
|
-
] }, i))),
|
|
35
|
-
_jsx("span", { ...exportData?.filters?.filter.name, children: filter?.title }),
|
|
36
|
-
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: filter?.subtitle })
|
|
37
|
-
] }, i)))] })) : null }), user?.fullName ? _jsx("div", { ...exportData?.user, children: user.fullName }) : null, conf.workspaceDescriptor ? (_jsx("div", { ...exportData?.workspace, children: conf.workspaceDescriptor.title })) : null, _jsx(MetaImage, { image: theme?.images?.logo, type: "logo" }), _jsx(MetaImage, { image: theme?.images?.coverImage, type: "cover-image" }), _jsx(Palette, { data: theme?.palette?.complementary })
|
|
39
|
+
] }, `${kind}-${i}`)))), parameters.map((parameter, i) => (_jsxs("div", { ...exportData?.filters?.parameter, children: [
|
|
40
|
+
_jsx("span", { ...exportData?.filters?.filter.name, children: parameter.title }),
|
|
41
|
+
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: parameter.value })
|
|
42
|
+
] }, `parameter-${i}`)))] })) : null }), user?.fullName ? _jsx("div", { ...exportData?.user, children: user.fullName }) : null, conf.workspaceDescriptor ? (_jsx("div", { ...exportData?.workspace, children: conf.workspaceDescriptor.title })) : null, _jsx(MetaImage, { image: theme?.images?.logo, type: "logo" }), _jsx(MetaImage, { image: theme?.images?.coverImage, type: "cover-image" }), _jsx(Palette, { data: theme?.palette?.complementary })
|
|
38
43
|
] }));
|
|
39
44
|
}
|
|
40
45
|
function MetaImage({ image, type, }) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultDashboardExportVariables.test.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/DefaultDashboardExportVariables.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { render } from "@testing-library/react";
|
|
4
|
+
import { describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { selectConfig } from "../../model/store/config/configSelectors.js";
|
|
6
|
+
import { selectDashboardDescriptor } from "../../model/store/meta/metaSelectors.js";
|
|
7
|
+
import { selectIsInExportMode } from "../../model/store/renderMode/renderModeSelectors.js";
|
|
8
|
+
import { selectActiveTabExportParameters } from "../../model/store/tabs/parameters/parametersSelectors.js";
|
|
9
|
+
vi.mock("../../model/react/DashboardStoreProvider.js", () => ({
|
|
10
|
+
useDashboardSelector: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
vi.mock("./hooks/useDashboardRelatedFilters.js", () => ({
|
|
13
|
+
useDashboardRelatedFilters: () => ({
|
|
14
|
+
dateFilters: [],
|
|
15
|
+
attributeFilters: [],
|
|
16
|
+
measureValueFilters: [],
|
|
17
|
+
isLoading: false,
|
|
18
|
+
isError: false,
|
|
19
|
+
isSuccess: true,
|
|
20
|
+
}),
|
|
21
|
+
}));
|
|
22
|
+
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
23
|
+
import { DefaultDashboardExportVariables } from "./DefaultDashboardExportVariables.js";
|
|
24
|
+
// Scoping lives in the selector (tested separately); here we drive its output.
|
|
25
|
+
function mockSelectors(parameters) {
|
|
26
|
+
const values = new Map([
|
|
27
|
+
[selectIsInExportMode, true],
|
|
28
|
+
[selectActiveTabExportParameters, parameters],
|
|
29
|
+
[selectConfig, {}],
|
|
30
|
+
[selectDashboardDescriptor, {}],
|
|
31
|
+
]);
|
|
32
|
+
vi.mocked(useDashboardSelector).mockImplementation((selector) => values.get(selector));
|
|
33
|
+
}
|
|
34
|
+
function parameterEntries(container) {
|
|
35
|
+
return Array.from(container.querySelectorAll('[data-export-meta-filter-type="parameter"]')).map((node) => ({
|
|
36
|
+
name: node.querySelector('[data-export-meta-type="dashboard-filter-name"]')?.textContent ?? "",
|
|
37
|
+
value: node.querySelector('[data-export-meta-type="dashboard-filter-value"]')?.textContent ?? "",
|
|
38
|
+
// export-builder blocks on this per entry; missing/loading would hang the export.
|
|
39
|
+
status: node.getAttribute("data-export-meta-filter-status"),
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
describe("DefaultDashboardExportVariables", () => {
|
|
43
|
+
it("renders active parameter overrides as ready entries in the filters block", () => {
|
|
44
|
+
mockSelectors([{ id: "topn", title: "Top N", value: "5" }]);
|
|
45
|
+
const { container } = render(_jsx(DefaultDashboardExportVariables, { renderMode: "export" }));
|
|
46
|
+
expect(parameterEntries(container)).toEqual([{ name: "Top N", value: "5", status: "loaded" }]);
|
|
47
|
+
});
|
|
48
|
+
it("renders no parameter entries when there are no active overrides", () => {
|
|
49
|
+
mockSelectors([]);
|
|
50
|
+
const { container } = render(_jsx(DefaultDashboardExportVariables, { renderMode: "export" }));
|
|
51
|
+
expect(parameterEntries(container)).toHaveLength(0);
|
|
52
|
+
});
|
|
53
|
+
it("renders nothing outside export mode", () => {
|
|
54
|
+
mockSelectors([{ id: "topn", title: "Top N", value: "5" }]);
|
|
55
|
+
const { container } = render(_jsx(DefaultDashboardExportVariables, { renderMode: "view" }));
|
|
56
|
+
expect(container.firstChild).toBeNull();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -28,7 +28,7 @@ export type CommonExportDataAttributes = {
|
|
|
28
28
|
*/
|
|
29
29
|
export type MetaExportDataAttributes = {
|
|
30
30
|
"data-export-meta-type"?: ExportMetaType;
|
|
31
|
-
"data-export-meta-filter-type"?: "date" | "attribute" | "measureValue";
|
|
31
|
+
"data-export-meta-filter-type"?: "date" | "attribute" | "measureValue" | "parameter";
|
|
32
32
|
"data-export-meta-filter-mode"?: "readonly" | "hidden" | "active";
|
|
33
33
|
"data-export-meta-filter-status"?: "loading" | "loaded" | "error";
|
|
34
34
|
"data-export-meta-filters-status"?: "loading" | "loaded" | "error";
|
|
@@ -58,6 +58,7 @@ export type MetaExportData = {
|
|
|
58
58
|
dateFilter: MetaExportDataAttributes;
|
|
59
59
|
attributeFilter: MetaExportDataAttributes;
|
|
60
60
|
measureValueFilter: MetaExportDataAttributes;
|
|
61
|
+
parameter: MetaExportDataAttributes;
|
|
61
62
|
filter: {
|
|
62
63
|
name: MetaExportDataAttributes;
|
|
63
64
|
value: MetaExportDataAttributes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACvB,MAAM,GACN,WAAW,GACX,SAAS,GACT,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,QAAQ,GACR,gBAAgB,GAChB,cAAc,GACd,oBAAoB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,cAAc,GACd,iBAAiB,GACjB,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,uBAAuB,GACvB,wBAAwB,GACxB,iBAAiB,GACjB,gBAAgB,GAChB,MAAM,GACN,aAAa,GACb,eAAe,CAAC;AAEtB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACrC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;CACzD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC,uBAAuB,CAAC,EAAE,cAAc,CAAC;IACzC,8BAA8B,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportData.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/useExportData.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAClC,MAAM,YAAY,CAAC;AAsCpB;;GAEG;AACH,eAAO,MAAM,sBAAsB,iJAalC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,kDA+BhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,gHA6B3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,mEAyB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,sCAUjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,uIAiBtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useExportData.d.ts","sourceRoot":"","sources":["../../../src/presentation/export/useExportData.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAClC,MAAM,YAAY,CAAC;AAsCpB;;GAEG;AACH,eAAO,MAAM,sBAAsB,iJAalC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,kDA+BhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,gHA6B3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,mEAyB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,sCAUjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,uIAiBtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,kCAyE7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,mIAelC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAwB9B,CAAC"}
|
|
@@ -205,6 +205,12 @@ export const useMetaExportData = () => {
|
|
|
205
205
|
"data-export-meta-type": "dashboard-filter",
|
|
206
206
|
"data-export-meta-filter-type": "measureValue",
|
|
207
207
|
},
|
|
208
|
+
parameter: {
|
|
209
|
+
"data-export-meta-type": "dashboard-filter",
|
|
210
|
+
"data-export-meta-filter-type": "parameter",
|
|
211
|
+
// No per-row fetch like filters. A rendered row is always complete.
|
|
212
|
+
"data-export-meta-filter-status": "loaded",
|
|
213
|
+
},
|
|
208
214
|
filter: {
|
|
209
215
|
name: {
|
|
210
216
|
"data-export-meta-type": "dashboard-filter-name",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultFilterBarContainer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAOjB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultFilterBarContainer.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/DefaultFilterBarContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAOjB,MAAM,OAAO,CAAC;AAwaf;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2CAQ/E"}
|
|
@@ -12,7 +12,7 @@ import { isDashboardFilterContextSelectionReset, isDashboardFilterContextWorking
|
|
|
12
12
|
import { isDashboardParametersSelectionReset } from "../../../model/events/parameters.js";
|
|
13
13
|
import { useDashboardEventsContext } from "../../../model/react/DashboardEventsContext.js";
|
|
14
14
|
import { useDashboardDispatch, useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
15
|
-
import {
|
|
15
|
+
import { selectIsApplyFiltersAllAtOnceEnabledAndSet, selectLocale, } from "../../../model/store/config/configSelectors.js";
|
|
16
16
|
import { selectIsInEditMode } from "../../../model/store/renderMode/renderModeSelectors.js";
|
|
17
17
|
import { selectIsWorkingFilterContextChanged, selectNamesOfFiltersWithInvalidSelection, } from "../../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
18
18
|
import { BulletsBar as FlexibleBulletsBar } from "../../flexibleLayout/dragAndDrop/Resize/BulletsBar.js";
|
|
@@ -30,7 +30,6 @@ const Measure = defaultImport(DefaultMeasure);
|
|
|
30
30
|
function DefaultFilterBarContainerCore({ children }) {
|
|
31
31
|
const { rows, height, isFilterBarExpanded, scrollable, setFilterBarExpanded, setCalculatedRows } = useFilterBarState();
|
|
32
32
|
const dropRef = useFilterExpansionByDragAndDrop(rows.length > 1, isFilterBarExpanded, setFilterBarExpanded);
|
|
33
|
-
const isFilterViewsFeatureFlagEnabled = useDashboardSelector(selectEnableFilterViews);
|
|
34
33
|
const isWorkingFilterContextChanged = useDashboardSelector(selectIsWorkingFilterContextChanged);
|
|
35
34
|
const isApplyAllAtOnceEnabledAndSet = useDashboardSelector(selectIsApplyFiltersAllAtOnceEnabledAndSet);
|
|
36
35
|
const filtersWithInvalidSelection = useDashboardSelector(selectNamesOfFiltersWithInvalidSelection);
|
|
@@ -74,7 +73,8 @@ function DefaultFilterBarContainerCore({ children }) {
|
|
|
74
73
|
_jsx(AllFiltersContainer, { setCalculatedRows: setCalculatedRows, isAutoExpanded: expandedAutomatically, children: children }), _jsx(FiltersRows, { rows: rows }), _jsxs("div", { className: "filter-bar-configuration", style: configurationStyle, children: [isApplyAllAtOnceEnabledAndSet && isWorkingFilterContextChanged ? (_jsx(UiTooltip, { content: bubbleText, triggerBy: ["hover", "focus"], disabled: !bubbleText, anchor: _jsx(UiButton, { accessibilityConfig: {
|
|
75
74
|
ariaHaspopup: "dialog",
|
|
76
75
|
ariaLabel: bubbleText,
|
|
77
|
-
}, label: intl.formatMessage({ id: "apply" }), variant: "primary", onClick: applyAllDashboardFilters, isDisabled: hasInvalidFilterSelections }) })) : null,
|
|
76
|
+
}, label: intl.formatMessage({ id: "apply" }), variant: "primary", onClick: applyAllDashboardFilters, isDisabled: hasInvalidFilterSelections }) })) : null, _jsx(FilterViews, {})
|
|
77
|
+
] })
|
|
78
78
|
] }), _jsx(ShowAllFiltersButton, { isFilterBarExpanded: isFilterBarExpanded, isVisible: rows.length > 1, onToggle: (isExpanded) => setFilterBarExpanded(isExpanded) }), isInEditMode ? _jsx(FlexibleBulletsBar, {}) : null] }), isWorkingFilterContextChanged && isApplyAllAtOnceEnabledAndSet ? (_jsx("div", { "aria-hidden": "true", className: "filters-message", style: { marginTop: rows.length > 1 ? "35px" : "10px" }, children: _jsx(Message, { type: "progress", children: _jsx(FormattedMessage, { id: "filterBar.unappliedFiltersNotification", values: {
|
|
79
79
|
link: (chunks) => (_jsx("strong", { children: _jsxs(BubbleHoverTrigger, { showDelay: 100, hideDelay: 0, children: [
|
|
80
80
|
_jsx(UiButton, { variant: "link", onClick: applyAllDashboardFilters, label: chunks, isDisabled: hasInvalidFilterSelections }), hasInvalidFilterSelections ? (_jsx(Bubble, { children: bubbleText })) : null] }) })),
|
|
@@ -742,7 +742,7 @@ export const fi_FI = {
|
|
|
742
742
|
"insightAlert.config.accessibility.title": "Hälytyksen mukautettu nimi",
|
|
743
743
|
"insightAlert.config.when": "Milloin",
|
|
744
744
|
"insightAlert.config.for": "Kohteelle",
|
|
745
|
-
"insightAlert.config.condition": "
|
|
745
|
+
"insightAlert.config.condition": "Ehto",
|
|
746
746
|
"insightAlert.config.threshold": "Kynnysarvo",
|
|
747
747
|
"insightAlert.config.comparison": "Vertailu",
|
|
748
748
|
"insightAlert.config.recipients": "Vastaanottajat",
|
|
@@ -365,7 +365,7 @@ export const nl_NL = {
|
|
|
365
365
|
"attributesDropdown.save": "Opslaan",
|
|
366
366
|
"attributesDropdown.filterBy": "Filteren volgens",
|
|
367
367
|
"attributesDropdown.displayValuesAs": "Waarden tonen als",
|
|
368
|
-
"attributesDropdown.title": "
|
|
368
|
+
"attributesDropdown.title": "Titel",
|
|
369
369
|
"attributesDropdown.title.reset": "Reset",
|
|
370
370
|
"attributesDropdown.selectionMode": "Selectie",
|
|
371
371
|
"attributesDropdown.selectionMode.multi": "Meerdere waarden",
|
|
@@ -495,7 +495,7 @@ export const nl_NL = {
|
|
|
495
495
|
"configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": "Top-/bottomfilters kunnen niet worden doorgegeven aan het doeldashboard.",
|
|
496
496
|
"rankingFilter.preview.top_without_attribute_plain": "Top {value} van {measure}",
|
|
497
497
|
"rankingFilter.preview.bottom_without_attribute_plain": "Bottom {value} van {measure}",
|
|
498
|
-
"configurationPanel.visualprops.sectionTitle": "
|
|
498
|
+
"configurationPanel.visualprops.sectionTitle": "Titel",
|
|
499
499
|
"configurationPanel.visualprops.hideTitle": "Titel verbergen",
|
|
500
500
|
"configurationPanel.visualprops.sectionDescription": "Beschrijving",
|
|
501
501
|
"configurationPanel.visualprops.inheritDescription": "Erven",
|