@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.
Files changed (221) hide show
  1. package/NOTICE +4 -4
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts +1 -1
  5. package/esm/kdaDialog/components/KdaKeyDriverChart.d.ts.map +1 -1
  6. package/esm/kdaDialog/components/KdaKeyDriverChart.js +126 -11
  7. package/esm/kdaDialog/components/KdaKeyDriverChart.js.map +1 -1
  8. package/esm/kdaDialog/components/KdaSummaryDrivers.d.ts.map +1 -1
  9. package/esm/kdaDialog/components/KdaSummaryDrivers.js +14 -10
  10. package/esm/kdaDialog/components/KdaSummaryDrivers.js.map +1 -1
  11. package/esm/kdaDialog/components/KdaSummaryHeadline.d.ts.map +1 -1
  12. package/esm/kdaDialog/components/KdaSummaryHeadline.js +22 -4
  13. package/esm/kdaDialog/components/KdaSummaryHeadline.js.map +1 -1
  14. package/esm/kdaDialog/components/bars/AttributeBar.d.ts +1 -2
  15. package/esm/kdaDialog/components/bars/AttributeBar.d.ts.map +1 -1
  16. package/esm/kdaDialog/components/bars/AttributeBar.js +2 -4
  17. package/esm/kdaDialog/components/bars/AttributeBar.js.map +1 -1
  18. package/esm/kdaDialog/components/bars/DateBar.d.ts +1 -0
  19. package/esm/kdaDialog/components/bars/DateBar.d.ts.map +1 -1
  20. package/esm/kdaDialog/components/bars/DateBar.js +1 -1
  21. package/esm/kdaDialog/components/bars/DateBar.js.map +1 -1
  22. package/esm/kdaDialog/components/columns/driverColumn.d.ts +2 -2
  23. package/esm/kdaDialog/components/columns/driverColumn.d.ts.map +1 -1
  24. package/esm/kdaDialog/components/columns/driverColumn.js +17 -4
  25. package/esm/kdaDialog/components/columns/driverColumn.js.map +1 -1
  26. package/esm/kdaDialog/components/columns/driversCount.d.ts +2 -2
  27. package/esm/kdaDialog/components/columns/driversCount.d.ts.map +1 -1
  28. package/esm/kdaDialog/components/columns/driversCount.js +4 -1
  29. package/esm/kdaDialog/components/columns/driversCount.js.map +1 -1
  30. package/esm/kdaDialog/components/columns/titleColumn.d.ts +2 -2
  31. package/esm/kdaDialog/components/columns/titleColumn.d.ts.map +1 -1
  32. package/esm/kdaDialog/components/columns/titleColumn.js.map +1 -1
  33. package/esm/kdaDialog/components/headlines/DiffHeadline.d.ts.map +1 -1
  34. package/esm/kdaDialog/components/headlines/DiffHeadline.js +2 -1
  35. package/esm/kdaDialog/components/headlines/DiffHeadline.js.map +1 -1
  36. package/esm/kdaDialog/composition/FiltersBar.d.ts.map +1 -1
  37. package/esm/kdaDialog/composition/FiltersBar.js +18 -29
  38. package/esm/kdaDialog/composition/FiltersBar.js.map +1 -1
  39. package/esm/kdaDialog/composition/KeyDriversFooter.d.ts.map +1 -1
  40. package/esm/kdaDialog/composition/KeyDriversFooter.js +13 -5
  41. package/esm/kdaDialog/composition/KeyDriversFooter.js.map +1 -1
  42. package/esm/kdaDialog/composition/KeyDriversOverview.js +10 -1
  43. package/esm/kdaDialog/composition/KeyDriversOverview.js.map +1 -1
  44. package/esm/kdaDialog/composition/KeyDriversPanel.d.ts.map +1 -1
  45. package/esm/kdaDialog/composition/KeyDriversPanel.js +4 -19
  46. package/esm/kdaDialog/composition/KeyDriversPanel.js.map +1 -1
  47. package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts +7 -0
  48. package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.d.ts.map +1 -0
  49. package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js +105 -0
  50. package/esm/kdaDialog/composition/hooks/usePeriodChangeHandler.js.map +1 -0
  51. package/esm/kdaDialog/dialog/KdaDialog.d.ts.map +1 -1
  52. package/esm/kdaDialog/dialog/KdaDialog.js +8 -1
  53. package/esm/kdaDialog/dialog/KdaDialog.js.map +1 -1
  54. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts +2 -0
  55. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.d.ts.map +1 -0
  56. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +123 -0
  57. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js.map +1 -0
  58. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts +2 -0
  59. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.d.ts.map +1 -0
  60. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js +12 -0
  61. package/esm/kdaDialog/dialog/hooks/useKdaDialogTooltipsOverride.js.map +1 -0
  62. package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts +2 -0
  63. package/esm/kdaDialog/dialog/hooks/useValidAttributes.d.ts.map +1 -0
  64. package/esm/kdaDialog/dialog/hooks/useValidAttributes.js +29 -0
  65. package/esm/kdaDialog/dialog/hooks/useValidAttributes.js.map +1 -0
  66. package/esm/kdaDialog/hooks/useAttribute.d.ts +3 -0
  67. package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -0
  68. package/esm/kdaDialog/hooks/useAttribute.js +14 -0
  69. package/esm/kdaDialog/hooks/useAttribute.js.map +1 -0
  70. package/esm/kdaDialog/hooks/useDateAttribute.d.ts +3 -0
  71. package/esm/kdaDialog/hooks/useDateAttribute.d.ts.map +1 -0
  72. package/esm/kdaDialog/hooks/useDateAttribute.js +14 -0
  73. package/esm/kdaDialog/hooks/useDateAttribute.js.map +1 -0
  74. package/esm/kdaDialog/hooks/useDriversList.d.ts +7 -0
  75. package/esm/kdaDialog/hooks/useDriversList.d.ts.map +1 -0
  76. package/esm/kdaDialog/hooks/useDriversList.js +26 -0
  77. package/esm/kdaDialog/hooks/useDriversList.js.map +1 -0
  78. package/esm/kdaDialog/hooks/useSignificantDrives.d.ts +2 -0
  79. package/esm/kdaDialog/hooks/useSignificantDrives.d.ts.map +1 -0
  80. package/esm/kdaDialog/hooks/useSignificantDrives.js +10 -0
  81. package/esm/kdaDialog/hooks/useSignificantDrives.js.map +1 -0
  82. package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts +3 -0
  83. package/esm/kdaDialog/hooks/useSummaryDrivers.d.ts.map +1 -0
  84. package/esm/kdaDialog/hooks/useSummaryDrivers.js +42 -0
  85. package/esm/kdaDialog/hooks/useSummaryDrivers.js.map +1 -0
  86. package/esm/kdaDialog/hooks/useTrendDrivers.d.ts +5 -0
  87. package/esm/kdaDialog/hooks/useTrendDrivers.d.ts.map +1 -0
  88. package/esm/kdaDialog/hooks/useTrendDrivers.js +17 -0
  89. package/esm/kdaDialog/hooks/useTrendDrivers.js.map +1 -0
  90. package/esm/kdaDialog/internalTypes.d.ts +16 -7
  91. package/esm/kdaDialog/internalTypes.d.ts.map +1 -1
  92. package/esm/kdaDialog/providers/KdaState.d.ts.map +1 -1
  93. package/esm/kdaDialog/providers/KdaState.js +9 -7
  94. package/esm/kdaDialog/providers/KdaState.js.map +1 -1
  95. package/esm/kdaDialog/utils.d.ts.map +1 -1
  96. package/esm/kdaDialog/utils.js +1 -1
  97. package/esm/kdaDialog/utils.js.map +1 -1
  98. package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.d.ts.map +1 -1
  99. package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js +8 -1
  100. package/esm/model/commandHandlers/drill/keyDriverAnalysisHandler.js.map +1 -1
  101. package/esm/model/events/drill.d.ts +2 -1
  102. package/esm/model/events/drill.d.ts.map +1 -1
  103. package/esm/model/events/drill.js.map +1 -1
  104. package/esm/presentation/drill/utils/kdaUtils.d.ts.map +1 -1
  105. package/esm/presentation/drill/utils/kdaUtils.js +15 -6
  106. package/esm/presentation/drill/utils/kdaUtils.js.map +1 -1
  107. package/esm/presentation/localization/bundles/de-DE.json +9 -1
  108. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +8 -0
  109. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  110. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +9 -1
  111. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js.map +1 -1
  112. package/esm/presentation/localization/bundles/en-AU.json +9 -1
  113. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +8 -0
  114. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  115. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +9 -1
  116. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js.map +1 -1
  117. package/esm/presentation/localization/bundles/en-GB.json +9 -1
  118. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +8 -0
  119. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  120. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +9 -1
  121. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js.map +1 -1
  122. package/esm/presentation/localization/bundles/en-US.json +13 -1
  123. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +3 -0
  124. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  125. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -1
  126. package/esm/presentation/localization/bundles/en-US.localization-bundle.js.map +1 -1
  127. package/esm/presentation/localization/bundles/es-419.json +9 -1
  128. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +8 -0
  129. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  130. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +9 -1
  131. package/esm/presentation/localization/bundles/es-419.localization-bundle.js.map +1 -1
  132. package/esm/presentation/localization/bundles/es-ES.json +9 -1
  133. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +8 -0
  134. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  135. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +9 -1
  136. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js.map +1 -1
  137. package/esm/presentation/localization/bundles/fi-FI.json +9 -1
  138. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +8 -0
  139. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  140. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +9 -1
  141. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js.map +1 -1
  142. package/esm/presentation/localization/bundles/fr-CA.json +9 -1
  143. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +8 -0
  144. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  145. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +9 -1
  146. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js.map +1 -1
  147. package/esm/presentation/localization/bundles/fr-FR.json +9 -1
  148. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +8 -0
  149. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  150. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +9 -1
  151. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js.map +1 -1
  152. package/esm/presentation/localization/bundles/it-IT.json +9 -1
  153. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +8 -0
  154. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  155. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +9 -1
  156. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js.map +1 -1
  157. package/esm/presentation/localization/bundles/ja-JP.json +9 -1
  158. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +8 -0
  159. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  160. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +9 -1
  161. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js.map +1 -1
  162. package/esm/presentation/localization/bundles/ko-KR.json +9 -1
  163. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +8 -0
  164. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  165. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +9 -1
  166. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js.map +1 -1
  167. package/esm/presentation/localization/bundles/nl-NL.json +9 -1
  168. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +8 -0
  169. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  170. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +9 -1
  171. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js.map +1 -1
  172. package/esm/presentation/localization/bundles/pl-PL.json +9 -1
  173. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +8 -0
  174. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  175. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +9 -1
  176. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js.map +1 -1
  177. package/esm/presentation/localization/bundles/pt-BR.json +9 -1
  178. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +8 -0
  179. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  180. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +9 -1
  181. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js.map +1 -1
  182. package/esm/presentation/localization/bundles/pt-PT.json +9 -1
  183. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +8 -0
  184. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  185. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +9 -1
  186. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js.map +1 -1
  187. package/esm/presentation/localization/bundles/ru-RU.json +9 -1
  188. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +8 -0
  189. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  190. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +9 -1
  191. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js.map +1 -1
  192. package/esm/presentation/localization/bundles/tr-TR.json +9 -1
  193. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +8 -0
  194. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  195. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +9 -1
  196. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js.map +1 -1
  197. package/esm/presentation/localization/bundles/zh-HK.json +9 -1
  198. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +8 -0
  199. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  200. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +9 -1
  201. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js.map +1 -1
  202. package/esm/presentation/localization/bundles/zh-Hans.json +9 -1
  203. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +8 -0
  204. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  205. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +9 -1
  206. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js.map +1 -1
  207. package/esm/presentation/localization/bundles/zh-Hant.json +9 -1
  208. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +8 -0
  209. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  210. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +9 -1
  211. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js.map +1 -1
  212. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.d.ts.map +1 -1
  213. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js +73 -29
  214. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/RecipientsSelect/RecipientsSelectRenderer.js.map +1 -1
  215. package/esm/sdk-ui-dashboard.d.ts +2 -0
  216. package/package.json +18 -17
  217. package/styles/css/kdaDialog.css +13 -0
  218. package/styles/css/kdaDialog.css.map +1 -1
  219. package/styles/css/main.css +13 -0
  220. package/styles/css/main.css.map +1 -1
  221. 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 { areObjRefsEqual } from "@gooddata/sdk-model";
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 { state, setState } = useKdaState();
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 = useCallback((type) => {
27
- // eslint-disable-next-line
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":"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"}
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,4CAqE/B"}
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 = state.itemsStatus === "pending" || state.itemsStatus === "loading" || !isCatalogLoaded;
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 allAttributes.find((a) => a.displayForms.some((df) => areObjRefsEqual(df.ref, attr)));
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.combinations,
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: allAttributes, alignPoints: [{ align: "tl bl" }], getItemTitle: (item) => item.attribute.title, getItemKey: (item) => item.attribute.id, onChange: (selectedItems, isInverted) => {
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
- ? allAttributes.filter((a) => !selectedItems.includes(a))
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":"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"}
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,GACX,CAAC,eAAe;QAChB,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,KAAK,CAAC,cAAc,KAAK,SAAS;QAClC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;IAEvC,MAAM,aAAa,GAAG,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/C,OAAO,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,KAAK,CAAC,kBAAkB;SAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAwB,CAAC;IAE5C,OAAO,CACH,wBACK,SAAS,CAAC,CAAC,CAAC,CACT,KAAC,UAAU,IAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,GAAI,CACjD,CAAC,CAAC,CAAC,CACA,KAAC,gBAAgB,IACb,EAAE,EAAC,iEAAiE,EACpE,MAAM,EAAE;gBACJ,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAChC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,MAAM;gBAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBACf,OAAO,CACH,KAAC,wBAAwB,IACrB,SAAS,EAAC,4BAA4B,EACtC,YAAY,EAAE,iBAAiB,EAC/B,iBAAiB,EAAE,KAAK,EACxB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EACjC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EACvC,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE;4BACpC,MAAM,QAAQ,GAAG,UAAU;gCACvB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAC3D,CAAC,CAAC,aAAa,CAAC;4BAEpB,QAAQ,CAAC;gCACL,kBAAkB,EAAE,QAAQ,CAAC,GAAG,CAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACxC;gCACD,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;6BAC9B,CAAC,CAAC;wBACP,CAAC,EACD,MAAM,EACF,cAAK,SAAS,EAAC,oCAAoC,YAC/C,KAAC,gBAAgB,IAAC,EAAE,EAAC,gEAAgE,GAAG,GACtF,EAEV,eAAe,EAAE,GAAG,EAAE,CAAC,CACnB,cAAK,SAAS,EAAC,uCAAuC,GAAG,CAC5D,EACD,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CACrD,KAAC,QAAQ,IACL,GAAG,EAAE,SAAyC,EAC9C,OAAO,EAAC,UAAU,EAClB,SAAS,EAAC,UAAU,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EACtB,OAAO,EAAE,cAAc,GACzB,CACL,GACH,CACL,CAAC;gBACN,CAAC;aACJ,GACH,CACL,GACC,CACT,CAAC;AACN,CAAC"}
@@ -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
- 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" })] })] }));
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":"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"}
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":"AAsBA,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,2CAoK3E"}
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, useMemo } from "react";
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 = useMemo(() => state.items.filter((item) => {
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: currentItems.length > 0 ? (_jsx(UiListbox, { items: currentItems, ariaAttributes: {
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":"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"}
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;AAI9C;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,eAAsB,EAAE,OAAO,EAAE,EAAE,eAAe,2CAsDxF"}
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 accessibilityConfig = useKdaDialogAccessibility(metric?.title ?? "");
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":"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"}
1
+ {"version":3,"file":"KdaDialog.js","sourceRoot":"","sources":["../../../src/kdaDialog/dialog/KdaDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useChangeAnalysis(): void;
2
+ //# sourceMappingURL=useChangeAnalysis.d.ts.map
@@ -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,2 @@
1
+ export declare function useKdaDialogTooltipsOverride(): void;
2
+ //# sourceMappingURL=useKdaDialogTooltipsOverride.d.ts.map
@@ -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,2 @@
1
+ export declare function useValidAttributes(): void;
2
+ //# sourceMappingURL=useValidAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useValidAttributes.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/dialog/hooks/useValidAttributes.ts"],"names":[],"mappings":"AASA,wBAAgB,kBAAkB,SAYjC"}