@gooddata/sdk-ui-dashboard 11.59.0-alpha.1 → 11.59.0
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.d.ts.map +1 -1
- package/esm/__version.js +1 -1
- package/esm/kdaDialog/composition/KdaAttributesDropdown.js +1 -1
- package/esm/kdaDialog/composition/hooks/useKdaAttributesSelection.d.ts +4 -0
- package/esm/kdaDialog/composition/hooks/useKdaAttributesSelection.d.ts.map +1 -1
- package/esm/kdaDialog/composition/hooks/useKdaAttributesSelection.js +6 -1
- package/esm/kdaDialog/composition/hooks/useKdaValidAttributes.d.ts.map +1 -1
- package/esm/kdaDialog/composition/hooks/useKdaValidAttributes.js +2 -1
- package/esm/kdaDialog/hooks/useAttribute.d.ts.map +1 -1
- package/esm/kdaDialog/hooks/useAttribute.js +4 -3
- package/esm/kdaDialog/hooks/useSummaryDrivers.js +3 -3
- package/esm/tsdoc-metadata.json +1 -1
- package/package.json +25 -25
- package/styles/css/insightsNotSavedDialog.css +2 -2
- package/styles/css/main.css +2 -2
- package/styles/scss/insightsNotSavedDialog.scss +2 -2
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-9-
|
|
10
|
+
Date generated: 2026-9-25
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 7aafbc41b1e160f8395e93ba8e2641b345382639
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -24657,7 +24657,7 @@ MIT
|
|
|
24657
24657
|
|
|
24658
24658
|
Authors: se.mo.moosavi@gmail.com
|
|
24659
24659
|
Package Manager: NPM
|
|
24660
|
-
Project URL: https://
|
|
24660
|
+
Project URL: https://github.com/date-fns-jalali/date-fns-jalali#readme
|
|
24661
24661
|
Package Download URL: https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz
|
|
24662
24662
|
Dependency Path: react-day-picker > date-fns-jalali
|
|
24663
24663
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -64914,4 +64914,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
|
64914
64914
|
--------------------------------------------------------------------------------
|
|
64915
64915
|
--------------------------------------------------------------------------------
|
|
64916
64916
|
|
|
64917
|
-
Report Generated by FOSSA on 2026-9-
|
|
64917
|
+
Report Generated by FOSSA on 2026-9-25
|
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.59.0
|
|
1
|
+
export declare const LIB_VERSION = "11.59.0";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,eAAe,uCAAuC,CAAC;AAEpE,eAAO,MAAM,QAAQ,+BAA+B,CAAC"}
|
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.59.0
|
|
3
|
+
export const LIB_VERSION = "11.59.0";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
@@ -33,7 +33,7 @@ export function KdaAttributesDropdown({ buttonLabel, attributesCount, validAttri
|
|
|
33
33
|
closeDropdown();
|
|
34
34
|
};
|
|
35
35
|
return (_jsxs("div", { ...ariaAttributes, "aria-labelledby": undefined, "aria-label": popupLabel, className: "gd-kda-attributes-dropdown__body", children: [_jsx("div", { className: "gd-kda-attributes-dropdown__header", children: popupLabel }), _jsx(InvertableSelectVirtualised, { className: "gd-kda-attributes-select", adaptiveWidth: true, items: filteredOptions, totalItemsCount: filteredOptions.length, itemHeight: ITEM_HEIGHT, getItemKey: getAttributeKey, getItemTitle: getAttributeTitle, isItemQuestionMarkEnabled: () => false, isInverted: isInverted, selectedItems: selection, canSubmitOnKeyDown: !isApplyDisabled, onApplyButtonClick: handleApply, onSelect: onSelect, searchString: searchString, onSearch: setSearchString, renderItem: (itemProps) => {
|
|
36
|
-
const group = mapAttributes.get(itemProps.item
|
|
36
|
+
const group = mapAttributes.get(getAttributeKey(itemProps.item));
|
|
37
37
|
const driverCount = group?.significantDrivers.length ?? 0;
|
|
38
38
|
const count = driverCount > 0 ? `(${driverCount})` : "-";
|
|
39
39
|
const countAriaLabel = driverCount > 0
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { type ICatalogAttribute } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Keys the item by its typed ref, so that a label and a computed attribute with the same id are two rows.
|
|
4
|
+
* objRefToString would drop the `type` and collapse the two into one.
|
|
5
|
+
*/
|
|
2
6
|
export declare const getAttributeKey: (item: ICatalogAttribute) => string;
|
|
3
7
|
export declare const getAttributeTitle: (item: ICatalogAttribute) => string;
|
|
4
8
|
export declare function useKdaAttributesSelection(validAttributes: ICatalogAttribute[], initialAttributes: ICatalogAttribute[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKdaAttributesSelection.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useKdaAttributesSelection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useKdaAttributesSelection.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useKdaAttributesSelection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,eAAe,SAAU,iBAAiB,WAAwC,CAAC;AAChG,eAAO,MAAM,iBAAiB,SAAU,iBAAiB,WAAyB,CAAC;AAEnF,wBAAgB,yBAAyB,CACrC,eAAe,EAAE,iBAAiB,EAAE,EACpC,iBAAiB,EAAE,iBAAiB,EAAE;;;;;;;;8BAuCO,iBAAiB,EAAE,YAAY,OAAO;;EAgBtF"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useCallback, useMemo, useState } from "react";
|
|
3
|
-
|
|
3
|
+
import { serializeObjRef } from "@gooddata/sdk-model";
|
|
4
|
+
/**
|
|
5
|
+
* Keys the item by its typed ref, so that a label and a computed attribute with the same id are two rows.
|
|
6
|
+
* objRefToString would drop the `type` and collapse the two into one.
|
|
7
|
+
*/
|
|
8
|
+
export const getAttributeKey = (item) => serializeObjRef(item.attribute.ref);
|
|
4
9
|
export const getAttributeTitle = (item) => item.attribute.title;
|
|
5
10
|
export function useKdaAttributesSelection(validAttributes, initialAttributes) {
|
|
6
11
|
const [searchString, setSearchString] = useState("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKdaValidAttributes.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useKdaValidAttributes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAK9E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useKdaValidAttributes.d.ts","sourceRoot":"","sources":["../../../../src/kdaDialog/composition/hooks/useKdaValidAttributes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAK9E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAO5D,wBAAgB,qBAAqB;;;;;EA4CpC"}
|
|
@@ -5,6 +5,7 @@ import { useDashboardSelector } from "../../../model/react/DashboardStoreProvide
|
|
|
5
5
|
import { selectCatalogAttributesWithComputed } from "../../../model/store/catalog/catalogSelectors.js";
|
|
6
6
|
import { useSummaryDrivers } from "../../hooks/useSummaryDrivers.js";
|
|
7
7
|
import { useKdaState } from "../../providers/KdaState.js";
|
|
8
|
+
import { getAttributeKey } from "./useKdaAttributesSelection.js";
|
|
8
9
|
const SEARCH_BAR_THRESHOLD = 7;
|
|
9
10
|
export function useKdaValidAttributes() {
|
|
10
11
|
const { state } = useKdaState();
|
|
@@ -18,7 +19,7 @@ export function useKdaValidAttributes() {
|
|
|
18
19
|
})
|
|
19
20
|
.map((a) => {
|
|
20
21
|
const group = list.find((item) => a.displayForms.some((df) => areObjRefsEqual(df.ref, item.displayForm)));
|
|
21
|
-
mapAttributes.set(a
|
|
22
|
+
mapAttributes.set(getAttributeKey(a), group);
|
|
22
23
|
return [a, group];
|
|
23
24
|
})
|
|
24
25
|
.sort(([, a], [, b]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttribute.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useAttribute.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,YAAY,WAKb,MAAM,
|
|
1
|
+
{"version":3,"file":"useAttribute.d.ts","sourceRoot":"","sources":["../../../src/kdaDialog/hooks/useAttribute.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,EAGd,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,YAAY,WAKb,MAAM,4DAoBpB"}
|
|
@@ -12,9 +12,10 @@ export function useAttribute() {
|
|
|
12
12
|
}
|
|
13
13
|
const matches = (a) => areObjRefsEqual(ref, a.attribute.ref) ||
|
|
14
14
|
a.attribute.displayForms.some((df) => areObjRefsEqual(df.ref, ref));
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
15
|
+
// A key driver ref carries its type (`displayForm` or `computedAttribute`), so a label and a
|
|
16
|
+
// computed attribute with the same id resolve to different catalog items. A backend without
|
|
17
|
+
// `attributeRef` sends the ref untyped; then only the id compares, and matching plain
|
|
18
|
+
// attributes first keeps that resolution deterministic.
|
|
18
19
|
return (attributes.find(matches) ??
|
|
19
20
|
computedAttributes.map(catalogComputedAttributeAsCatalogAttribute).find(matches) ??
|
|
20
21
|
null);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { serializeObjRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { useKdaState } from "../providers/KdaState.js";
|
|
5
5
|
import { useAttribute } from "./useAttribute.js";
|
|
6
6
|
export function useSummaryDrivers() {
|
|
@@ -9,7 +9,7 @@ export function useSummaryDrivers() {
|
|
|
9
9
|
return useMemo(() => {
|
|
10
10
|
//Groups
|
|
11
11
|
const groups = state.items.reduce((prev, { data }) => {
|
|
12
|
-
const ref =
|
|
12
|
+
const ref = serializeObjRef(data.attribute);
|
|
13
13
|
if (!prev[ref]) {
|
|
14
14
|
prev[ref] = createKdaGroup(ref, data.attribute, data.displayForm, data.title, data.description);
|
|
15
15
|
}
|
|
@@ -21,7 +21,7 @@ export function useSummaryDrivers() {
|
|
|
21
21
|
}, {});
|
|
22
22
|
//Selected fill empty groups
|
|
23
23
|
state.selectedAttributes.reduce((prev, current) => {
|
|
24
|
-
const ref =
|
|
24
|
+
const ref = serializeObjRef(current);
|
|
25
25
|
if (!prev[ref]) {
|
|
26
26
|
const attribute = attributeFinder(current);
|
|
27
27
|
if (attribute) {
|
package/esm/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-dashboard",
|
|
3
|
-
"version": "11.59.0
|
|
3
|
+
"version": "11.59.0",
|
|
4
4
|
"description": "GoodData SDK - Dashboard Component",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -60,27 +60,27 @@
|
|
|
60
60
|
"ts-invariant": "0.10.3",
|
|
61
61
|
"tslib": "2.8.1",
|
|
62
62
|
"uuid": "11.1.1",
|
|
63
|
-
"@gooddata/sdk-backend-base": "11.59.0
|
|
64
|
-
"@gooddata/sdk-
|
|
65
|
-
"@gooddata/sdk-
|
|
66
|
-
"@gooddata/sdk-ui": "11.59.0
|
|
67
|
-
"@gooddata/sdk-ui
|
|
68
|
-
"@gooddata/sdk-ui-ext": "11.59.0
|
|
69
|
-
"@gooddata/sdk-ui-filters": "11.59.0
|
|
70
|
-
"@gooddata/sdk-ui-geo": "11.59.0
|
|
71
|
-
"@gooddata/sdk-ui-kit": "11.59.0
|
|
72
|
-
"@gooddata/sdk-ui-
|
|
73
|
-
"@gooddata/sdk-ui-
|
|
74
|
-
"@gooddata/
|
|
75
|
-
"@gooddata/sdk-ui-
|
|
76
|
-
"@gooddata/
|
|
63
|
+
"@gooddata/sdk-backend-base": "11.59.0",
|
|
64
|
+
"@gooddata/sdk-model": "11.59.0",
|
|
65
|
+
"@gooddata/sdk-backend-spi": "11.59.0",
|
|
66
|
+
"@gooddata/sdk-ui-charts": "11.59.0",
|
|
67
|
+
"@gooddata/sdk-ui": "11.59.0",
|
|
68
|
+
"@gooddata/sdk-ui-ext": "11.59.0",
|
|
69
|
+
"@gooddata/sdk-ui-filters": "11.59.0",
|
|
70
|
+
"@gooddata/sdk-ui-geo": "11.59.0",
|
|
71
|
+
"@gooddata/sdk-ui-kit": "11.59.0",
|
|
72
|
+
"@gooddata/sdk-ui-pivot": "11.59.0",
|
|
73
|
+
"@gooddata/sdk-ui-semantic-search": "11.59.0",
|
|
74
|
+
"@gooddata/sdk-ui-vis-commons": "11.59.0",
|
|
75
|
+
"@gooddata/sdk-ui-theme-provider": "11.59.0",
|
|
76
|
+
"@gooddata/util": "11.59.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@microsoft/api-documenter": "7.30.
|
|
80
|
-
"@microsoft/api-extractor": "7.
|
|
81
|
-
"@testing-library/dom": "10.4.
|
|
79
|
+
"@microsoft/api-documenter": "7.30.16",
|
|
80
|
+
"@microsoft/api-extractor": "7.59.2",
|
|
81
|
+
"@testing-library/dom": "10.4.2",
|
|
82
82
|
"@testing-library/react": "16.3.0",
|
|
83
|
-
"@testing-library/user-event": "14.6.
|
|
83
|
+
"@testing-library/user-event": "14.6.7",
|
|
84
84
|
"@types/lodash-es": "4.17.12",
|
|
85
85
|
"@types/node": "24.12.0",
|
|
86
86
|
"@types/raf": "3.4.3",
|
|
@@ -115,12 +115,12 @@
|
|
|
115
115
|
"typescript": "7.0.2",
|
|
116
116
|
"vitest": "4.1.11",
|
|
117
117
|
"vitest-dom": "0.1.1",
|
|
118
|
-
"@gooddata/eslint-config": "11.59.0
|
|
119
|
-
"@gooddata/
|
|
120
|
-
"@gooddata/
|
|
121
|
-
"@gooddata/
|
|
122
|
-
"@gooddata/
|
|
123
|
-
"@gooddata/
|
|
118
|
+
"@gooddata/eslint-config": "11.59.0",
|
|
119
|
+
"@gooddata/reference-workspace": "11.59.0",
|
|
120
|
+
"@gooddata/i18n-toolkit": "11.59.0",
|
|
121
|
+
"@gooddata/oxlint-config": "11.59.0",
|
|
122
|
+
"@gooddata/sdk-backend-mockingbird": "11.59.0",
|
|
123
|
+
"@gooddata/stylelint-config": "11.59.0"
|
|
124
124
|
},
|
|
125
125
|
"peerDependencies": {
|
|
126
126
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
display: flex;
|
|
8
8
|
flex-direction: column;
|
|
9
9
|
align-items: flex-start;
|
|
10
|
-
gap:
|
|
10
|
+
gap: 20px;
|
|
11
11
|
}
|
|
12
12
|
.gdc-insight-not-saved-dialog .gd-ui-kit-button {
|
|
13
13
|
font-weight: 700;
|
|
14
14
|
}
|
|
15
15
|
.gdc-insight-not-saved-dialog ul {
|
|
16
16
|
padding: 0;
|
|
17
|
-
margin: -
|
|
17
|
+
margin: -10px 0 0 18px;
|
|
18
18
|
list-style: none;
|
|
19
19
|
}
|
|
20
20
|
.gdc-insight-not-saved-dialog ul li {
|
package/styles/css/main.css
CHANGED
|
@@ -33336,14 +33336,14 @@ body.gd-kda-dialog-opened .highcharts-tooltip-container {
|
|
|
33336
33336
|
display: flex;
|
|
33337
33337
|
flex-direction: column;
|
|
33338
33338
|
align-items: flex-start;
|
|
33339
|
-
gap:
|
|
33339
|
+
gap: 20px;
|
|
33340
33340
|
}
|
|
33341
33341
|
.gdc-insight-not-saved-dialog .gd-ui-kit-button {
|
|
33342
33342
|
font-weight: 700;
|
|
33343
33343
|
}
|
|
33344
33344
|
.gdc-insight-not-saved-dialog ul {
|
|
33345
33345
|
padding: 0;
|
|
33346
|
-
margin: -
|
|
33346
|
+
margin: -10px 0 0 18px;
|
|
33347
33347
|
list-style: none;
|
|
33348
33348
|
}
|
|
33349
33349
|
.gdc-insight-not-saved-dialog ul li {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
display: flex;
|
|
7
7
|
flex-direction: column;
|
|
8
8
|
align-items: flex-start;
|
|
9
|
-
gap:
|
|
9
|
+
gap: 20px;
|
|
10
10
|
|
|
11
11
|
.gd-ui-kit-button {
|
|
12
12
|
font-weight: 700;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
ul {
|
|
16
16
|
padding: 0;
|
|
17
|
-
margin: -
|
|
17
|
+
margin: -10px 0 0 18px;
|
|
18
18
|
list-style: none;
|
|
19
19
|
|
|
20
20
|
li {
|