@gooddata/sdk-ui-dashboard 11.57.0-alpha.4 → 11.57.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 +43444 -43444
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/dateFilterConfig/merge.d.ts +2 -2
- package/esm/_staging/dateFilterConfig/merge.js +2 -2
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.js +7 -1
- package/esm/model/react/useIsWidgetRestricted.d.ts +8 -1
- package/esm/model/react/useIsWidgetRestricted.d.ts.map +1 -1
- package/esm/model/react/useIsWidgetRestricted.js +33 -3
- package/esm/model/store/catalog/catalogReducers.d.ts.map +1 -1
- package/esm/model/store/catalog/catalogReducers.js +2 -3
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.d.ts.map +1 -1
- package/esm/model/store/unavailableObjects/unavailableObjectsSelectors.js +3 -2
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialogAttribute.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialogAttribute.js +12 -12
- package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.d.ts +2 -2
- package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.js +2 -15
- package/esm/presentation/automations/alerting/state/types.d.ts +3 -3
- package/esm/presentation/automations/alerting/state/types.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/types.d.ts +3 -3
- package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/utils/getters.d.ts +3 -2
- package/esm/presentation/automations/alerting/utils/getters.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/utils/getters.js +3 -1
- package/esm/presentation/filterBar/filterBar/RestrictedFiltersPlaceholder.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/RestrictedFiltersPlaceholder.js +6 -5
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.d.ts +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.d.ts.map +1 -1
- package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js +7 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -4
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +5 -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 +6 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +5 -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 +7 -2
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +5 -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 +7 -2
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +5 -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 +7 -2
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts +8 -13
- package/esm/presentation/widget/common/RestrictedPlaceholder.d.ts.map +1 -1
- package/esm/presentation/widget/common/RestrictedPlaceholder.js +24 -33
- package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/EditModeDashboardVisualizationSwitcher.js +20 -1
- package/esm/presentation/widget/visualizationSwitcher/configuration/VisualizationsList/VisualizationListItem.d.ts.map +1 -1
- package/esm/presentation/widget/visualizationSwitcher/configuration/VisualizationsList/VisualizationListItem.js +12 -3
- package/esm/sdk-ui-dashboard.d.ts +13 -8
- package/package.json +25 -25
- package/styles/css/dashboard.css +7 -0
- package/styles/css/dashboard.css.map +1 -1
- package/styles/css/filterBar.css +8 -8
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +37 -53
- package/styles/css/main.css.map +1 -1
- package/styles/scss/dashboard.scss +12 -0
- package/styles/scss/filterBar.scss +8 -12
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.57.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.57.0-alpha.6";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.57.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.57.0-alpha.6";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
@@ -3,8 +3,8 @@ import { type IDashboardDateFilterConfig, type IDateFilterConfig } from "@goodda
|
|
|
3
3
|
* Establishes the absolute form's granularity baseline from the feature flag, before any dashboard-level
|
|
4
4
|
* merging happens.
|
|
5
5
|
*
|
|
6
|
-
* TODO: Backend doesn't support absolute form granularities yet. Therefore, we are using the
|
|
7
|
-
* from the relative form as a temporary solution. This should be replaced in the future.
|
|
6
|
+
* TODO: MC-5360: Backend doesn't support absolute form granularities yet. Therefore, we are using the
|
|
7
|
+
* granularities from the relative form as a temporary solution. This should be replaced in the future.
|
|
8
8
|
*
|
|
9
9
|
* @param config - date filter config
|
|
10
10
|
* @param isAbsoluteDateFilterGranularityEnabled - whether the absolute date filter granularity feature is enabled
|
|
@@ -118,8 +118,8 @@ const hideAbsoluteFormGranularities = (dashboardConfig) => (projectConfig) => {
|
|
|
118
118
|
* Establishes the absolute form's granularity baseline from the feature flag, before any dashboard-level
|
|
119
119
|
* merging happens.
|
|
120
120
|
*
|
|
121
|
-
* TODO: Backend doesn't support absolute form granularities yet. Therefore, we are using the
|
|
122
|
-
* from the relative form as a temporary solution. This should be replaced in the future.
|
|
121
|
+
* TODO: MC-5360: Backend doesn't support absolute form granularities yet. Therefore, we are using the
|
|
122
|
+
* granularities from the relative form as a temporary solution. This should be replaced in the future.
|
|
123
123
|
*
|
|
124
124
|
* @param config - date filter config
|
|
125
125
|
* @param isAbsoluteDateFilterGranularityEnabled - whether the absolute date filter granularity feature is enabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadUnavailableReferences.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,8BAA8B,EAC9B,gCAAgC,EACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"loadUnavailableReferences.d.ts","sourceRoot":"","sources":["../../../../../src/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,8BAA8B,EAC9B,gCAAgC,EACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA2BtE;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC1C,uBAAuB,EAAE,OAAO,GACjC,gCAAgC,EAAE,CAEpC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,GAAG,gCAAgC,EAAE,CAErG;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC3C,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,8BAA8B,EAAE,GAAG,SAAS,EAC7D,uBAAuB,EAAE,OAAO,EAChC,qBAAqB,EAAE,OAAO,GAC/B,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAkB3C"}
|
package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadUnavailableReferences.js
CHANGED
|
@@ -6,8 +6,14 @@ const ALL_TYPES = [
|
|
|
6
6
|
"displayForm",
|
|
7
7
|
"analyticalDashboard",
|
|
8
8
|
"measure",
|
|
9
|
+
"computedAttribute",
|
|
10
|
+
];
|
|
11
|
+
const ENRICHED_TYPES = [
|
|
12
|
+
"displayForm",
|
|
13
|
+
"analyticalDashboard",
|
|
14
|
+
"measure",
|
|
15
|
+
"computedAttribute",
|
|
9
16
|
];
|
|
10
|
-
const ENRICHED_TYPES = ["displayForm", "analyticalDashboard", "measure"];
|
|
11
17
|
/**
|
|
12
18
|
* Whether the partial-rendering switch is known before the first request: hosts that supply
|
|
13
19
|
* `settings` (our dashboards app does) decide it up front; otherwise the switch arrives with the
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { type ExtendedDashboardWidget } from "../types/layoutTypes.js";
|
|
2
2
|
/**
|
|
3
|
-
* Tells whether the widget renders
|
|
3
|
+
* Tells whether the widget renders something the current user is not allowed to see. A widget whose
|
|
4
4
|
* insight is merely deleted is not restricted — that one keeps rendering the missing-visualization tile.
|
|
5
5
|
*
|
|
6
6
|
* @alpha
|
|
7
7
|
*/
|
|
8
8
|
export declare function useIsWidgetRestricted(widget: ExtendedDashboardWidget): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Tells whether any of the widgets is restricted. Used where an action covers several widgets at once,
|
|
11
|
+
* such as the height resizer, which resizes a whole row.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function useIsAnyWidgetRestricted(widgets: ExtendedDashboardWidget[]): boolean;
|
|
9
16
|
//# sourceMappingURL=useIsWidgetRestricted.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsWidgetRestricted.d.ts","sourceRoot":"","sources":["../../../src/model/react/useIsWidgetRestricted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsWidgetRestricted.d.ts","sourceRoot":"","sources":["../../../src/model/react/useIsWidgetRestricted.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,uBAAuB,EAAmC,MAAM,yBAAyB,CAAC;AA6BxG;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAI9E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAIpF"}
|
|
@@ -1,14 +1,44 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { isInsightWidget } from "@gooddata/sdk-model";
|
|
2
|
+
import { isInsightWidget, isVisualizationSwitcherWidget } from "@gooddata/sdk-model";
|
|
3
3
|
import { selectRestrictedInsightsMap } from "../store/unavailableObjects/unavailableObjectsSelectors.js";
|
|
4
|
+
import { isExtendedDashboardLayoutWidget } from "../types/layoutTypes.js";
|
|
4
5
|
import { useDashboardSelector } from "./DashboardStoreProvider.js";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* A switcher counts as restricted as soon as one of its entries is: its size comes from a
|
|
8
|
+
* visualization type the editor may not read, exactly as for a single restricted visualization. A
|
|
9
|
+
* container counts once anything inside it does, because its own resize reaches every descendant.
|
|
10
|
+
*/
|
|
11
|
+
function isWidgetRestricted(widget, restrictedInsights) {
|
|
12
|
+
if (isInsightWidget(widget)) {
|
|
13
|
+
return restrictedInsights.has(widget.insight);
|
|
14
|
+
}
|
|
15
|
+
if (isVisualizationSwitcherWidget(widget)) {
|
|
16
|
+
return widget.visualizations.some((visualization) => restrictedInsights.has(visualization.insight));
|
|
17
|
+
}
|
|
18
|
+
if (isExtendedDashboardLayoutWidget(widget)) {
|
|
19
|
+
// resizing a container writes its new width to every widget inside it, so a container holding
|
|
20
|
+
// a restricted widget cannot be resized either
|
|
21
|
+
return widget.sections.some((section) => section.items.some((item) => item.widget && isWidgetRestricted(item.widget, restrictedInsights)));
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Tells whether the widget renders something the current user is not allowed to see. A widget whose
|
|
7
27
|
* insight is merely deleted is not restricted — that one keeps rendering the missing-visualization tile.
|
|
8
28
|
*
|
|
9
29
|
* @alpha
|
|
10
30
|
*/
|
|
11
31
|
export function useIsWidgetRestricted(widget) {
|
|
12
32
|
const restrictedInsights = useDashboardSelector(selectRestrictedInsightsMap);
|
|
13
|
-
return
|
|
33
|
+
return isWidgetRestricted(widget, restrictedInsights);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Tells whether any of the widgets is restricted. Used where an action covers several widgets at once,
|
|
37
|
+
* such as the height resizer, which resizes a whole row.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function useIsAnyWidgetRestricted(widgets) {
|
|
42
|
+
const restrictedInsights = useDashboardSelector(selectRestrictedInsightsMap);
|
|
43
|
+
return widgets.some((widget) => isWidgetRestricted(widget, restrictedInsights));
|
|
14
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/catalog/catalogReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalogReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/catalog/catalogReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAErF,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC/B,MAAM,mBAAmB,CAAC;AAE3B,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,oBAAoB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACpD,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACjD,sBAAsB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACrD,CAAC;AAsBF;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC5C,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAqDF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ3B,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
// (C) 2021-2026 GoodData Corporation
|
|
2
|
-
import { castDraft } from "immer";
|
|
3
2
|
const setCatalogItems = (state, action) => {
|
|
4
3
|
const { attributes, measures, dateDatasets, facts, attributeHierarchies, computedAttributes, dateHierarchyTemplates, } = action.payload;
|
|
5
4
|
state.attributes = attributes;
|
|
6
|
-
state.measures =
|
|
5
|
+
state.measures = measures;
|
|
7
6
|
state.facts = facts;
|
|
8
7
|
state.dateDatasets = dateDatasets;
|
|
9
8
|
state.attributeHierarchies = attributeHierarchies;
|
|
@@ -12,7 +11,7 @@ const setCatalogItems = (state, action) => {
|
|
|
12
11
|
};
|
|
13
12
|
const setCatalogMeasuresAndFacts = (state, action) => {
|
|
14
13
|
const { measures, facts } = action.payload;
|
|
15
|
-
state.measures =
|
|
14
|
+
state.measures = measures;
|
|
16
15
|
state.facts = facts;
|
|
17
16
|
};
|
|
18
17
|
const addAttributeHierarchy = (state, action) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unavailableObjectsSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/unavailableObjects/unavailableObjectsSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,yCAAyC,CAAC;AAEjG,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAW1E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,8BAA8B,EAAE,CAC3D,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,EAAE,CAC5C,IAAI,EAAE,UAAU,KACf,iBAAiB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAQ/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAMhG,CAAC;
|
|
1
|
+
{"version":3,"file":"unavailableObjectsSelectors.d.ts","sourceRoot":"","sources":["../../../../src/model/store/unavailableObjects/unavailableObjectsSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,yCAAyC,CAAC;AAEjG,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAW1E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,8BAA8B,EAAE,CAC3D,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,EAAE,CAC5C,IAAI,EAAE,UAAU,KACf,iBAAiB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAQ/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAMhG,CAAC;AAQN;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAQ1E,CAAC"}
|
|
@@ -27,9 +27,10 @@ export const selectUnavailableObjectsMapByType = createMemoizedSelector((type) =
|
|
|
27
27
|
*/
|
|
28
28
|
export const selectRestrictedInsightsMap = createSelector(selectUnavailableObjects, (objects) => newMapForObjectWithRef(objects.filter((object) => object.type === "insight" && object.reason === "forbidden"), "insight"));
|
|
29
29
|
/**
|
|
30
|
-
* Object types a rich text widget can reference: `{metric/id}
|
|
30
|
+
* Object types a rich text widget can reference: `{metric/id}`, `{label/id}` and
|
|
31
|
+
* `{computed_attribute/id}`.
|
|
31
32
|
*/
|
|
32
|
-
const RICH_TEXT_REFERENCE_TYPES = ["measure", "displayForm"];
|
|
33
|
+
const RICH_TEXT_REFERENCE_TYPES = ["measure", "displayForm", "computedAttribute"];
|
|
33
34
|
/**
|
|
34
35
|
* Selects the refs a rich text widget references but the current user is not allowed to read. A
|
|
35
36
|
* reference that is merely deleted is not included — that keeps rendering today's error value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultAlertingDialogAttribute.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialogAttribute.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,YAAY,EAAkC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultAlertingDialogAttribute.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialogAttribute.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,YAAY,EAAkC,MAAM,OAAO,CAAC;AAiBjG,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AA2HtF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,EAC3C,EAAE,EACF,QAAQ,EACR,iBAAiB,EAAE,qBAAqB,EACxC,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,SAAgB,EAChB,mBAAmB,GACtB,EAAE,6BAA6B,GAAG,YAAY,GAAG,IAAI,CA6MrD"}
|
|
@@ -3,7 +3,6 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { useCallback, useMemo, useState } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
6
|
-
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
7
6
|
import { Dropdown, DropdownButton, InvertableSelectSearchBar, Item, Separator, UiMenu, } from "@gooddata/sdk-ui-kit";
|
|
8
7
|
import { getSelectedCatalogAttribute, getSelectedCatalogAttributeValue } from "../utils/getters.js";
|
|
9
8
|
const createInteractiveItem = (id, title, attribute, value, isSelected, subItems) => ({
|
|
@@ -66,7 +65,7 @@ export function DefaultAlertingDialogAttribute({ id, disabled, selectedAttribute
|
|
|
66
65
|
return (selectedAttributeProp &&
|
|
67
66
|
getSelectedCatalogAttribute(catalogAttributes, catalogDateDatasets, selectedAttributeProp));
|
|
68
67
|
}, [selectedAttributeProp, catalogAttributes, catalogDateDatasets]);
|
|
69
|
-
const selectedAttributeValue = useMemo(() => getSelectedCatalogAttributeValue(
|
|
68
|
+
const selectedAttributeValue = useMemo(() => getSelectedCatalogAttributeValue(selectedAttributeProp?.attribute, getAttributeValues, selectedValue), [selectedAttributeProp, getAttributeValues, selectedValue]);
|
|
70
69
|
const accessibilityAriaLabel = intl.formatMessage({ id: "insightAlert.config.selectAttribute" });
|
|
71
70
|
const uiMenuItems = useMemo(() => {
|
|
72
71
|
// Create menu items based on available attributes
|
|
@@ -76,13 +75,15 @@ export function DefaultAlertingDialogAttribute({ id, disabled, selectedAttribute
|
|
|
76
75
|
if (!item) {
|
|
77
76
|
continue;
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
const
|
|
78
|
+
// Not `item.id`: two display forms share it, and UiMenu resolves ids tree-wide.
|
|
79
|
+
const itemKey = attribute.attribute.attribute.localIdentifier;
|
|
80
|
+
const values = getAttributeValues(attribute.attribute);
|
|
81
|
+
const isSelected = selectedAttributeProp?.attribute.attribute.localIdentifier ===
|
|
82
|
+
attribute.attribute.attribute.localIdentifier;
|
|
82
83
|
if (values.length > 5) {
|
|
83
84
|
attributeItems.push({
|
|
84
85
|
type: "content",
|
|
85
|
-
id: `attribute-${
|
|
86
|
+
id: `attribute-${itemKey}`,
|
|
86
87
|
stringTitle: item.title || intl.formatMessage({ id: "empty_value" }),
|
|
87
88
|
data: undefined,
|
|
88
89
|
Component: ({ onClose }) => (_jsx(AttributeValuesSearchContent, { attribute: attribute, values: values, isSelected: isSelected, selectedAttributeValue: selectedAttributeValue, onAttributeChange: onAttributeChange, onClose: onClose })),
|
|
@@ -90,16 +91,14 @@ export function DefaultAlertingDialogAttribute({ id, disabled, selectedAttribute
|
|
|
90
91
|
continue;
|
|
91
92
|
}
|
|
92
93
|
const subItems = [
|
|
93
|
-
createInteractiveItem(`all-${
|
|
94
|
-
createSeparator(`separator-${
|
|
95
|
-
...values.map((value) => createInteractiveItem(`value-${value.value}`, (value.title ?? value.name) || intl.formatMessage({ id: "empty_value" }), attribute, value,
|
|
94
|
+
createInteractiveItem(`all-${itemKey}`, `${accessibilityAriaLabel} (${values.length})`, attribute, undefined, isSelected && !selectedAttributeValue),
|
|
95
|
+
createSeparator(`separator-${itemKey}`),
|
|
96
|
+
...values.map((value) => createInteractiveItem(`value-${itemKey}-${value.value}`, (value.title ?? value.name) || intl.formatMessage({ id: "empty_value" }), attribute, value, isSelected && selectedAttributeValue?.value === value.value)),
|
|
96
97
|
];
|
|
97
98
|
// Check if any child is selected to determine parent selection state
|
|
98
99
|
const hasSelectedChild = subItems.some((item) => item.type === "interactive" && "isSelected" in item && item.isSelected);
|
|
99
100
|
// Create attribute item with submenu
|
|
100
|
-
attributeItems.push(createInteractiveItem(`attribute-${
|
|
101
|
-
areObjRefsEqual(selectedAttribute.ref, attribute.attribute.attribute.displayForm)) ||
|
|
102
|
-
hasSelectedChild), subItems));
|
|
101
|
+
attributeItems.push(createInteractiveItem(`attribute-${itemKey}`, item.title || intl.formatMessage({ id: "empty_value" }), attribute, undefined, isSelected || hasSelectedChild, subItems));
|
|
103
102
|
}
|
|
104
103
|
// Create the full menu items array
|
|
105
104
|
return [
|
|
@@ -119,6 +118,7 @@ export function DefaultAlertingDialogAttribute({ id, disabled, selectedAttribute
|
|
|
119
118
|
intl,
|
|
120
119
|
onAttributeChange,
|
|
121
120
|
selectedAttribute,
|
|
121
|
+
selectedAttributeProp,
|
|
122
122
|
selectedAttributeValue,
|
|
123
123
|
]);
|
|
124
124
|
const handleUiMenuSelect = useCallback((item) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IExecutionResult } from "@gooddata/sdk-backend-spi";
|
|
2
|
-
import { type IAttribute, type
|
|
2
|
+
import { type IAttribute, type IMeasure } from "@gooddata/sdk-model";
|
|
3
3
|
type IExecutionResultEnvelope = {
|
|
4
4
|
isLoading?: boolean;
|
|
5
5
|
executionResult?: IExecutionResult;
|
|
@@ -31,7 +31,7 @@ export type AttributeValue = {
|
|
|
31
31
|
*/
|
|
32
32
|
export declare function useAttributeValuesFromExecResults(execResult: IExecutionResultEnvelope | undefined): {
|
|
33
33
|
isResultLoading: boolean;
|
|
34
|
-
getAttributeValues: (attr:
|
|
34
|
+
getAttributeValues: (attr: IAttribute) => AttributeValue[];
|
|
35
35
|
getMetricValue: (measure?: IMeasure, attr?: IAttribute, value?: string | null) => number | undefined;
|
|
36
36
|
};
|
|
37
37
|
export {};
|
package/esm/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttributeValuesFromExecResults.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,
|
|
1
|
+
{"version":3,"file":"useAttributeValuesFromExecResults.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/hooks/useAttributeValuesFromExecResults.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,QAAQ,EAGhB,MAAM,qBAAqB,CAAC;AAG7B,KAAK,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE5F;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,wBAAwB,GAAG,SAAS;;+BAuCnF,UAAU,KAAG,cAAc,EAAE;+BASzB,QAAQ,SAAS,UAAU,UAAU,MAAM,GAAG,IAAI;EAyBpE"}
|
|
@@ -57,7 +57,7 @@ export function useAttributeValuesFromExecResults(execResult) {
|
|
|
57
57
|
if (!attr && !value) {
|
|
58
58
|
return calculatePredictedValue(data);
|
|
59
59
|
}
|
|
60
|
-
const header =
|
|
60
|
+
const header = findAttributeHeader(dataView, attr);
|
|
61
61
|
const indexes = findDimIndexes(dataView, header);
|
|
62
62
|
const values = calculateValues(dataView, indexes, value);
|
|
63
63
|
const result = calculatePredictedValue(data, values);
|
|
@@ -94,21 +94,8 @@ function calculateValues(dataView, indexes, value) {
|
|
|
94
94
|
return true;
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
|
+
// By display form, not catalog attribute: two display forms of one attribute are two descriptors.
|
|
97
98
|
function findAttributeHeader(dataView, attr) {
|
|
98
|
-
if (!dataView) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
return (dataView
|
|
102
|
-
.meta()
|
|
103
|
-
.attributeDescriptors()
|
|
104
|
-
.find((descriptor) => {
|
|
105
|
-
return (areObjRefsEqual(descriptor.attributeHeader.ref, attr.ref) ||
|
|
106
|
-
attr.displayForms.some((displayForm) => {
|
|
107
|
-
return areObjRefsEqual(descriptor.attributeHeader.ref, displayForm.ref);
|
|
108
|
-
}));
|
|
109
|
-
}) ?? null);
|
|
110
|
-
}
|
|
111
|
-
function findAttributeHeader2(dataView, attr) {
|
|
112
99
|
if (!dataView || !attr) {
|
|
113
100
|
return null;
|
|
114
101
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from "react";
|
|
2
|
-
import { type DateAttributeGranularity, type FilterContextItem, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAlertTriggerInterval, type IAlertTriggerMode, type IAttribute, type
|
|
2
|
+
import { type DateAttributeGranularity, type FilterContextItem, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAlertTriggerInterval, type IAlertTriggerMode, type IAttribute, type IAutomationMetadataObjectDefinition, type IAutomationRecipient, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IdentifierRef, type ParameterValue } from "@gooddata/sdk-model";
|
|
3
3
|
import { type IAutomationParameter } from "../../shared/automationFilters/automationParameters.js";
|
|
4
4
|
import { type AttributeValue } from "../hooks/useAttributeValuesFromExecResults.js";
|
|
5
5
|
import { type AlertAiOperator, type AlertAttribute, type AlertMetric, type AlertMetricComparator, type AlertMetricComparatorType, type IAlertingDialogProps } from "../types.js";
|
|
@@ -123,9 +123,9 @@ export interface IAlertDataContextValue {
|
|
|
123
123
|
*/
|
|
124
124
|
isResultLoading: boolean;
|
|
125
125
|
/**
|
|
126
|
-
* Distinct values of an attribute in the widget's execution result.
|
|
126
|
+
* Distinct values of an insight attribute in the widget's execution result, by its display form.
|
|
127
127
|
*/
|
|
128
|
-
getAttributeValues: (attribute:
|
|
128
|
+
getAttributeValues: (attribute: IAttribute) => AttributeValue[];
|
|
129
129
|
/**
|
|
130
130
|
* The measure's current value, optionally sliced by an attribute value; undefined while loading.
|
|
131
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ComponentType, type FocusEvent, type ReactNode, type Ref } from "react";
|
|
2
|
-
import { type DateAttributeGranularity, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAlertTriggerInterval, type IAlertTriggerMode, type IAttribute, type
|
|
2
|
+
import { type DateAttributeGranularity, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAlertTriggerInterval, type IAlertTriggerMode, type IAttribute, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type ICatalogAttribute, type ICatalogDateDataset, type IDataSetMetadataObject, type IInsight, type IMeasure, type INotificationChannelIdentifier, type INotificationChannelMetadataObject, type IWidget } from "@gooddata/sdk-model";
|
|
3
3
|
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
4
4
|
import type { AI_OPERATOR, AI_OPERATORS } from "@gooddata/sdk-ui-ext";
|
|
5
5
|
import { type ISlotProps, type OverlayPositionType } from "@gooddata/sdk-ui-kit";
|
|
@@ -170,9 +170,9 @@ export interface IAlertingDialogAttributeProps {
|
|
|
170
170
|
*/
|
|
171
171
|
catalogDateDatasets: ICatalogDateDataset[];
|
|
172
172
|
/**
|
|
173
|
-
* Distinct values of an attribute in the widget's execution result.
|
|
173
|
+
* Distinct values of an insight attribute in the widget's execution result, by its display form.
|
|
174
174
|
*/
|
|
175
|
-
getAttributeValues: (attribute:
|
|
175
|
+
getAttributeValues: (attribute: IAttribute) => AttributeValue[];
|
|
176
176
|
/**
|
|
177
177
|
* Disables the select while the execution result is loading.
|
|
178
178
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAEtF,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/presentation/automations/alerting/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type IntlShape } from "react-intl";
|
|
2
2
|
import { type IExecutionResult } from "@gooddata/sdk-backend-spi";
|
|
3
|
-
import { type DateAttributeGranularity, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAttribute, type
|
|
3
|
+
import { type DateAttributeGranularity, type IAlertAnomalyDetectionGranularity, type IAlertAnomalyDetectionSensitivity, type IAlertComparisonOperator, type IAlertRelativeArithmeticOperator, type IAlertRelativeOperator, type IAttribute, type IAutomationAlert, type IAutomationMetadataObject, type IAutomationMetadataObjectDefinition, type ICatalogAttribute, type ICatalogDateAttribute, type ICatalogDateDataset, type IFilter, type IMeasure, type ISeparators, type ObjRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { type AlertAiOperator, type AlertAttribute, type AlertMetric, type AlertMetricComparator } from "../types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Number formats of the widget's measures keyed by measure local identifier, read from the
|
|
@@ -104,12 +104,13 @@ export declare function getSelectedCatalogAttribute(catalogAttributes: ICatalogA
|
|
|
104
104
|
drillToAttributeLink?: ObjRef;
|
|
105
105
|
displayForms: import("@gooddata/sdk-model").IAttributeDisplayFormMetadataObject[];
|
|
106
106
|
sourceColumn?: string;
|
|
107
|
+
conditionalFormatting?: import("@gooddata/sdk-model").ISemanticConditionalFormatting;
|
|
107
108
|
title: string;
|
|
108
109
|
} | undefined;
|
|
109
110
|
/**
|
|
110
111
|
* @internal
|
|
111
112
|
*/
|
|
112
|
-
export declare function getSelectedCatalogAttributeValue(attribute:
|
|
113
|
+
export declare function getSelectedCatalogAttributeValue(attribute: IAttribute | undefined, getAttributeValue: (attr: IAttribute) => {
|
|
113
114
|
title: string;
|
|
114
115
|
value: string;
|
|
115
116
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/utils/getters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,
|
|
1
|
+
{"version":3,"file":"getters.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/alerting/utils/getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -198,9 +198,11 @@ export function getSelectedCatalogAttribute(catalogAttributes, catalogDateDatase
|
|
|
198
198
|
if (!item) {
|
|
199
199
|
return undefined;
|
|
200
200
|
}
|
|
201
|
+
// The display form's own title, else two labels of one attribute render as the same row.
|
|
202
|
+
const displayForm = item.attribute.displayForms.find((df) => areObjRefsEqual(df.ref, attribute.attribute.attribute.displayForm));
|
|
201
203
|
return {
|
|
202
204
|
...item.attribute,
|
|
203
|
-
title: getAttributeTitle(attribute.attribute) ?? item.attribute
|
|
205
|
+
title: getAttributeTitle(attribute.attribute) ?? displayForm?.title ?? item.attribute.title,
|
|
204
206
|
};
|
|
205
207
|
}
|
|
206
208
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestrictedFiltersPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/RestrictedFiltersPlaceholder.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IAC/C,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IAEd,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kCAAkC,
|
|
1
|
+
{"version":3,"file":"RestrictedFiltersPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/presentation/filterBar/filterBar/RestrictedFiltersPlaceholder.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IAC/C,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IAEd,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kCAAkC,2CAoHnG"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
|
-
import { useRef, useState } from "react";
|
|
3
|
+
import { useId, useRef, useState } from "react";
|
|
4
4
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
5
|
-
import { UiButton, UiFocusManager, UiTooltip, getFocusableElements } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
import { UiButton, UiFocusManager, UiIcon, UiTooltip, getFocusableElements } from "@gooddata/sdk-ui-kit";
|
|
6
6
|
/**
|
|
7
7
|
* Reports filters left out because the current user may not read the objects they filter by.
|
|
8
8
|
*/
|
|
9
9
|
export function RestrictedFiltersPlaceholder({ count, onRemove }) {
|
|
10
10
|
const intl = useIntl();
|
|
11
11
|
const wrapperRef = useRef(null);
|
|
12
|
+
const tooltipId = useId();
|
|
12
13
|
// hovering must not steal the focus, so only a deliberate open moves it into the tooltip
|
|
13
14
|
const [isOpenedForAction, setIsOpenedForAction] = useState(false);
|
|
14
15
|
const openForAction = () => setIsOpenedForAction(true);
|
|
@@ -23,8 +24,8 @@ export function RestrictedFiltersPlaceholder({ count, onRemove }) {
|
|
|
23
24
|
focusableElements.find((element) => !wrapper?.contains(element))?.focus();
|
|
24
25
|
};
|
|
25
26
|
const noticeText = intl.formatMessage({ id: "filterBar.restrictedFilters" }, { count });
|
|
26
|
-
const notice = (_jsxs(_Fragment, { children: [_jsx("
|
|
27
|
-
return (_jsx("span", { className: "dash-filters-restricted", ref: wrapperRef, children: _jsx(UiTooltip, { anchorWrapperStyles: { display: "flex",
|
|
27
|
+
const notice = (_jsxs(_Fragment, { children: [_jsx(UiIcon, { type: "lock", size: 16, color: "complementary-6", layout: "block" }), noticeText] }));
|
|
28
|
+
return (_jsx("span", { className: "dash-filters-restricted", ref: wrapperRef, children: _jsx(UiTooltip, { id: tooltipId, anchorWrapperStyles: { display: "flex" }, behaviour: "popover", arrowPlacement: "top-start", width: 300, accessibilityConfig: isOpenedForAction ? { role: "dialog", ariaLabel: noticeText } : undefined, triggerBy: onRemove ? ["hover", "focus", "click"] : ["hover", "focus"], onOpenChange: (open) => {
|
|
28
29
|
if (!open) {
|
|
29
30
|
setIsOpenedForAction(false);
|
|
30
31
|
}
|
|
@@ -38,5 +39,5 @@ export function RestrictedFiltersPlaceholder({ count, onRemove }) {
|
|
|
38
39
|
onClose();
|
|
39
40
|
onRemove();
|
|
40
41
|
} })) : null] }), onClose);
|
|
41
|
-
}, anchor: onRemove ? (_jsx("button", { type: "button", className: "dash-filters-restricted-notice dash-filters-restricted-notice--actionable", "data-testid": "restricted-filters", "aria-haspopup": "dialog", onClick: openForAction, children: notice })) : (_jsx("span", { className: "dash-filters-restricted-notice", tabIndex: 0, "data-testid": "restricted-filters", children: notice })) }) }));
|
|
42
|
+
}, anchor: onRemove ? (_jsx("button", { type: "button", className: "dash-filters-restricted-notice dash-filters-restricted-notice--actionable", "data-testid": "restricted-filters", "aria-haspopup": "dialog", "aria-expanded": isOpenedForAction, "aria-describedby": tooltipId, onClick: openForAction, children: notice })) : (_jsx("span", { className: "dash-filters-restricted-notice", role: "note", tabIndex: 0, "aria-label": noticeText, "aria-describedby": tooltipId, "data-testid": "restricted-filters", children: notice })) }) }));
|
|
42
43
|
}
|
|
@@ -7,7 +7,7 @@ export type HeightResizerHotspotProps = {
|
|
|
7
7
|
items: IDashboardLayoutItemFacade<ExtendedDashboardWidget>[];
|
|
8
8
|
getLayoutDimensions: () => DOMRect;
|
|
9
9
|
};
|
|
10
|
-
export declare function HeightResizerHotspot({ section, items, getLayoutDimensions }: HeightResizerHotspotProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function HeightResizerHotspot({ section, items, getLayoutDimensions }: HeightResizerHotspotProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
11
|
export declare function getHeightsGR(items: IDashboardLayoutItemFacade<ExtendedDashboardWidget>[], insightMap: ObjRefMap<IInsight>, screen: ScreenSize, settings: ISettings): number[];
|
|
12
12
|
export declare function getNewHeightGR(widgetHeights: number[], offsetYPX: number, scrollCorrectionY: number, minLimit: number, maxLimit: number): number;
|
|
13
13
|
//# sourceMappingURL=HeightResizerHotspot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeightResizerHotspot.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EACrC,MAAM,oEAAoE,CAAC;AAQ5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"HeightResizerHotspot.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EACrC,MAAM,oEAAoE,CAAC;AAQ5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAS5E,OAAO,EAAE,KAAK,uBAAuB,EAAsB,MAAM,wCAAwC,CAAC;AAU1G,MAAM,MAAM,yBAAyB,GAAG;IACpC,OAAO,EAAE,6BAA6B,CAAC,uBAAuB,CAAC,CAAC;IAChE,KAAK,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,EAAE,CAAC;IAC7D,mBAAmB,EAAE,MAAM,OAAO,CAAC;CACtC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,kDA+HtG;AAED,wBAAgB,YAAY,CACxB,KAAK,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,EAAE,EAC5D,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC/B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,SAAS,YAWtB;AAED,wBAAgB,cAAc,CAC1B,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAKR"}
|
|
@@ -8,6 +8,7 @@ import { getItemIndex } from "../../../../_staging/layout/coordinates.js";
|
|
|
8
8
|
import { calculateWidgetMinHeight, determineWidthForScreen, getMaxHeight, getMinHeight, } from "../../../../_staging/layout/sizing.js";
|
|
9
9
|
import { resizeNestedLayoutItemsHeight } from "../../../../model/commands/layout.js";
|
|
10
10
|
import { useDashboardDispatch, useDashboardSelector, } from "../../../../model/react/DashboardStoreProvider.js";
|
|
11
|
+
import { useIsAnyWidgetRestricted } from "../../../../model/react/useIsWidgetRestricted.js";
|
|
11
12
|
import { selectSettings } from "../../../../model/store/config/configSelectors.js";
|
|
12
13
|
import { selectInsightsMap } from "../../../../model/store/insights/insightsSelectors.js";
|
|
13
14
|
import { isCustomWidgetBase } from "../../../../model/types/layoutTypes.js";
|
|
@@ -30,6 +31,7 @@ export function HeightResizerHotspot({ section, items, getLayoutDimensions }) {
|
|
|
30
31
|
const widgetIdentifiers = useMemo(() => widgets.map((widget) => widget.identifier), [widgets]);
|
|
31
32
|
const customWidgetsRestrictions = useMemo(() => getCustomWidgetRestrictions(items), [items]);
|
|
32
33
|
const isAnyWidgetHovered = HoveredWidgetContext.useContextStore((ctx) => widgets.some((widget) => ctx.isHovered(widget.ref, ctx.hoveredWidgets)));
|
|
34
|
+
const isAnyWidgetRestricted = useIsAnyWidgetRestricted(widgets);
|
|
33
35
|
const gridWidth = determineWidthForScreen(screen, layoutItemSize);
|
|
34
36
|
const [{ isDragging }, dragRef] = useDashboardDrag({
|
|
35
37
|
dragItem: () => {
|
|
@@ -73,6 +75,11 @@ export function HeightResizerHotspot({ section, items, getLayoutDimensions }) {
|
|
|
73
75
|
const onMouseLeave = () => setResizerVisibility(false);
|
|
74
76
|
const shouldRenderResizer = (areWidgetsResizing || isResizerVisible) && !isColumnResizing && !isOtherRowResizing;
|
|
75
77
|
const status = isDragging ? "muted" : isAnyWidgetHovered ? "default" : "active";
|
|
78
|
+
// the resizer covers the whole row, and a restricted widget in it has a size the editor cannot
|
|
79
|
+
// judge, so the row keeps its height until that widget is removed
|
|
80
|
+
if (isAnyWidgetRestricted) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
76
83
|
return (_jsxs("div", { className: cx("dash-height-resizer-container s-dash-height-resizer-container", `gd-grid-layout__item--span-${gridWidth}`), children: [status === "default" ? (_jsx("div", { className: "dash-height-resizer-hotspot s-dash-height-resizer-hotspot", children: _jsx(HeightResizer, { status: status }) })) : null, customWidgetsRestrictions.allowHeightResize ? (_jsx("div", { ref: dragRef, className: "dash-height-resizer-hotspot s-dash-height-resizer-hotspot", onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: shouldRenderResizer ? _jsx(HeightResizer, { status: status }) : null })) : null] }));
|
|
77
84
|
}
|
|
78
85
|
export function getHeightsGR(items, insightMap, screen, settings) {
|
|
@@ -17,6 +17,11 @@ export declare const de_DE: {
|
|
|
17
17
|
"options.menu.save.as.tooltip": string;
|
|
18
18
|
"options.menu.settings": string;
|
|
19
19
|
"messages.dashboardSaveFailed": string;
|
|
20
|
+
"insightNotSavedDialog.headline": string;
|
|
21
|
+
"insightNotSavedDialog.message": string;
|
|
22
|
+
"insightNotSavedDialog.visualisations": string;
|
|
23
|
+
"insightNotSavedDialog.close": string;
|
|
24
|
+
"insightNotSavedDialog.saveAll": string;
|
|
20
25
|
"messages.dashboard.incompatibleDefaultFilters.title": string;
|
|
21
26
|
"messages.dashboard.invalidDrills.title": string;
|
|
22
27
|
"messages.dashboard.invalidDrills.body.modern": string;
|