@gooddata/sdk-ui-gen-ai 11.43.0-alpha.1 → 11.43.0-alpha.2
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 +3 -3
- package/esm/components/messages/AgentChangeItem.js +1 -1
- package/esm/components/messages/ConversationItemContents.d.ts.map +1 -1
- package/esm/components/messages/ConversationItemContents.js +4 -1
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts +1 -1
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationVisualisation.js +4 -30
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts +11 -2
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts +11 -2
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/useExecution.d.ts +1 -1
- package/esm/components/messages/conversationContents/useExecution.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/utils/changeAnalysisDrills.d.ts +4 -0
- package/esm/components/messages/conversationContents/utils/changeAnalysisDrills.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/utils/changeAnalysisDrills.js +32 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +4 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/localization/bundles/en-US.localization-bundle.js +4 -0
- package/esm/store/messages/messagesSlice.js +2 -2
- package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -1
- package/esm/store/sideEffects/onVisualizationSave.js +6 -5
- package/esm/types.d.ts +1 -1
- package/esm/types.d.ts.map +1 -1
- package/esm/whatIf/whatIfMapping.js +1 -1
- package/package.json +20 -20
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-6-
|
|
10
|
+
Date generated: 2026-6-19
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 3fa6914b6550194ce069d8f1ab41a8a22d3bf58a
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -38519,4 +38519,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
38519
38519
|
--------------------------------------------------------------------------------
|
|
38520
38520
|
--------------------------------------------------------------------------------
|
|
38521
38521
|
|
|
38522
|
-
Report Generated by FOSSA on 2026-6-
|
|
38522
|
+
Report Generated by FOSSA on 2026-6-19
|
|
@@ -11,6 +11,6 @@ export function AgentChangeItem({ message }) {
|
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
return (_jsxs("div", { className: "gd-gen-ai-chat__messages__agent-change", children: [
|
|
14
|
-
_jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__line" }), _jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__label", children: _jsx(FormattedMessage, { id: "gd.gen-ai.agent.switched", values: { title: agent.title } }) }), _jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__line" })
|
|
14
|
+
_jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__line" }), _jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__label", "data-testid": "agent_change_label", children: _jsx(FormattedMessage, { id: "gd.gen-ai.agent.switched", values: { title: agent.title } }) }), _jsx("div", { className: "gd-gen-ai-chat__messages__agent-change__line" })
|
|
15
15
|
] }));
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,gBAAgB,CAAC;AAcxB,KAAK,6BAA6B,GAAG;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B,kDA6HzG"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2024-2026 GoodData Corporation
|
|
3
|
+
import { useIntl } from "react-intl";
|
|
2
4
|
import { loadWhatIfScenarios } from "../../whatIf/whatIfMapping.js";
|
|
3
5
|
import { ConversationAlertProposalContent } from "./conversationContents/ConversationAlertProposalContent.js";
|
|
4
6
|
import { ConversationErrorContent } from "./conversationContents/ConversationErrorContent.js";
|
|
@@ -11,6 +13,7 @@ import { ConversationToolResultContent } from "./conversationContents/Conversati
|
|
|
11
13
|
import { ConversationVisualizationContent } from "./conversationContents/ConversationVisualizationContent.js";
|
|
12
14
|
import { ConversationWhatIfContent } from "./conversationContents/ConversationWhatIfContent.js";
|
|
13
15
|
export function ConversationItemContents({ message, references, isLoading }) {
|
|
16
|
+
const intl = useIntl();
|
|
14
17
|
const content = message.content;
|
|
15
18
|
if (content.type === "error") {
|
|
16
19
|
return (_jsx(ConversationErrorContent, { useMarkdown: true, message: content.message, traceId: content.traceId, code: content.code, reason: content.reason, isLoading: isLoading }));
|
|
@@ -31,7 +34,7 @@ export function ConversationItemContents({ message, references, isLoading }) {
|
|
|
31
34
|
return (_jsx(ConversationAlertProposalContent, { message: message, part: part, alertProposal: part.alertProposal, objects: [...(part.objects ?? []), ...references] }, index));
|
|
32
35
|
}
|
|
33
36
|
if (part.type === "visualization" && !whatIf) {
|
|
34
|
-
return (_jsx(ConversationVisualizationContent, { message: message, part: part, visualization: part.visualization }, index));
|
|
37
|
+
return part.visualization ? (_jsx(ConversationVisualizationContent, { message: message, part: part, visualization: part.visualization }, index)) : (_jsx("div", { className: "gd-gen-ai-chat__messages__content--error", children: intl.formatMessage({ id: "gd.gen-ai.visualization.unavailable" }) }, index));
|
|
35
38
|
}
|
|
36
39
|
if (part.type === "searchResults") {
|
|
37
40
|
return (_jsx(ConversationSearchContent, { results: part.searchResults, relationships: part.relationships, keywords: part.keywords }, index));
|
|
@@ -5,7 +5,7 @@ import { type IDashboardKeyDriverCombinationItem } from "@gooddata/sdk-ui-dashbo
|
|
|
5
5
|
import { type IChatConversationLocalItem } from "../../../model.js";
|
|
6
6
|
export type ConversationVisualisationProps = {
|
|
7
7
|
message: IChatConversationLocalItem;
|
|
8
|
-
visualization: IChatConversationVisualisationContent["visualization"]
|
|
8
|
+
visualization: NonNullable<IChatConversationVisualisationContent["visualization"]>;
|
|
9
9
|
colorPalette?: IColorPalette;
|
|
10
10
|
execConfig?: IExecutionConfig;
|
|
11
11
|
agGridToken?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,
|
|
1
|
+
{"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAOxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAwBpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,mBAA0B,EAC1B,4BAAoC,EACvC,EAAE,8BAA8B,2CAqPhC"}
|
|
@@ -3,7 +3,7 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { useDispatch } from "react-redux";
|
|
6
|
-
import { isAttribute, isMeasure,
|
|
6
|
+
import { isAttribute, isMeasure, } from "@gooddata/sdk-model";
|
|
7
7
|
import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot } from "@gooddata/sdk-ui-charts";
|
|
8
8
|
import { getKdaKeyDriverCombinations, } from "@gooddata/sdk-ui-dashboard";
|
|
9
9
|
import { PivotTable } from "@gooddata/sdk-ui-pivot";
|
|
@@ -15,6 +15,7 @@ import { mapVisualizationForecastToBackendConfig, mapVisualizationForecastToChar
|
|
|
15
15
|
import { saveVisualisationRenderStatusAction, visualizationErrorAction, } from "../../../store/messages/messagesSlice.js";
|
|
16
16
|
import { getHeadlineComparison } from "../../../utils.js";
|
|
17
17
|
import { useExecution } from "./useExecution.js";
|
|
18
|
+
import { changeAnalysisDrills } from "./utils/changeAnalysisDrills.js";
|
|
18
19
|
const VIS_HEIGHT = 250;
|
|
19
20
|
const visualizationTooltipOptions = {
|
|
20
21
|
tooltip: {
|
|
@@ -34,27 +35,8 @@ export function ConversationVisualisation({ message, colorPalette, visualization
|
|
|
34
35
|
const { filters, sorts, buckets } = useExecution(visualization);
|
|
35
36
|
const bucketsData = useBucketData(buckets);
|
|
36
37
|
const drillableItems = useMemo(() => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return visualization.insight.buckets
|
|
40
|
-
.map((bucket) => {
|
|
41
|
-
return bucket.items.map(headerPredicate);
|
|
42
|
-
})
|
|
43
|
-
.flat();
|
|
44
|
-
}
|
|
45
|
-
return visualization.insight.buckets
|
|
46
|
-
.map((bucket) => {
|
|
47
|
-
return bucket.items.map((attr) => {
|
|
48
|
-
if (isAttribute(attr)) {
|
|
49
|
-
return attr.attribute.displayForm;
|
|
50
|
-
}
|
|
51
|
-
return undefined;
|
|
52
|
-
});
|
|
53
|
-
})
|
|
54
|
-
.flat()
|
|
55
|
-
.filter(Boolean);
|
|
56
|
-
}
|
|
57
|
-
return undefined;
|
|
38
|
+
const items = [...changeAnalysisDrills(visualization, enableDrilling, enableChangeAnalysis)];
|
|
39
|
+
return items.length ? items : undefined;
|
|
58
40
|
}, [enableChangeAnalysis, visualization, enableDrilling]);
|
|
59
41
|
const handleSdkError = useCallback((error) => {
|
|
60
42
|
if (!visualization) {
|
|
@@ -264,14 +246,6 @@ const renderHeadline = (locale, theme, buckets, filters, colorPalette, onError,
|
|
|
264
246
|
colorPalette,
|
|
265
247
|
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }) }));
|
|
266
248
|
};
|
|
267
|
-
function headerPredicate(m) {
|
|
268
|
-
return (header) => {
|
|
269
|
-
if (isMeasureDescriptor(header) && isMeasure(m)) {
|
|
270
|
-
return header.measureHeaderItem.localIdentifier === m.measure.localIdentifier;
|
|
271
|
-
}
|
|
272
|
-
return false;
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
249
|
function useBucketData(buckets) {
|
|
276
250
|
return useMemo(() => {
|
|
277
251
|
const metrics = buckets.find((b) => b.localIdentifier === "measures")?.items.filter(isMeasure) ?? [];
|
|
@@ -7,7 +7,7 @@ export type ConversationVisualizationContentProps = {
|
|
|
7
7
|
message: IChatConversationLocalItem;
|
|
8
8
|
part: IChatConversationMultipartLocalPart;
|
|
9
9
|
scenario?: IWhatIfRenderableScenario;
|
|
10
|
-
visualization: IChatConversationVisualisationContent["visualization"]
|
|
10
|
+
visualization: NonNullable<IChatConversationVisualisationContent["visualization"]>;
|
|
11
11
|
colorPalette?: IColorPalette;
|
|
12
12
|
className?: string;
|
|
13
13
|
agGridToken?: string;
|
|
@@ -26,7 +26,16 @@ export declare const ConversationVisualizationContent: import("react-redux").Con
|
|
|
26
26
|
message: IChatConversationLocalItem;
|
|
27
27
|
part: IChatConversationMultipartLocalPart;
|
|
28
28
|
scenario?: IWhatIfRenderableScenario | undefined;
|
|
29
|
-
visualization: import("@gooddata/sdk-model").
|
|
29
|
+
visualization: import("@gooddata/sdk-model").IInsightDefinition & {
|
|
30
|
+
insight: import("@gooddata/sdk-model").IAuditableDates & import("@gooddata/sdk-model").IAuditableUsers & {
|
|
31
|
+
identifier: string;
|
|
32
|
+
uri: string;
|
|
33
|
+
ref: import("@gooddata/sdk-model").ObjRef;
|
|
34
|
+
isLocked?: boolean | undefined;
|
|
35
|
+
isHidden?: boolean | undefined;
|
|
36
|
+
certification?: import("@gooddata/sdk-model").IObjectCertification | undefined;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
30
39
|
className?: string | undefined;
|
|
31
40
|
}>;
|
|
32
41
|
export {};
|
package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationVisualizationContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualizationContent.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,aAAa,EAAgD,MAAM,qBAAqB,CAAC;AAwBvG,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAM9G,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAwBlF,MAAM,MAAM,qCAAqC,GAAG;IAChD,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,aAAa,EAAE,qCAAqC,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationVisualizationContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualizationContent.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,aAAa,EAAgD,MAAM,qBAAqB,CAAC;AAwBvG,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAM9G,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAwBlF,MAAM,MAAM,qCAAqC,GAAG;IAChD,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,0BAA0B,CAAC;IACzD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,iBAAS,oCAAoC,CAAC,EAC1C,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC/B,EAAE,qCAAqC,2CAmGvC;AAmlBD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;EAGN,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { saveVisualizationAction, savedVisualizationAction } from "../../../stor
|
|
|
4
4
|
export type SaveVisualizationDialogProps = {
|
|
5
5
|
message: IChatConversationLocalItem;
|
|
6
6
|
part: IChatConversationMultipartLocalPart;
|
|
7
|
-
visualization: IChatConversationVisualisationContent["visualization"]
|
|
7
|
+
visualization: NonNullable<IChatConversationVisualisationContent["visualization"]>;
|
|
8
8
|
type: "save" | "explore";
|
|
9
9
|
onClose: () => void;
|
|
10
10
|
};
|
|
@@ -18,7 +18,16 @@ export declare const SaveVisualizationDialog: import("react-redux").ConnectedCom
|
|
|
18
18
|
store?: import("redux").Store<any, import("redux").UnknownAction, unknown> | undefined;
|
|
19
19
|
message: IChatConversationLocalItem;
|
|
20
20
|
part: IChatConversationMultipartLocalPart;
|
|
21
|
-
visualization: import("@gooddata/sdk-model").
|
|
21
|
+
visualization: import("@gooddata/sdk-model").IInsightDefinition & {
|
|
22
|
+
insight: import("@gooddata/sdk-model").IAuditableDates & import("@gooddata/sdk-model").IAuditableUsers & {
|
|
23
|
+
identifier: string;
|
|
24
|
+
uri: string;
|
|
25
|
+
ref: import("@gooddata/sdk-model").ObjRef;
|
|
26
|
+
isLocked?: boolean | undefined;
|
|
27
|
+
isHidden?: boolean | undefined;
|
|
28
|
+
certification?: import("@gooddata/sdk-model").IObjectCertification | undefined;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
22
31
|
type: "explore" | "save";
|
|
23
32
|
onClose: () => void;
|
|
24
33
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveVisualizationDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/SaveVisualizationDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAGvF,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAE7G,MAAM,MAAM,4BAA4B,GAAG;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,aAAa,EAAE,qCAAqC,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SaveVisualizationDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/SaveVisualizationDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAGvF,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAE7G,MAAM,MAAM,4BAA4B,GAAG;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IAC/C,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;CAC7D,CAAC;AAEF,iBAAS,2BAA2B,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,OAAO,EACP,uBAAuB,EACvB,wBAAwB,EAC3B,EAAE,4BAA4B,GAAG,oCAAoC,2CAkDrE;AA8DD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;EAAiE,CAAC"}
|
|
@@ -4,5 +4,5 @@ export interface IExecution {
|
|
|
4
4
|
filters: IFilter[];
|
|
5
5
|
sorts: ISortItem[];
|
|
6
6
|
}
|
|
7
|
-
export declare const useExecution: (visualisation?: import("@gooddata/sdk-model").IInsight | undefined) => IExecution;
|
|
7
|
+
export declare const useExecution: (visualisation?: import("@gooddata/sdk-model").IInsight | null | undefined) => IExecution;
|
|
8
8
|
//# sourceMappingURL=useExecution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/useExecution.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/useExecution.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,2FAiBxB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type IChatConversationVisualisationContent } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IHeaderPredicate } from "@gooddata/sdk-ui";
|
|
3
|
+
export declare function changeAnalysisDrills(visualization: IChatConversationVisualisationContent["visualization"] | undefined, enableDrilling: boolean, enableChangeAnalysis: boolean): IHeaderPredicate[];
|
|
4
|
+
//# sourceMappingURL=changeAnalysisDrills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeAnalysisDrills.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/conversationContents/utils/changeAnalysisDrills.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,qCAAqC,CAAC,eAAe,CAAC,GAAG,SAAS,EACjF,cAAc,EAAE,OAAO,EACvB,oBAAoB,EAAE,OAAO,sBAuBhC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { isMeasure, isMeasureDescriptor } from "@gooddata/sdk-model";
|
|
3
|
+
export function changeAnalysisDrills(visualization, enableDrilling, enableChangeAnalysis) {
|
|
4
|
+
if (visualization?.insight && enableChangeAnalysis && enableDrilling) {
|
|
5
|
+
const disableKeyDriveAnalysisOn = (visualization.insight.properties?.["controls"]
|
|
6
|
+
?.disableKeyDriveAnalysisOn ?? {});
|
|
7
|
+
return visualization.insight.buckets
|
|
8
|
+
.flatMap((bucket) => {
|
|
9
|
+
return bucket.items.map((item) => {
|
|
10
|
+
if (isMeasure(item)) {
|
|
11
|
+
//NOTE: If KDA is disabled for this measure
|
|
12
|
+
// do not return a drill predicate to disable drilling
|
|
13
|
+
if (disableKeyDriveAnalysisOn[item.measure.localIdentifier]) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return headerPredicate(item);
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
});
|
|
20
|
+
})
|
|
21
|
+
.filter((p) => !!p);
|
|
22
|
+
}
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
function headerPredicate(m) {
|
|
26
|
+
return (header) => {
|
|
27
|
+
if (isMeasureDescriptor(header) && isMeasure(m)) {
|
|
28
|
+
return header.measureHeaderItem.localIdentifier === m.measure.localIdentifier;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -95,6 +95,10 @@ export declare const en_US: {
|
|
|
95
95
|
text: string;
|
|
96
96
|
crowdinContext: string;
|
|
97
97
|
};
|
|
98
|
+
"gd.gen-ai.visualization.unavailable": {
|
|
99
|
+
text: string;
|
|
100
|
+
crowdinContext: string;
|
|
101
|
+
};
|
|
98
102
|
"gd.gen-ai.permission-error": {
|
|
99
103
|
text: string;
|
|
100
104
|
crowdinContext: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqsBjB,CAAC"}
|
|
@@ -97,6 +97,10 @@ export const en_US = {
|
|
|
97
97
|
"text": "<b>Data too large.</b> Ask for reduce a data by applying filters.",
|
|
98
98
|
"crowdinContext": "Error message when data is too large"
|
|
99
99
|
},
|
|
100
|
+
"gd.gen-ai.visualization.unavailable": {
|
|
101
|
+
"text": "Visualization could not be displayed.",
|
|
102
|
+
"crowdinContext": "Message shown in place of a chart when the requested visualization is not available to display"
|
|
103
|
+
},
|
|
100
104
|
"gd.gen-ai.permission-error": {
|
|
101
105
|
"text": "Insufficient permissions",
|
|
102
106
|
"crowdinContext": "Error message when user does not have sufficient permissions to access the chatbot"
|
|
@@ -629,7 +629,7 @@ const messagesSlice = createSlice({
|
|
|
629
629
|
const visualization = assistantMessage.content.parts
|
|
630
630
|
.filter((filter) => filter.type === "visualization")
|
|
631
631
|
.find((content) => content.visualization?.insight.identifier === payload.visualizationId);
|
|
632
|
-
if (visualization) {
|
|
632
|
+
if (visualization?.visualization) {
|
|
633
633
|
visualization.visualization.insight.title = payload.visualizationTitle;
|
|
634
634
|
visualization.saving = {
|
|
635
635
|
started: true,
|
|
@@ -698,7 +698,7 @@ const messagesSlice = createSlice({
|
|
|
698
698
|
const visualization = assistantMessage.content.parts
|
|
699
699
|
.filter((filter) => filter.type === "visualization")
|
|
700
700
|
.find((content) => content.visualization?.insight.identifier === payload.visualizationId);
|
|
701
|
-
if (visualization) {
|
|
701
|
+
if (visualization?.visualization) {
|
|
702
702
|
visualization.saving = {
|
|
703
703
|
started: true,
|
|
704
704
|
completed: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onVisualizationSave.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVisualizationSave.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAGH,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAG1B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAEH,KAAK,0BAA0B,EAE/B,KAAK,OAAO,EAEf,MAAM,gBAAgB,CAAC;AASxB,wBAAiB,mBAAmB,CAAC,EACjC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"onVisualizationSave.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVisualizationSave.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAGH,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAG1B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAEH,KAAK,0BAA0B,EAE/B,KAAK,OAAO,EAEf,MAAM,gBAAgB,CAAC;AASxB,wBAAiB,mBAAmB,CAAC,EACjC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA8GD;AAoGD,eAAO,MAAM,cAAc,+FA0C1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+FAoC5B,CAAC"}
|
|
@@ -24,14 +24,15 @@ export function* onVisualizationSave({ payload, }) {
|
|
|
24
24
|
}
|
|
25
25
|
const visualizationContent = assistantMessage.content.parts
|
|
26
26
|
.filter((filter) => filter.type === "visualization")
|
|
27
|
-
.find((content) => content.visualization
|
|
28
|
-
if (!visualizationContent) {
|
|
27
|
+
.find((content) => content.visualization?.insight.identifier === payload.visualizationId);
|
|
28
|
+
if (!visualizationContent?.visualization) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
+
const sourceVisualization = visualizationContent.visualization;
|
|
31
32
|
const savedVisualization = yield call(backend.workspace(workspace).insights().createInsight, {
|
|
32
|
-
...
|
|
33
|
+
...sourceVisualization,
|
|
33
34
|
insight: {
|
|
34
|
-
...
|
|
35
|
+
...sourceVisualization.insight,
|
|
35
36
|
title: payload.visualizationTitle,
|
|
36
37
|
},
|
|
37
38
|
});
|
|
@@ -40,7 +41,7 @@ export function* onVisualizationSave({ payload, }) {
|
|
|
40
41
|
.genAI()
|
|
41
42
|
.getChatConversations()
|
|
42
43
|
.getConversationThread(conversation.id);
|
|
43
|
-
yield call(resave.resaveVisualisation.bind(resave),
|
|
44
|
+
yield call(resave.resaveVisualisation.bind(resave), sourceVisualization.insight.identifier, savedVisualization.insight.identifier);
|
|
44
45
|
yield put(saveVisualizationSuccessAction({
|
|
45
46
|
visualizationId: payload.visualizationId,
|
|
46
47
|
assistantMessageId: payload.assistantMessageId,
|
package/esm/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type IChatConversationVisualisationContent } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import { type IGenAIVisualization } from "@gooddata/sdk-model";
|
|
3
3
|
import { type IChatConversationLocalItem } from "./model.js";
|
|
4
|
-
export type Config = IGenAIVisualization["config"] | IChatConversationVisualisationContent["visualization"]["insight"]["properties"]["controls"];
|
|
4
|
+
export type Config = IGenAIVisualization["config"] | NonNullable<IChatConversationVisualisationContent["visualization"]>["insight"]["properties"]["controls"];
|
|
5
5
|
export type StoredConversation = {
|
|
6
6
|
/**
|
|
7
7
|
* A record containing chat conversation items indexed by string keys.
|
package/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,MAAM,GACZ,mBAAmB,CAAC,QAAQ,CAAC,GAC7B,qCAAqC,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,MAAM,GACZ,mBAAmB,CAAC,QAAQ,CAAC,GAC7B,WAAW,CACP,qCAAqC,CAAC,eAAe,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAClD;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;IACnE;;;OAGG;IACH,kBAAkB,CAAC,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;CACL,CAAC"}
|
|
@@ -57,7 +57,7 @@ export function loadWhatIfScenarios(content) {
|
|
|
57
57
|
}
|
|
58
58
|
// Search for visualizations
|
|
59
59
|
const visualisation = content.parts?.find((p) => p.type === "visualization");
|
|
60
|
-
if (!visualisation) {
|
|
60
|
+
if (!visualisation?.visualization) {
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
63
63
|
const scenarios = [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-gen-ai",
|
|
3
|
-
"version": "11.43.0-alpha.
|
|
3
|
+
"version": "11.43.0-alpha.2",
|
|
4
4
|
"description": "GoodData GenAI SDK",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -56,18 +56,18 @@
|
|
|
56
56
|
"reselect": "5.1.1",
|
|
57
57
|
"tslib": "2.8.1",
|
|
58
58
|
"uuid": "11.1.1",
|
|
59
|
-
"@gooddata/
|
|
60
|
-
"@gooddata/
|
|
61
|
-
"@gooddata/sdk-
|
|
62
|
-
"@gooddata/sdk-ui": "11.43.0-alpha.
|
|
63
|
-
"@gooddata/sdk-
|
|
64
|
-
"@gooddata/sdk-ui-dashboard": "11.43.0-alpha.
|
|
65
|
-
"@gooddata/sdk-ui-filters": "11.43.0-alpha.
|
|
66
|
-
"@gooddata/sdk-ui-
|
|
67
|
-
"@gooddata/sdk-ui-
|
|
68
|
-
"@gooddata/sdk-ui-theme-provider": "11.43.0-alpha.
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
59
|
+
"@gooddata/api-client-tiger": "11.43.0-alpha.2",
|
|
60
|
+
"@gooddata/sdk-ui": "11.43.0-alpha.2",
|
|
61
|
+
"@gooddata/sdk-backend-spi": "11.43.0-alpha.2",
|
|
62
|
+
"@gooddata/sdk-ui-charts": "11.43.0-alpha.2",
|
|
63
|
+
"@gooddata/sdk-model": "11.43.0-alpha.2",
|
|
64
|
+
"@gooddata/sdk-ui-dashboard": "11.43.0-alpha.2",
|
|
65
|
+
"@gooddata/sdk-ui-filters": "11.43.0-alpha.2",
|
|
66
|
+
"@gooddata/sdk-ui-kit": "11.43.0-alpha.2",
|
|
67
|
+
"@gooddata/sdk-ui-semantic-search": "11.43.0-alpha.2",
|
|
68
|
+
"@gooddata/sdk-ui-theme-provider": "11.43.0-alpha.2",
|
|
69
|
+
"@gooddata/sdk-ui-pivot": "11.43.0-alpha.2",
|
|
70
|
+
"@gooddata/util": "11.43.0-alpha.2"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -110,13 +110,13 @@
|
|
|
110
110
|
"typescript": "5.9.3",
|
|
111
111
|
"vitest": "4.1.8",
|
|
112
112
|
"vitest-dom": "0.1.1",
|
|
113
|
-
"@gooddata/
|
|
114
|
-
"@gooddata/
|
|
115
|
-
"@gooddata/
|
|
116
|
-
"@gooddata/
|
|
117
|
-
"@gooddata/
|
|
118
|
-
"@gooddata/stylelint-config": "11.43.0-alpha.
|
|
119
|
-
"@gooddata/
|
|
113
|
+
"@gooddata/eslint-config": "11.43.0-alpha.2",
|
|
114
|
+
"@gooddata/i18n-toolkit": "11.43.0-alpha.2",
|
|
115
|
+
"@gooddata/reference-workspace": "11.43.0-alpha.2",
|
|
116
|
+
"@gooddata/oxlint-config": "11.43.0-alpha.2",
|
|
117
|
+
"@gooddata/sdk-ui-theme-provider": "11.43.0-alpha.2",
|
|
118
|
+
"@gooddata/stylelint-config": "11.43.0-alpha.2",
|
|
119
|
+
"@gooddata/sdk-backend-mockingbird": "11.43.0-alpha.2"
|
|
120
120
|
},
|
|
121
121
|
"peerDependencies": {
|
|
122
122
|
"react": "^18.0.0 || ^19.0.0",
|