@gooddata/sdk-ui-dashboard 11.5.0-alpha.4 → 11.5.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 +4 -4
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts +1 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaKeyDriverChart.js +126 -11
- package/esm/kdaDialog/components/KdaKeyDriverChart.js.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryDrivers.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryDrivers.js +14 -10
- package/esm/kdaDialog/components/KdaSummaryDrivers.js.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryHeadline.d.ts.map +1 -1
- package/esm/kdaDialog/components/KdaSummaryHeadline.js +22 -4
- package/esm/kdaDialog/components/KdaSummaryHeadline.js.map +1 -1
- package/esm/kdaDialog/components/bars/AttributeBar.d.ts +1 -2
- package/esm/kdaDialog/components/bars/AttributeBar.d.ts.map +1 -1
- package/esm/kdaDialog/components/bars/AttributeBar.js +2 -4
- package/esm/kdaDialog/components/bars/AttributeBar.js.map +1 -1
- package/esm/kdaDialog/components/bars/DateBar.d.ts +1 -0
- package/esm/kdaDialog/components/bars/DateBar.d.ts.map +1 -1
- package/esm/kdaDialog/components/bars/DateBar.js +1 -1
- package/esm/kdaDialog/components/bars/DateBar.js.map +1 -1
- package/esm/kdaDialog/components/columns/driverColumn.d.ts +2 -2
- package/esm/kdaDialog/components/columns/driverColumn.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/driverColumn.js +17 -4
- package/esm/kdaDialog/components/columns/driverColumn.js.map +1 -1
- package/esm/kdaDialog/components/columns/driversCount.d.ts +2 -2
- package/esm/kdaDialog/components/columns/driversCount.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/driversCount.js +4 -1
- package/esm/kdaDialog/components/columns/driversCount.js.map +1 -1
- package/esm/kdaDialog/components/columns/titleColumn.d.ts +2 -2
- package/esm/kdaDialog/components/columns/titleColumn.d.ts.map +1 -1
- package/esm/kdaDialog/components/columns/titleColumn.js.map +1 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.d.ts.map +1 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.js +2 -1
- package/esm/kdaDialog/components/headlines/DiffHeadline.js.map +1 -1
- package/esm/kdaDialog/composition/FiltersBar.d.ts.map +1 -1
- package/esm/kdaDialog/composition/FiltersBar.js +18 -29
- package/esm/kdaDialog/composition/FiltersBar.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversFooter.js +13 -5
- package/esm/kdaDialog/composition/KeyDriversFooter.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversOverview.js +10 -1
- package/esm/kdaDialog/composition/KeyDriversOverview.js.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversPanel.d.ts.map +1 -1
- package/esm/kdaDialog/composition/KeyDriversPanel.js +4 -19
- package/esm/kdaDialog/composition/KeyDriversPanel.js.map +1 -1
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts +7 -0
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts.map +1 -0
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js +105 -0
- package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js.map +1 -0
- package/esm/kdaDialog/dialog/KdaDialog.d.ts.map +1 -1
- package/esm/kdaDialog/dialog/KdaDialog.js +8 -1
- package/esm/kdaDialog/dialog/KdaDialog.js.map +1 -1
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts +2 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +123 -0
- package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts +2 -0
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js +12 -0
- package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts +2 -0
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts.map +1 -0
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.js +29 -0
- package/esm/kdaDialog/dialog/hooks/useValidAttributes.js.map +1 -0
- package/esm/kdaDialog/hooks/useAttribute.d.ts +3 -0
- package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useAttribute.js +14 -0
- package/esm/kdaDialog/hooks/useAttribute.js.map +1 -0
- package/esm/kdaDialog/hooks/useDateAttribute.d.ts +3 -0
- package/esm/kdaDialog/hooks/useDateAttribute.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useDateAttribute.js +14 -0
- package/esm/kdaDialog/hooks/useDateAttribute.js.map +1 -0
- package/esm/kdaDialog/hooks/useDriversList.d.ts +7 -0
- package/esm/kdaDialog/hooks/useDriversList.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useDriversList.js +26 -0
- package/esm/kdaDialog/hooks/useDriversList.js.map +1 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.d.ts +2 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.js +10 -0
- package/esm/kdaDialog/hooks/useSignificantDrives.js.map +1 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts +3 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.js +42 -0
- package/esm/kdaDialog/hooks/useSummaryDrivers.js.map +1 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.d.ts +5 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.d.ts.map +1 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.js +17 -0
- package/esm/kdaDialog/hooks/useTrendDrivers.js.map +1 -0
- package/esm/kdaDialog/internalTypes.d.ts +16 -7
- package/esm/kdaDialog/internalTypes.d.ts.map +1 -1
- package/esm/kdaDialog/providers/KdaState.d.ts.map +1 -1
- package/esm/kdaDialog/providers/KdaState.js +9 -7
- package/esm/kdaDialog/providers/KdaState.js.map +1 -1
- package/esm/kdaDialog/utils.d.ts.map +1 -1
- package/esm/kdaDialog/utils.js +1 -1
- package/esm/kdaDialog/utils.js.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +8 -1
- package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js.map +1 -1
- package/esm/model/events/drill.d.ts +2 -1
- package/esm/model/events/drill.d.ts.map +1 -1
- package/esm/model/events/drill.js.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
- package/esm/presentation/drill/utils/kdaUtils.js +15 -6
- package/esm/presentation/drill/utils/kdaUtils.js.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.json +9 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.json +9 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.json +9 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/en-US.json +13 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +3 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/es-419.json +9 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.json +9 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.json +9 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.json +9 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.json +9 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.json +9 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.json +9 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.json +9 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.json +9 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.json +9 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.json +9 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.json +9 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.json +9 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.json +9 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.json +9 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.json +9 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.json +9 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +8 -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 +9 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +73 -29
- package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js.map +1 -1
- package/esm/sdk-ui-dashboard.d.ts +2 -0
- package/package.json +18 -17
- package/styles/css/kdaDialog.css +13 -0
- package/styles/css/kdaDialog.css.map +1 -1
- package/styles/css/main.css +13 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/kdaDialog.scss +15 -0
|
@@ -2,17 +2,29 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
// (C) 2025 GoodData Corporation
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
|
-
import {
|
|
6
|
-
import { selectAttributeFilterConfigsOverrides, selectCatalogDateAttributes, useDashboardSelector, } from "../../model/index.js";
|
|
5
|
+
import { selectAttributeFilterConfigsOverrides, useDashboardSelector } from "../../model/index.js";
|
|
7
6
|
import { AttributeBar } from "../components/bars/AttributeBar.js";
|
|
8
7
|
import { DateBar } from "../components/bars/DateBar.js";
|
|
9
8
|
import { KdaBar } from "../components/KdaBar.js";
|
|
9
|
+
import { useDateAttribute } from "../hooks/useDateAttribute.js";
|
|
10
10
|
import { useKdaState } from "../providers/KdaState.js";
|
|
11
|
+
import { usePeriodChangeHandler } from "./hooks/usePeriodChangeHandler.js";
|
|
11
12
|
export function FiltersBar() {
|
|
12
13
|
const intl = useIntl();
|
|
13
|
-
const dateAttributes = useDashboardSelector(selectCatalogDateAttributes);
|
|
14
14
|
const attributeConfigs = useDashboardSelector(selectAttributeFilterConfigsOverrides);
|
|
15
|
-
const
|
|
15
|
+
const dateAttributeFinder = useDateAttribute();
|
|
16
|
+
const { state } = useKdaState();
|
|
17
|
+
const def = state.definition;
|
|
18
|
+
const dateAttribute = useMemo(() => {
|
|
19
|
+
return dateAttributeFinder(def?.dateAttribute);
|
|
20
|
+
}, [dateAttributeFinder, def?.dateAttribute]);
|
|
21
|
+
const options = useMemo(() => {
|
|
22
|
+
return {
|
|
23
|
+
dateAttribute,
|
|
24
|
+
period: def?.type ?? "previous_period",
|
|
25
|
+
range: def?.range,
|
|
26
|
+
};
|
|
27
|
+
}, [dateAttribute, def?.type, def?.range]);
|
|
16
28
|
const onChangeAttributeFilter = useCallback((newFilter) => {
|
|
17
29
|
// eslint-disable-next-line
|
|
18
30
|
console.log("on Change Attribute Filter", newFilter);
|
|
@@ -23,30 +35,7 @@ export function FiltersBar() {
|
|
|
23
35
|
console.log("on Delete Attribute Filter", filter);
|
|
24
36
|
//TODO: onDeleteAttributeFilter
|
|
25
37
|
}, []);
|
|
26
|
-
const onPeriodChange =
|
|
27
|
-
|
|
28
|
-
console.log("on Period Change", type);
|
|
29
|
-
//TODO: onPeriodChange
|
|
30
|
-
if (state.definition) {
|
|
31
|
-
setState({
|
|
32
|
-
definition: {
|
|
33
|
-
...state.definition,
|
|
34
|
-
type,
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}, [setState, state.definition]);
|
|
39
|
-
const def = state.definition;
|
|
40
|
-
const options = useMemo(() => {
|
|
41
|
-
const dateAttribute = dateAttributes.find((a) => areObjRefsEqual(def?.dateAttribute, a.attribute.ref) ||
|
|
42
|
-
a.attribute.displayForms.some((df) => areObjRefsEqual(df.ref, def?.dateAttribute)));
|
|
43
|
-
return {
|
|
44
|
-
dateAttribute,
|
|
45
|
-
period: def?.type ?? "previous_period",
|
|
46
|
-
range: def?.range,
|
|
47
|
-
};
|
|
48
|
-
}, [def?.dateAttribute, def?.range, def?.type, dateAttributes]);
|
|
49
|
-
//TODO: AttributesDropdown will be used to add new filter
|
|
50
|
-
return (_jsx(KdaBar, { title: intl.formatMessage({ id: "kdaDialog.dialog.bars.filters.title" }), content: _jsxs(_Fragment, { children: [_jsx(DateBar, { options: options, onPeriodChange: onPeriodChange }), state.attributeFilters.map((attributeFilter, i) => (_jsx(AttributeBar, { attribute: attributeFilter, attributeConfigs: attributeConfigs, onChange: onChangeAttributeFilter, onDelete: onDeleteAttributeFilter }, i)))] }) }));
|
|
38
|
+
const { onPeriodChange, isAvailable } = usePeriodChangeHandler(dateAttribute);
|
|
39
|
+
return (_jsx(KdaBar, { title: intl.formatMessage({ id: "kdaDialog.dialog.bars.filters.title" }), content: _jsxs(_Fragment, { children: [_jsx(DateBar, { options: options, isAvailable: isAvailable, onPeriodChange: onPeriodChange }), state.attributeFilters.map((attributeFilter, i) => (_jsx(AttributeBar, { attribute: attributeFilter, attributeConfigs: attributeConfigs, onChange: onChangeAttributeFilter, onDelete: onDeleteAttributeFilter }, i)))] }) }));
|
|
51
40
|
}
|
|
52
41
|
//# sourceMappingURL=FiltersBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersBar.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/FiltersBar.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"FiltersBar.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/FiltersBar.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,OAAO,EAAE,qCAAqC,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,MAAM,UAAU,UAAU;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;IACrF,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;IAE/C,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAE7B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAmB,EAAE;QACzC,OAAO;YACH,aAAa;YACb,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,iBAAiB;YACtC,KAAK,EAAE,GAAG,EAAE,KAAK;SACpB,CAAC;IACN,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,MAAM,uBAAuB,GAAG,WAAW,CAAC,CAAC,SAAoC,EAAE,EAAE;QACjF,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;QACrD,+BAA+B;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,uBAAuB,GAAG,WAAW,CAAC,CAAC,MAAiC,EAAE,EAAE;QAC9E,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QAClD,+BAA+B;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAE9E,OAAO,CACH,KAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,qCAAqC,EAAE,CAAC,EACxE,OAAO,EACH,8BACI,KAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,GAAI,EACtF,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,CAChD,KAAC,YAAY,IAET,SAAS,EAAE,eAAe,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,uBAAuB,IAJ5B,CAAC,CAKR,CACL,CAAC,IACH,GAET,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversFooter.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"KeyDriversFooter.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,4CA+E/B"}
|
|
@@ -7,23 +7,31 @@ import { useKdaState } from "../providers/KdaState.js";
|
|
|
7
7
|
export function KeyDriversFooter() {
|
|
8
8
|
const { state, setState } = useKdaState();
|
|
9
9
|
const isCatalogLoaded = useDashboardSelector(selectCatalogIsLoaded);
|
|
10
|
-
const isLoading =
|
|
10
|
+
const isLoading = !isCatalogLoaded ||
|
|
11
|
+
state.itemsStatus === "pending" ||
|
|
12
|
+
state.itemsStatus === "loading" ||
|
|
13
|
+
state.relevantStatus === "pending" ||
|
|
14
|
+
state.relevantStatus === "loading";
|
|
11
15
|
const allAttributes = useDashboardSelector(selectCatalogAttributes);
|
|
16
|
+
const validAttributes = allAttributes.filter((a) => {
|
|
17
|
+
return state.relevantAttributes.some((attr) => areObjRefsEqual(attr, a.attribute.ref));
|
|
18
|
+
});
|
|
12
19
|
const initialAttributes = state.selectedAttributes
|
|
13
20
|
.map((attr) => {
|
|
14
|
-
return
|
|
21
|
+
return validAttributes.find((a) => a.displayForms.some((df) => areObjRefsEqual(df.ref, attr)));
|
|
15
22
|
})
|
|
16
23
|
.filter(Boolean);
|
|
17
24
|
return (_jsx("div", { children: isLoading ? (_jsx(UiSkeleton, { itemHeight: 23, itemWidth: 300 })) : (_jsx(FormattedMessage, { id: "kdaDialog.dialog.keyDrives.overview.summary.drivers.description", values: {
|
|
18
|
-
combinations: state.
|
|
25
|
+
combinations: state.items.length,
|
|
19
26
|
attributes: state.selectedAttributes.length,
|
|
20
27
|
button: (chunks) => {
|
|
21
|
-
return (_jsx(DropdownInvertableSelect, { className: "gd-kda-attributes-dropdown", initialValue: initialAttributes, initialIsInverted: false, options:
|
|
28
|
+
return (_jsx(DropdownInvertableSelect, { className: "gd-kda-attributes-dropdown", initialValue: initialAttributes, initialIsInverted: false, options: validAttributes, alignPoints: [{ align: "tl bl" }], getItemTitle: (item) => item.attribute.title, getItemKey: (item) => item.attribute.id, onChange: (selectedItems, isInverted) => {
|
|
22
29
|
const selected = isInverted
|
|
23
|
-
?
|
|
30
|
+
? validAttributes.filter((a) => !selectedItems.includes(a))
|
|
24
31
|
: selectedItems;
|
|
25
32
|
setState({
|
|
26
33
|
selectedAttributes: selected.map((item) => item.defaultDisplayForm.ref),
|
|
34
|
+
selectedUpdated: Date.now(),
|
|
27
35
|
});
|
|
28
36
|
}, header: _jsx("div", { className: "gd-kda-attributes-dropdown__header", children: _jsx(FormattedMessage, { id: "kdaDialog.dialog.keyDrives.overview.summary.drivers.attributes" }) }), renderSearchBar: () => (_jsx("div", { className: "gd-kda-attributes-dropdown__no-search" })), renderButton: ({ buttonRef, isOpen, toggleDropdown }) => (_jsx(UiButton, { ref: buttonRef, variant: "tertiary", iconAfter: "settings", isSelected: isOpen, label: chunks.join(""), onClick: toggleDropdown })) }));
|
|
29
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversFooter.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAqB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,gBAAgB;IAC5B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"KeyDriversFooter.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversFooter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,10 @@ function KeyDriversDetail({ detailsId }) {
|
|
|
22
22
|
const intl = useIntl();
|
|
23
23
|
const { state } = useKdaState();
|
|
24
24
|
const description = getDescription(state.selectedItem);
|
|
25
|
-
|
|
25
|
+
const category = getCategory(state.selectedItem);
|
|
26
|
+
return (_jsxs("div", { className: cx("gd-kda-key-drivers-detail"), id: detailsId, children: [_jsxs("div", { children: [_jsx("div", { className: cx("gd-kda-key-drivers-detail-title"), children: getTitle(intl, state.selectedItem) }), description ? (_jsx("div", { className: cx("gd-kda-key-drivers-detail-description"), children: description })) : null] }), _jsx("div", { className: cx("gd-kda-key-drivers-detail-visualisation"), children: _jsx(KdaKeyDriverChart, {}) }), _jsxs("div", { className: cx("gd-kda-key-drivers-detail-info"), children: [_jsx(UiIcon, { type: "questionMark", size: 12 }), " ", intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.overview.detail.tip" }, {
|
|
27
|
+
category,
|
|
28
|
+
})] })] }));
|
|
26
29
|
}
|
|
27
30
|
function getTitle(intl, item) {
|
|
28
31
|
if (typeof item === "string") {
|
|
@@ -39,4 +42,10 @@ function getDescription(item) {
|
|
|
39
42
|
}
|
|
40
43
|
return item.data.description;
|
|
41
44
|
}
|
|
45
|
+
function getCategory(item) {
|
|
46
|
+
if (typeof item === "string") {
|
|
47
|
+
return "";
|
|
48
|
+
}
|
|
49
|
+
return item.data.category;
|
|
50
|
+
}
|
|
42
51
|
//# sourceMappingURL=KeyDriversOverview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversOverview.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversOverview.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAA6B,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvD,MAAM,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAA2B;IAC9E,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAC,iBAAiB,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;IACzE,CAAC;IAED,OAAO,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;AACtD,CAAC;AAOD,SAAS,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAA0B;IACrE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,OAAO,CACH,eAAK,SAAS,EAAE,EAAE,CAAC,6BAA6B,CAAC,EAAE,EAAE,EAAE,SAAS,aAC5D,cAAK,SAAS,EAAE,EAAE,CAAC,mCAAmC,CAAC,YAClD,OAAO,CAAC,CAAC,CAAC,CACP,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI,CACjD,CAAC,CAAC,CAAC,CACA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,mDAAmD,EAAE,CAAC,CAClF,GACC,EACN,cAAK,SAAS,EAAE,EAAE,CAAC,sCAAsC,CAAC,YACrD,OAAO,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,kBAAkB,KAAG,GAChF,EACN,cAAK,SAAS,EAAE,EAAE,CAAC,qCAAqC,CAAC,YACpD,OAAO,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAI,CAAC,CAAC,CAAC,KAAC,iBAAiB,KAAG,GAChF,IACJ,CACT,CAAC;AACN,CAAC;AAMD,SAAS,gBAAgB,CAAC,EAAE,SAAS,EAA0B;IAC3D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyDriversOverview.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversOverview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversPanel.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyDriversPanel.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAyI3E"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025 GoodData Corporation
|
|
3
|
-
import { useEffect, useId
|
|
3
|
+
import { useEffect, useId } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
6
6
|
import { UiButton, UiButtonSegmentedControl, UiIcon, UiIconButton, UiListbox, UiSkeleton, UiTooltip, } from "@gooddata/sdk-ui-kit";
|
|
7
7
|
import { KeyDriverItem } from "../components/items/KeyDriverItem.js";
|
|
8
8
|
import { SummaryItem } from "../components/items/SummaryItem.js";
|
|
9
|
+
import { useSignificantDrives } from "../hooks/useDriversList.js";
|
|
9
10
|
import { useKdaState } from "../providers/KdaState.js";
|
|
10
11
|
export function KeyDriversPanel({ loading, detailsId }) {
|
|
11
12
|
const intl = useIntl();
|
|
@@ -13,23 +14,7 @@ export function KeyDriversPanel({ loading, detailsId }) {
|
|
|
13
14
|
const label = intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.title" });
|
|
14
15
|
const tooltip = intl.formatMessage({ id: "kdaDialog.dialog.keyDrives.tooltip" });
|
|
15
16
|
const { state, setState } = useKdaState();
|
|
16
|
-
const trendUp
|
|
17
|
-
return item.data.from.value < item.data.to.value;
|
|
18
|
-
}), [state.items]);
|
|
19
|
-
const trendDown = useMemo(() => state.items.filter((item) => {
|
|
20
|
-
return item.data.from.value > item.data.to.value;
|
|
21
|
-
}), [state.items]);
|
|
22
|
-
const currentItems = useMemo(() => {
|
|
23
|
-
if (state.selectedTrend === "up") {
|
|
24
|
-
return trendUp;
|
|
25
|
-
}
|
|
26
|
-
return trendDown;
|
|
27
|
-
}, [state.selectedTrend, trendUp, trendDown]);
|
|
28
|
-
const maximum = useMemo(() => {
|
|
29
|
-
return Math.max(...currentItems.map((item) => {
|
|
30
|
-
return Math.abs(item.data.to.value - item.data.from.value);
|
|
31
|
-
}));
|
|
32
|
-
}, [currentItems]);
|
|
17
|
+
const { maximum, list, trendUp, trendDown } = useSignificantDrives();
|
|
33
18
|
// When there are no items for selected trend, switch to the other trend
|
|
34
19
|
useEffect(() => {
|
|
35
20
|
if (trendUp.length === 0 && trendDown.length > 0 && state.selectedTrend === "up") {
|
|
@@ -49,7 +34,7 @@ export function KeyDriversPanel({ loading, detailsId }) {
|
|
|
49
34
|
setState({ selectedTrend: "down" });
|
|
50
35
|
}, accessibilityConfig: {
|
|
51
36
|
ariaControls: listId,
|
|
52
|
-
} })] })) }), _jsx("div", { className: cx("gd-kda-key-drivers-panel-list"), children: loading ? (_jsxs("div", { className: cx("gd-kda-key-drivers-panel-list-loading"), children: [_jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 })] })) : (_jsx(_Fragment, { children:
|
|
37
|
+
} })] })) }), _jsx("div", { className: cx("gd-kda-key-drivers-panel-list"), children: loading ? (_jsxs("div", { className: cx("gd-kda-key-drivers-panel-list-loading"), children: [_jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 }), _jsx(UiSkeleton, { itemHeight: 40 })] })) : (_jsx(_Fragment, { children: list.length > 0 ? (_jsx(UiListbox, { items: list, ariaAttributes: {
|
|
53
38
|
id: listId,
|
|
54
39
|
"aria-controls": detailsId,
|
|
55
40
|
}, InteractiveItemComponent: (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyDriversPanel.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"KeyDriversPanel.js","sourceRoot":"","sources":["../../../src/kdaDialog/composition/KeyDriversPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ICatalogDateAttribute } from "@gooddata/sdk-model";
|
|
2
|
+
import { KdaPeriodType } from "../../types.js";
|
|
3
|
+
export declare function usePeriodChangeHandler(dateAttribute: ICatalogDateAttribute | null): {
|
|
4
|
+
isAvailable: boolean;
|
|
5
|
+
onPeriodChange: (type: KdaPeriodType) => void;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=usePeriodChangeHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePeriodChangeHandler.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/usePeriodChangeHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAkB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/D,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,qBAAqB,GAAG,IAAI;;2BAInE,aAAa;EAuB3B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { useKdaState } from "../../providers/KdaState.js";
|
|
4
|
+
export function usePeriodChangeHandler(dateAttribute) {
|
|
5
|
+
const { state, setState } = useKdaState();
|
|
6
|
+
const onPeriodChange = useCallback((type) => {
|
|
7
|
+
const def = state.definition;
|
|
8
|
+
if (!def || !dateAttribute) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const definition = updateDefinitionPeriod(def, dateAttribute, type);
|
|
12
|
+
setState({
|
|
13
|
+
definition,
|
|
14
|
+
});
|
|
15
|
+
}, [dateAttribute, setState, state.definition]);
|
|
16
|
+
const isAvailable = useMemo(() => {
|
|
17
|
+
return isPeriodChangeAvailable(dateAttribute);
|
|
18
|
+
}, [dateAttribute]);
|
|
19
|
+
return {
|
|
20
|
+
isAvailable,
|
|
21
|
+
onPeriodChange,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function updateDefinitionPeriod(definition, dateAttribute, type) {
|
|
25
|
+
const [from, to] = definition.range;
|
|
26
|
+
const granularity = dateAttribute.granularity;
|
|
27
|
+
switch (type) {
|
|
28
|
+
case "previous_period": {
|
|
29
|
+
const currentDate = updateDateBy(to.date, granularity);
|
|
30
|
+
return {
|
|
31
|
+
...definition,
|
|
32
|
+
type: "previous_period",
|
|
33
|
+
range: [
|
|
34
|
+
{
|
|
35
|
+
...from,
|
|
36
|
+
date: currentDate.toISOString(),
|
|
37
|
+
},
|
|
38
|
+
to,
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
case "same_period_previous_year": {
|
|
43
|
+
const currentDate = new Date(to.date);
|
|
44
|
+
currentDate.setFullYear(currentDate.getFullYear() - 1);
|
|
45
|
+
return {
|
|
46
|
+
...definition,
|
|
47
|
+
type: "same_period_previous_year",
|
|
48
|
+
range: [
|
|
49
|
+
{
|
|
50
|
+
...from,
|
|
51
|
+
date: currentDate.toISOString(),
|
|
52
|
+
},
|
|
53
|
+
to,
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function updateDateBy(date, granularity) {
|
|
60
|
+
switch (granularity) {
|
|
61
|
+
case "GDC.time.year": {
|
|
62
|
+
const current = new Date(date);
|
|
63
|
+
current.setFullYear(current.getFullYear() - 1);
|
|
64
|
+
return current;
|
|
65
|
+
}
|
|
66
|
+
case "GDC.time.week_us":
|
|
67
|
+
case "GDC.time.week": {
|
|
68
|
+
const current = new Date(date);
|
|
69
|
+
current.setDate(current.getDate() - 7);
|
|
70
|
+
return current;
|
|
71
|
+
}
|
|
72
|
+
case "GDC.time.quarter": {
|
|
73
|
+
const current = new Date(date);
|
|
74
|
+
current.setMonth(current.getMonth() - 3);
|
|
75
|
+
return current;
|
|
76
|
+
}
|
|
77
|
+
case "GDC.time.month": {
|
|
78
|
+
const current = new Date(date);
|
|
79
|
+
current.setMonth(current.getMonth() - 1);
|
|
80
|
+
return current;
|
|
81
|
+
}
|
|
82
|
+
case "GDC.time.date": {
|
|
83
|
+
const current = new Date(date);
|
|
84
|
+
current.setDate(current.getDate() - 1);
|
|
85
|
+
return current;
|
|
86
|
+
}
|
|
87
|
+
case "GDC.time.hour": {
|
|
88
|
+
const current = new Date(date);
|
|
89
|
+
current.setHours(current.getHours() - 1);
|
|
90
|
+
return current;
|
|
91
|
+
}
|
|
92
|
+
case "GDC.time.minute": {
|
|
93
|
+
const current = new Date(date);
|
|
94
|
+
current.setMinutes(current.getMinutes() - 1);
|
|
95
|
+
return current;
|
|
96
|
+
}
|
|
97
|
+
default:
|
|
98
|
+
return new Date(date);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function isPeriodChangeAvailable(dateAttribute) {
|
|
102
|
+
const granularity = dateAttribute?.granularity;
|
|
103
|
+
return granularity !== "GDC.time.year";
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=usePeriodChangeHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePeriodChangeHandler.js","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/usePeriodChangeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaDialog.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,eAAsB,EAAE,OAAO,EAAE,EAAE,eAAe,2CA6DxF"}
|
|
@@ -16,6 +16,9 @@ import { KeyDriversOverview } from "../composition/KeyDriversOverview.js";
|
|
|
16
16
|
import { KeyDriversPanel } from "../composition/KeyDriversPanel.js";
|
|
17
17
|
import { MetricsBar } from "../composition/MetricsBar.js";
|
|
18
18
|
import { useKdaState } from "../providers/KdaState.js";
|
|
19
|
+
import { useChangeAnalysis } from "./hooks/useChangeAnalysis.js";
|
|
20
|
+
import { useKdaDialogTooltipsOverride } from "./hooks/useKdaDialogTooltipsOverride.js";
|
|
21
|
+
import { useValidAttributes } from "./hooks/useValidAttributes.js";
|
|
19
22
|
const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z_INDEX);
|
|
20
23
|
/**
|
|
21
24
|
* @internal
|
|
@@ -23,8 +26,12 @@ const overlayController = OverlayController.getInstance(DASHBOARD_DIALOG_OVERS_Z
|
|
|
23
26
|
export function KdaDialog({ className, showCloseButton = true, onClose }) {
|
|
24
27
|
const { state } = useKdaState();
|
|
25
28
|
const metric = state.definition?.metric.measure;
|
|
26
|
-
const
|
|
29
|
+
const title = metric?.alias ?? metric?.title ?? "";
|
|
30
|
+
const accessibilityConfig = useKdaDialogAccessibility(title);
|
|
27
31
|
const detailsId = useId();
|
|
32
|
+
useChangeAnalysis();
|
|
33
|
+
useValidAttributes();
|
|
34
|
+
useKdaDialogTooltipsOverride();
|
|
28
35
|
return (_jsx(OverlayControllerProvider, { overlayController: overlayController, children: _jsx(Dialog, { className: cx(accessibilityConfig.dialogId, className), isModal: accessibilityConfig.isModal, accessibilityConfig: accessibilityConfig, displayCloseButton: showCloseButton, closeOnEscape: showCloseButton, onClose: onClose, children: _jsx(KdaDialogSections, { header: _jsx(KdaHeader, { titleId: accessibilityConfig.titleElementId, title: accessibilityConfig.title, bars: _jsxs(_Fragment, { children: [_jsx(MetricsBar, {}), _jsx(FiltersBar, {})] }) }), content: _jsx(KdaContent, { leftContent: _jsx(KeyDriversPanel, { detailsId: detailsId }), leftLoader: _jsx(KeyDriversPanel, { detailsId: detailsId, loading: true }), leftError: _jsx(ErrorComponent, { message: "Unknown error", description: "Can not load key drivers attributes list. Please try again later." }), rightContent: _jsx(KeyDriversOverview, { detailsId: detailsId }), rightLoader: _jsx(KeyDriversOverview, { loading: true }), rightError: _jsx(ErrorComponent, { message: "Unknown error", description: "Can not load key driver details. Please try again later." }) }), footer: _jsx(KdaFooter, { content: _jsx(KeyDriversFooter, {}), onClose: onClose }) }) }) }));
|
|
29
36
|
}
|
|
30
37
|
//# sourceMappingURL=KdaDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KdaDialog.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"KdaDialog.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"AAgBA,wBAAgB,iBAAiB,SAehC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useEffect, useMemo } from "react";
|
|
3
|
+
import { ClientFormatterFacade } from "@gooddata/number-formatter";
|
|
4
|
+
import { isSimpleMeasure } from "@gooddata/sdk-model";
|
|
5
|
+
import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
6
|
+
import { useAttribute } from "../../hooks/useAttribute.js";
|
|
7
|
+
import { useDateAttribute } from "../../hooks/useDateAttribute.js";
|
|
8
|
+
import { useKdaState } from "../../providers/KdaState.js";
|
|
9
|
+
export function useChangeAnalysis() {
|
|
10
|
+
const { state, setState } = useKdaState();
|
|
11
|
+
const definition = state.definition;
|
|
12
|
+
const attributes = useMemo(() => {
|
|
13
|
+
return state.selectedAttributes;
|
|
14
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
+
}, [state.selectedUpdated]);
|
|
16
|
+
const results = useChangeAnalysisResults(definition, attributes);
|
|
17
|
+
const list = useKdaStateWithList(results, definition);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
setState(list);
|
|
20
|
+
}, [list, setState]);
|
|
21
|
+
}
|
|
22
|
+
function useChangeAnalysisResults(definition, attributes) {
|
|
23
|
+
const backend = useBackendStrict();
|
|
24
|
+
const workspace = useWorkspaceStrict();
|
|
25
|
+
const from = definition?.range[0].date;
|
|
26
|
+
const to = definition?.range[1].date;
|
|
27
|
+
const dateAttributeFinder = useDateAttribute();
|
|
28
|
+
return useCancelablePromise({
|
|
29
|
+
promise: () => {
|
|
30
|
+
const dateAttribute = dateAttributeFinder(definition?.dateAttribute);
|
|
31
|
+
if (!definition || !dateAttribute) {
|
|
32
|
+
return Promise.resolve(undefined);
|
|
33
|
+
}
|
|
34
|
+
const granularity = dateAttribute.granularity;
|
|
35
|
+
//TODO: This is hack: Replace this code for metric definition not only id
|
|
36
|
+
const ref = isSimpleMeasure(definition.metric)
|
|
37
|
+
? definition.metric.measure.definition.measureDefinition.item
|
|
38
|
+
: null;
|
|
39
|
+
if (!ref) {
|
|
40
|
+
return Promise.resolve(undefined);
|
|
41
|
+
}
|
|
42
|
+
return backend
|
|
43
|
+
.workspace(workspace)
|
|
44
|
+
.keyDriverAnalysis()
|
|
45
|
+
.computeChangeAnalysis({
|
|
46
|
+
dateAttribute: definition.dateAttribute,
|
|
47
|
+
from: from ?? "",
|
|
48
|
+
to: to ?? "",
|
|
49
|
+
granularity,
|
|
50
|
+
}, ref, attributes);
|
|
51
|
+
},
|
|
52
|
+
}, [backend, definition, attributes, workspace, from, to]);
|
|
53
|
+
}
|
|
54
|
+
function useKdaStateWithList({ result, status }, definition) {
|
|
55
|
+
const { state } = useKdaState();
|
|
56
|
+
const loadingStatus = definition ? status : "pending";
|
|
57
|
+
const attributeFinder = useAttribute();
|
|
58
|
+
const metric = definition?.metric;
|
|
59
|
+
const separators = state.separators;
|
|
60
|
+
const from = definition?.range[0].date;
|
|
61
|
+
const to = definition?.range[1].date;
|
|
62
|
+
const { items, attributes } = useMemo(() => {
|
|
63
|
+
const attributes = [];
|
|
64
|
+
function mapKeyDrive(keyDriver, i) {
|
|
65
|
+
const ref = keyDriver.displayForm;
|
|
66
|
+
const attribute = attributeFinder(ref);
|
|
67
|
+
if (attribute && !attributes.includes(attribute)) {
|
|
68
|
+
attributes.push(attribute);
|
|
69
|
+
}
|
|
70
|
+
if (attribute && metric && from && to) {
|
|
71
|
+
return createKdaItem(metric, attribute, keyDriver, i, from, to, separators);
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const list = result?.keyDrivers.map(mapKeyDrive) ?? [];
|
|
76
|
+
const items = list.filter(Boolean);
|
|
77
|
+
return {
|
|
78
|
+
items,
|
|
79
|
+
attributes,
|
|
80
|
+
};
|
|
81
|
+
}, [attributeFinder, from, metric, result?.keyDrivers, separators, to]);
|
|
82
|
+
return useMemo(() => {
|
|
83
|
+
return {
|
|
84
|
+
items,
|
|
85
|
+
selectedItem: "summary",
|
|
86
|
+
itemsStatus: loadingStatus,
|
|
87
|
+
selectedStatus: loadingStatus,
|
|
88
|
+
selectedAttributes: attributes.map((a) => a.defaultDisplayForm.ref),
|
|
89
|
+
};
|
|
90
|
+
}, [items, loadingStatus, attributes]);
|
|
91
|
+
}
|
|
92
|
+
function createKdaItem(metric, attribute, driver, i, from, to, separators) {
|
|
93
|
+
const stringTitle = `${attribute.attribute.title}: ${driver.value}`;
|
|
94
|
+
const id = `key_driver_${i}`;
|
|
95
|
+
return {
|
|
96
|
+
id,
|
|
97
|
+
stringTitle,
|
|
98
|
+
data: {
|
|
99
|
+
id,
|
|
100
|
+
attribute: attribute.defaultDisplayForm.ref,
|
|
101
|
+
title: attribute.attribute.title,
|
|
102
|
+
description: attribute.attribute.description,
|
|
103
|
+
category: driver.value,
|
|
104
|
+
from: {
|
|
105
|
+
value: driver.metricValue.from,
|
|
106
|
+
date: from,
|
|
107
|
+
},
|
|
108
|
+
to: {
|
|
109
|
+
value: driver.metricValue.to,
|
|
110
|
+
date: to,
|
|
111
|
+
},
|
|
112
|
+
isSignificant: driver.isSignificantChange,
|
|
113
|
+
standardDeviation: driver.std,
|
|
114
|
+
mean: driver.mean,
|
|
115
|
+
formatValue: (value) => {
|
|
116
|
+
const format = metric.measure.format;
|
|
117
|
+
return ClientFormatterFacade.formatValue(value, format, separators).formattedValue;
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
type: "interactive",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=useChangeAnalysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChangeAnalysis.js","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useChangeAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKdaDialogTooltipsOverride.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.ts"],"names":[],"mappings":"AAMA,wBAAgB,4BAA4B,SAO3C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
const CLASSNAME = "gd-kda-dialog-opened";
|
|
4
|
+
export function useKdaDialogTooltipsOverride() {
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
document.body.classList.add(CLASSNAME);
|
|
7
|
+
return () => {
|
|
8
|
+
document.body.classList.remove(CLASSNAME);
|
|
9
|
+
};
|
|
10
|
+
}, []);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useKdaDialogTooltipsOverride.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKdaDialogTooltipsOverride.js","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC,MAAM,UAAU,4BAA4B;IACxC,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useValidAttributes.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useValidAttributes.ts"],"names":[],"mappings":"AASA,wBAAgB,kBAAkB,SAYjC"}
|