@gooddata/sdk-ui-gen-ai 11.57.0 → 11.58.0-alpha.1
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 +2321 -1760
- package/esm/components/GenAIChatDialogConnected.d.ts +1 -2
- package/esm/components/GenAIChatDialogConnected.d.ts.map +1 -1
- package/esm/components/GenAIChatDialogConnected.js +3 -9
- package/esm/components/Input.d.ts.map +1 -1
- package/esm/components/Input.js +8 -18
- package/esm/components/Messages.d.ts.map +1 -1
- package/esm/components/Messages.js +4 -20
- package/esm/components/customized/LandingQuestion.d.ts.map +1 -1
- package/esm/components/customized/LandingQuestion.js +1 -5
- package/esm/components/hooks/useEndpointCheck.d.ts.map +1 -1
- package/esm/components/hooks/useEndpointCheck.js +2 -2
- package/esm/components/messages/MessageScroller.d.ts +2 -2
- package/esm/components/messages/MessageScroller.d.ts.map +1 -1
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts +4 -3
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts.map +1 -1
- package/esm/components/messages/components/SemanticSearchTreeView.js +4 -4
- package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.js +1 -1
- package/esm/components/messages/conversationContents/ConversationMultipartContent.js +1 -1
- package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationSearchContent.js +2 -8
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationVisualisation.js +63 -3
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.js +2 -2
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.js +1 -1
- package/esm/components/messages/useUserFeedback.d.ts +2 -2
- package/esm/components/messages/useUserFeedback.d.ts.map +1 -1
- package/esm/components/messages/useUserFeedback.js +17 -47
- package/esm/components/utils/modelCheckUtility.d.ts +1 -1
- package/esm/components/utils/modelCheckUtility.d.ts.map +1 -1
- package/esm/components/utils/modelCheckUtility.js +2 -2
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/internal.d.ts +1 -2
- package/esm/internal.d.ts.map +1 -1
- package/esm/internal.js +1 -2
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +0 -12
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/localization/bundles/en-US.localization-bundle.js +0 -12
- package/esm/model.d.ts +0 -209
- package/esm/model.d.ts.map +1 -1
- package/esm/model.js +0 -131
- package/esm/sdk-ui-gen-ai.d.ts +1 -159
- package/esm/store/localStorage.d.ts +0 -4
- package/esm/store/localStorage.d.ts.map +1 -1
- package/esm/store/localStorage.js +0 -41
- package/esm/store/messages/messagesSelectors.d.ts +1 -12
- package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
- package/esm/store/messages/messagesSelectors.js +1 -6
- package/esm/store/messages/messagesSlice.d.ts +7 -34
- package/esm/store/messages/messagesSlice.d.ts.map +1 -1
- package/esm/store/messages/messagesSlice.js +159 -408
- package/esm/store/queues/queue.newMessage.js +2 -4
- package/esm/store/sideEffects/conversationSession.js +1 -1
- package/esm/store/sideEffects/onChatOpenSync.d.ts +0 -1
- package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -1
- package/esm/store/sideEffects/onChatOpenSync.js +0 -6
- package/esm/store/sideEffects/onDefinitionReceivedTrigger.d.ts +2 -2
- package/esm/store/sideEffects/onDefinitionReceivedTrigger.d.ts.map +1 -1
- package/esm/store/sideEffects/onDefinitionReceivedTrigger.js +2 -8
- package/esm/store/sideEffects/onEvent.d.ts.map +1 -1
- package/esm/store/sideEffects/onEvent.js +26 -71
- package/esm/store/sideEffects/onThreadClear.d.ts +1 -7
- package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -1
- package/esm/store/sideEffects/onThreadClear.js +4 -26
- package/esm/store/sideEffects/onThreadLoad.d.ts +3 -26
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
- package/esm/store/sideEffects/onThreadLoad.js +3 -86
- package/esm/store/sideEffects/onUserFeedback.d.ts +4 -4
- package/esm/store/sideEffects/onUserFeedback.d.ts.map +1 -1
- package/esm/store/sideEffects/onUserFeedback.js +21 -44
- package/esm/store/sideEffects/onUserMessage.d.ts +3 -25
- package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -1
- package/esm/store/sideEffects/onUserMessage.js +7 -161
- package/esm/store/sideEffects/onVisualisationRender.d.ts +2 -8
- package/esm/store/sideEffects/onVisualisationRender.d.ts.map +1 -1
- package/esm/store/sideEffects/onVisualisationRender.js +1 -28
- package/esm/store/sideEffects/onVisualizationSave.d.ts +5 -6
- package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -1
- package/esm/store/sideEffects/onVisualizationSave.js +32 -240
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts +3 -4
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts.map +1 -1
- package/esm/store/sideEffects/onVisualizationSuccessSave.js +16 -49
- package/esm/store/sideEffects/utils.d.ts +0 -2
- package/esm/store/sideEffects/utils.d.ts.map +1 -1
- package/esm/store/sideEffects/utils.js +0 -14
- package/package.json +20 -19
- package/styles/css/main.css +12 -496
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +12 -496
- package/styles/css/messages.css.map +1 -1
- package/styles/scss/messages.scss +14 -375
- package/esm/components/messages/AssistantMessage.d.ts +0 -8
- package/esm/components/messages/AssistantMessage.d.ts.map +0 -1
- package/esm/components/messages/AssistantMessage.js +0 -35
- package/esm/components/messages/MessageContents.d.ts +0 -12
- package/esm/components/messages/MessageContents.d.ts.map +0 -1
- package/esm/components/messages/MessageContents.js +0 -49
- package/esm/components/messages/ReasoningDropdown.d.ts +0 -14
- package/esm/components/messages/ReasoningDropdown.d.ts.map +0 -1
- package/esm/components/messages/ReasoningDropdown.js +0 -42
- package/esm/components/messages/ReasoningMessage.d.ts +0 -9
- package/esm/components/messages/ReasoningMessage.d.ts.map +0 -1
- package/esm/components/messages/ReasoningMessage.js +0 -45
- package/esm/components/messages/UserMessage.d.ts +0 -8
- package/esm/components/messages/UserMessage.d.ts.map +0 -1
- package/esm/components/messages/UserMessage.js +0 -10
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts +0 -12
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts.map +0 -1
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.js +0 -36
- package/esm/components/messages/contents/ErrorContents.d.ts +0 -7
- package/esm/components/messages/contents/ErrorContents.d.ts.map +0 -1
- package/esm/components/messages/contents/ErrorContents.js +0 -8
- package/esm/components/messages/contents/ReasoningContents.d.ts +0 -6
- package/esm/components/messages/contents/ReasoningContents.d.ts.map +0 -1
- package/esm/components/messages/contents/ReasoningContents.js +0 -43
- package/esm/components/messages/contents/RoutingContents.d.ts +0 -8
- package/esm/components/messages/contents/RoutingContents.d.ts.map +0 -1
- package/esm/components/messages/contents/RoutingContents.js +0 -8
- package/esm/components/messages/contents/SearchContents.d.ts +0 -7
- package/esm/components/messages/contents/SearchContents.d.ts.map +0 -1
- package/esm/components/messages/contents/SearchContents.js +0 -15
- package/esm/components/messages/contents/SemanticSearchContents.d.ts +0 -8
- package/esm/components/messages/contents/SemanticSearchContents.d.ts.map +0 -1
- package/esm/components/messages/contents/SemanticSearchContents.js +0 -27
- package/esm/components/messages/contents/TextContents.d.ts +0 -7
- package/esm/components/messages/contents/TextContents.d.ts.map +0 -1
- package/esm/components/messages/contents/TextContents.js +0 -8
- package/esm/components/messages/contents/VisualizationContents.d.ts +0 -24
- package/esm/components/messages/contents/VisualizationContents.d.ts.map +0 -1
- package/esm/components/messages/contents/VisualizationContents.js +0 -532
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts +0 -13
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts.map +0 -1
- package/esm/components/messages/contents/VisualizationSaveDialog.js +0 -33
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts +0 -6
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts.map +0 -1
- package/esm/components/messages/contents/hooks/useVisualisationSaving.js +0 -17
- package/esm/components/messages/contents/useExecution.d.ts +0 -14
- package/esm/components/messages/contents/useExecution.d.ts.map +0 -1
- package/esm/components/messages/contents/useExecution.js +0 -131
- package/esm/components/messages/contents/useKdaDefinition.d.ts +0 -13
- package/esm/components/messages/contents/useKdaDefinition.d.ts.map +0 -1
- package/esm/components/messages/contents/useKdaDefinition.js +0 -140
- package/esm/components/messages/messageState.d.ts +0 -12
- package/esm/components/messages/messageState.d.ts.map +0 -1
- package/esm/components/messages/messageState.js +0 -21
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +0 -19
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +0 -1
- package/esm/store/sideEffects/converters/interactionsToMessages.js +0 -82
|
@@ -131,8 +131,7 @@ export interface IGenAIChatDialogConnectedProps {
|
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* A "connected" wrapper over {@link GenAIChatDialog} that centralizes the wiring every consumer otherwise
|
|
134
|
-
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context
|
|
135
|
-
* agentic-vs-classic message keyed on `enableAiAgenticConversations`), default link handling, and normalizing
|
|
134
|
+
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context), default link handling, and normalizing
|
|
136
135
|
* raw chat events into the {@link GenAIChatConnectedEvent} union.
|
|
137
136
|
*
|
|
138
137
|
* Consumers supply their own data sources (backend/workspace/permissions), open-state, telemetry sink and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { makeUserItem } from "../model.js";
|
|
5
5
|
import { setAmbientUserContextAction, setUserContextAction } from "../store/chatWindow/chatWindowSlice.js";
|
|
6
6
|
import { isChatAssistantMessageEvent, isChatClosedEvent, isChatCopyToClipboardEvent, isChatDefinitionReceivedEvent, isChatFeedbackErrorEvent, isChatFeedbackEvent, isChatOpenedEvent, isChatResetEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatUserMessageEvent, } from "../store/events.js";
|
|
7
7
|
import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "../store/messages/messagesSlice.js";
|
|
8
8
|
import { GenAIChatDialog } from "./GenAIChatDialog.js";
|
|
9
9
|
/**
|
|
10
10
|
* A "connected" wrapper over {@link GenAIChatDialog} that centralizes the wiring every consumer otherwise
|
|
11
|
-
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context
|
|
12
|
-
* agentic-vs-classic message keyed on `enableAiAgenticConversations`), default link handling, and normalizing
|
|
11
|
+
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context), default link handling, and normalizing
|
|
13
12
|
* raw chat events into the {@link GenAIChatConnectedEvent} union.
|
|
14
13
|
*
|
|
15
14
|
* Consumers supply their own data sources (backend/workspace/permissions), open-state, telemetry sink and
|
|
@@ -133,12 +132,7 @@ export function GenAIChatDialogConnected({ backend, workspace, locale, canManage
|
|
|
133
132
|
chatDispatcher(setUserContextAction({ userContext, replaceUserContext }));
|
|
134
133
|
// Ask question
|
|
135
134
|
if (askedQuestion) {
|
|
136
|
-
|
|
137
|
-
chatDispatcher(newMessageAction(makeUserItem({ type: "text", text: askedQuestion })));
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
chatDispatcher(newMessageAction(makeUserMessage([makeTextContents(askedQuestion, [])])));
|
|
141
|
-
}
|
|
135
|
+
chatDispatcher(newMessageAction(makeUserItem({ type: "text", text: askedQuestion })));
|
|
142
136
|
}
|
|
143
137
|
}, [
|
|
144
138
|
isOpen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAsD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAsD,MAAM,OAAO,CAAC;AAmCpG,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AAsKF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,aAAa,CAAkB,CAAC"}
|
package/esm/components/Input.js
CHANGED
|
@@ -5,10 +5,10 @@ import cx from "classnames";
|
|
|
5
5
|
import { FormattedMessage, defineMessages, useIntl } from "react-intl";
|
|
6
6
|
import { useDispatch, useSelector } from "react-redux";
|
|
7
7
|
import { SyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
|
|
8
|
-
import {
|
|
8
|
+
import { makeUserItem } from "../model.js";
|
|
9
9
|
import { agentSwitchingEnabledSelector, inputValueSelector, } from "../store/chatWindow/chatWindowSelectors.js";
|
|
10
10
|
import { setInputValueAction } from "../store/chatWindow/chatWindowSlice.js";
|
|
11
|
-
import { asyncProcessSelector, conversationMessagesSelector,
|
|
11
|
+
import { asyncProcessSelector, conversationMessagesSelector, conversationsLoadedSelector, refocusSelector, } from "../store/messages/messagesSelectors.js";
|
|
12
12
|
import { newMessageAction } from "../store/messages/messagesSlice.js";
|
|
13
13
|
import { isClarificationQuestionsItem } from "../utils.js";
|
|
14
14
|
import { collectReferences } from "./completion/references.js";
|
|
@@ -37,10 +37,8 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
|
|
|
37
37
|
const intl = useIntl();
|
|
38
38
|
const dispatch = useDispatch();
|
|
39
39
|
const { isBigScreen, isSmallScreen, isFullscreen } = useFullscreenCheck();
|
|
40
|
-
const conversation = useSelector((state) => conversationSelector(state));
|
|
41
40
|
const conversationsLoaded = useSelector((state) => conversationsLoadedSelector(state));
|
|
42
41
|
const items = useSelector((state) => conversationMessagesSelector(state));
|
|
43
|
-
const messages = useSelector((state) => messagesSelector(state));
|
|
44
42
|
const loading = useSelector((state) => asyncProcessSelector(state));
|
|
45
43
|
const agentSwitchingEnabled = useSelector((state) => agentSwitchingEnabledSelector(state));
|
|
46
44
|
const refocusKey = useSelector((state) => refocusSelector(state));
|
|
@@ -48,7 +46,7 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
|
|
|
48
46
|
const isEvaluating = loading === "evaluating";
|
|
49
47
|
const isLoading = loading === "loading" || loading === "clearing";
|
|
50
48
|
const isAssistantLoading = isLoading || loading === "restoring";
|
|
51
|
-
const isEmpty =
|
|
49
|
+
const isEmpty = !items?.length && !isLoading;
|
|
52
50
|
const value = useSelector((state) => inputValueSelector(state));
|
|
53
51
|
const [areAgentsBusy, setAreAgentsBusy] = useState(true);
|
|
54
52
|
const [hasNoAgents, setHasNoAgents] = useState(false);
|
|
@@ -64,19 +62,11 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
|
|
|
64
62
|
// When last item is a multipart message with clarifying questions, do not autofocus
|
|
65
63
|
const ref = useInputAutofocus(editorApi, autofocus && allowed, { isBusy, refocusKey });
|
|
66
64
|
const handleSubmit = () => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
objects: collectReferences(value, used.current),
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
item = makeUserMessage([
|
|
77
|
-
makeTextContents(escapeMarkdown(value), collectReferences(value, used.current)),
|
|
78
|
-
]);
|
|
79
|
-
}
|
|
65
|
+
const item = makeUserItem({
|
|
66
|
+
type: "text",
|
|
67
|
+
text: escapeMarkdown(value),
|
|
68
|
+
objects: collectReferences(value, used.current),
|
|
69
|
+
});
|
|
80
70
|
dispatch(newMessageAction(item));
|
|
81
71
|
dispatch(setInputValueAction({ value: "" }));
|
|
82
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AA8BA,KAAK,sBAAsB,GAAG;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,sBAAsB,2CA4ChE"}
|
|
@@ -4,52 +4,36 @@ import { useMemo } from "react";
|
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { useIntl } from "react-intl";
|
|
6
6
|
import { useSelector } from "react-redux";
|
|
7
|
-
import { isAssistantMessage, isUserMessage } from "../model.js";
|
|
8
7
|
import { agentSwitchingActiveSelector, catalogItemsSelector, } from "../store/chatWindow/chatWindowSelectors.js";
|
|
9
|
-
import { asyncProcessSelector, conversationMessagesSelector, conversationSelector,
|
|
8
|
+
import { asyncProcessSelector, conversationMessagesSelector, conversationSelector, } from "../store/messages/messagesSelectors.js";
|
|
10
9
|
import { ChatSkeleton } from "./ChatSkeleton.js";
|
|
11
10
|
import { parseReferences } from "./completion/references.js";
|
|
12
11
|
import { useCustomization } from "./CustomizationContext.js";
|
|
13
12
|
import { useFullscreenCheck } from "./hooks/useFullscreenCheck.js";
|
|
14
|
-
import { AssistantMessageComponent } from "./messages/AssistantMessage.js";
|
|
15
13
|
import { ItemsGroup } from "./messages/ItemsGroup.js";
|
|
16
14
|
import { useMessageScroller } from "./messages/MessageScroller.js";
|
|
17
15
|
import { SystemItemComponent } from "./messages/SystemItem.js";
|
|
18
16
|
import { ToolItemComponent } from "./messages/ToolItem.js";
|
|
19
|
-
import { UserMessageComponent } from "./messages/UserMessage.js";
|
|
20
17
|
import { groupMessages } from "./utils/groupUtility.js";
|
|
21
18
|
export function Messages({ initializing }) {
|
|
22
|
-
const messages = useSelector(messagesSelector);
|
|
23
19
|
const loading = useSelector(asyncProcessSelector);
|
|
24
20
|
const conversation = useSelector(conversationSelector);
|
|
25
21
|
const conversationMessages = useSelector(conversationMessagesSelector);
|
|
26
22
|
const catalogItems = useSelector(catalogItemsSelector);
|
|
27
23
|
const agentSwitchingActive = useSelector(agentSwitchingActiveSelector);
|
|
28
|
-
const { scrollerRef } = useMessageScroller(
|
|
24
|
+
const { scrollerRef } = useMessageScroller(conversationMessages);
|
|
29
25
|
const { LandingScreenComponent } = useCustomization();
|
|
30
26
|
const { isBigScreen, isSmallScreen, isFullscreen } = useFullscreenCheck();
|
|
31
27
|
const intl = useIntl();
|
|
32
28
|
const isLoading = loading === "loading" || loading === "clearing" || initializing;
|
|
33
|
-
const isEmpty =
|
|
29
|
+
const isEmpty = !conversationMessages.length && !isLoading;
|
|
34
30
|
return (_jsx("div", { className: cx("gd-gen-ai-chat__messages", {
|
|
35
31
|
"gd-gen-ai-chat__messages--fullscreen": isFullscreen,
|
|
36
32
|
"gd-gen-ai-chat__messages--big-screen": isBigScreen,
|
|
37
33
|
"gd-gen-ai-chat__messages--small-screen": isSmallScreen,
|
|
38
34
|
"gd-gen-ai-chat__messages--empty": isEmpty,
|
|
39
35
|
"gd-gen-ai-chat__messages--agent-switching": agentSwitchingActive,
|
|
40
|
-
}), ref: scrollerRef, children: _jsxs("div", { className: "gd-gen-ai-chat__messages__scroll", role: "log", "aria-relevant": isEmpty || isLoading ? undefined : "additions", "aria-label": intl.formatMessage({ id: "gd.gen-ai.messages.label" }), children: [isEmpty ? _jsx(LandingScreenComponent, {}) : null, isLoading ? _jsx(ChatSkeleton, {}) : null, isLoading ? null : (_jsx(
|
|
41
|
-
}
|
|
42
|
-
function ThreadMessages({ messages }) {
|
|
43
|
-
return (_jsx(_Fragment, { children: messages.map((message, index) => {
|
|
44
|
-
const isLast = index === messages.length - 1;
|
|
45
|
-
if (isUserMessage(message)) {
|
|
46
|
-
return _jsx(UserMessageComponent, { message: message, isLast: isLast }, message.localId);
|
|
47
|
-
}
|
|
48
|
-
if (isAssistantMessage(message)) {
|
|
49
|
-
return (_jsx(AssistantMessageComponent, { message: message, isLast: isLast }, message.localId));
|
|
50
|
-
}
|
|
51
|
-
return assertNever(message);
|
|
52
|
-
}) }));
|
|
36
|
+
}), ref: scrollerRef, children: _jsxs("div", { className: "gd-gen-ai-chat__messages__scroll", role: "log", "aria-relevant": isEmpty || isLoading ? undefined : "additions", "aria-label": intl.formatMessage({ id: "gd.gen-ai.messages.label" }), children: [isEmpty ? _jsx(LandingScreenComponent, {}) : null, isLoading ? _jsx(ChatSkeleton, {}) : null, isLoading ? null : (_jsx(ConversationMessages, { catalogItems: catalogItems, conversation: conversation, messages: conversationMessages }))] }) }));
|
|
53
37
|
}
|
|
54
38
|
function ConversationMessages({ messages, catalogItems }) {
|
|
55
39
|
const currentMessages = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LandingQuestion.d.ts","sourceRoot":"","sources":["../../../src/components/customized/LandingQuestion.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"LandingQuestion.d.ts","sourceRoot":"","sources":["../../../src/components/customized/LandingQuestion.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAUhF;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAgB,EAAE,EAAE,qBAAqB,2CAmDzG"}
|
|
@@ -4,7 +4,7 @@ import { useCallback } from "react";
|
|
|
4
4
|
import { defineMessage, useIntl } from "react-intl";
|
|
5
5
|
import { useDispatch, useSelector } from "react-redux";
|
|
6
6
|
import { UiButton, UiTooltip } from "@gooddata/sdk-ui-kit";
|
|
7
|
-
import { makeAssistantItem,
|
|
7
|
+
import { makeAssistantItem, makeUserItem } from "../../model.js";
|
|
8
8
|
import { agentSwitchingActiveSelector } from "../../store/chatWindow/chatWindowSelectors.js";
|
|
9
9
|
import { agentsAvailableSelector } from "../../store/messages/messagesSelectors.js";
|
|
10
10
|
import { setMessagesAction as setMessagesActionCreator } from "../../store/messages/messagesSlice.js";
|
|
@@ -27,10 +27,6 @@ export function DefaultLandingQuestion({ icon, question, answer, title = questio
|
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
setMessagesAction({
|
|
30
|
-
messages: [
|
|
31
|
-
makeUserMessage([makeTextContents(escapeMarkdown(question), [])]),
|
|
32
|
-
makeAssistantMessage([makeTextContents(escapeMarkdown(answer), [])], true),
|
|
33
|
-
],
|
|
34
30
|
items: [
|
|
35
31
|
makeUserItem({ type: "text", text: escapeMarkdown(question) }),
|
|
36
32
|
makeAssistantItem({ type: "text", text: escapeMarkdown(answer) }, "", true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEndpointCheck.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useEndpointCheck.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKjG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO;;;;;;
|
|
1
|
+
{"version":3,"file":"useEndpointCheck.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useEndpointCheck.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKjG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO;;;;;;EA6BtG"}
|
|
@@ -7,7 +7,7 @@ export function useEndpointCheck(settings, canFullControl) {
|
|
|
7
7
|
const [tries, retry] = useReducer((x) => x + 1, 0);
|
|
8
8
|
const promise = async () => {
|
|
9
9
|
if (!canFullControl) {
|
|
10
|
-
const unsupportedProvider = hasUnsupportedActiveProvider(settings?.activeLlmProvider
|
|
10
|
+
const unsupportedProvider = hasUnsupportedActiveProvider(settings?.activeLlmProvider);
|
|
11
11
|
return createInfo(0, unsupportedProvider, unsupportedProvider);
|
|
12
12
|
}
|
|
13
13
|
try {
|
|
@@ -30,7 +30,7 @@ export function useEndpointCheck(settings, canFullControl) {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
async function getProviderInfo(backend, settings) {
|
|
33
|
-
const unsupportedProvider = hasUnsupportedActiveProvider(settings?.activeLlmProvider
|
|
33
|
+
const unsupportedProvider = hasUnsupportedActiveProvider(settings?.activeLlmProvider);
|
|
34
34
|
if (unsupportedProvider) {
|
|
35
35
|
return createInfo(0, true, unsupportedProvider);
|
|
36
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IChatConversationLocalItem
|
|
1
|
+
import { type IChatConversationLocalItem } from "../../model.js";
|
|
2
2
|
/**
|
|
3
3
|
* Provides the ability to scroll to the bottom for assistant chat messages.
|
|
4
4
|
*
|
|
@@ -11,7 +11,7 @@ import { type IChatConversationLocalItem, type Message } from "../../model.js";
|
|
|
11
11
|
* identical `scrollHeight` before performing the scroll. This preserves the smooth UX
|
|
12
12
|
* while guaranteeing the viewport ends at the actual bottom once the async content settles.
|
|
13
13
|
*/
|
|
14
|
-
export declare function useMessageScroller(messages:
|
|
14
|
+
export declare function useMessageScroller(messages: IChatConversationLocalItem[]): {
|
|
15
15
|
scrollerRef: import("react").RefObject<HTMLDivElement | null>;
|
|
16
16
|
scrollToBottom: (options?: ScrollToOptions) => void;
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageScroller.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageScroller.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageScroller.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageScroller.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAIjE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,EAAE;;+BAYvD,eAAe;EAmDhC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ISemanticSearchRelationship, type ISemanticSearchResultItem } from "@gooddata/sdk-model";
|
|
2
2
|
type SemanticSearchTreeViewProps = {
|
|
3
3
|
workspace: string;
|
|
4
|
-
|
|
4
|
+
searchResults: ISemanticSearchResultItem[];
|
|
5
|
+
relationships: ISemanticSearchRelationship[];
|
|
5
6
|
maxHeight: number;
|
|
6
7
|
};
|
|
7
8
|
export declare function SemanticSearchTreeView(props: SemanticSearchTreeViewProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export declare function SemanticSearchTreeViewImpl({ workspace,
|
|
9
|
+
export declare function SemanticSearchTreeViewImpl({ workspace, searchResults, relationships, maxHeight, }: SemanticSearchTreeViewProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=SemanticSearchTreeView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticSearchTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/components/SemanticSearchTreeView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SemanticSearchTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/components/SemanticSearchTreeView.tsx"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAGjC,MAAM,qBAAqB,CAAC;AAa7B,KAAK,2BAA2B,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAC3C,aAAa,EAAE,2BAA2B,EAAE,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CAQxE;AAED,wBAAgB,0BAA0B,CAAC,EACvC,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,GACZ,EAAE,2BAA2B,kDA6E7B"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useId } from "react";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { useSelector } from "react-redux";
|
|
6
|
-
import { isSemanticSearchRelationship, isSemanticSearchResultItem } from "@gooddata/sdk-model";
|
|
6
|
+
import { isSemanticSearchRelationship, isSemanticSearchResultItem, } from "@gooddata/sdk-model";
|
|
7
7
|
import { useBackendStrict } from "@gooddata/sdk-ui";
|
|
8
8
|
import { LeveledSearchTreeView, PermissionsProvider, SemanticSearchIntlProvider, buildSemanticSearchTreeViewItems, } from "@gooddata/sdk-ui-semantic-search/internal";
|
|
9
9
|
import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
|
|
@@ -12,7 +12,7 @@ export function SemanticSearchTreeView(props) {
|
|
|
12
12
|
const intl = useIntl();
|
|
13
13
|
return (_jsx(SemanticSearchIntlProvider, { locale: intl.locale, children: _jsx(SemanticSearchTreeViewImpl, { ...props }) }));
|
|
14
14
|
}
|
|
15
|
-
export function SemanticSearchTreeViewImpl({ workspace,
|
|
15
|
+
export function SemanticSearchTreeViewImpl({ workspace, searchResults, relationships, maxHeight, }) {
|
|
16
16
|
const intl = useIntl();
|
|
17
17
|
const backend = useBackendStrict();
|
|
18
18
|
const { canFullControl, canManage, canAnalyze, linkHandler } = useConfig();
|
|
@@ -23,8 +23,8 @@ export function SemanticSearchTreeViewImpl({ workspace, content, maxHeight }) {
|
|
|
23
23
|
const items = buildSemanticSearchTreeViewItems({
|
|
24
24
|
intl,
|
|
25
25
|
workspace,
|
|
26
|
-
searchResults
|
|
27
|
-
relationships
|
|
26
|
+
searchResults,
|
|
27
|
+
relationships,
|
|
28
28
|
threshold: 0, // Keep all items for now
|
|
29
29
|
canEdit,
|
|
30
30
|
uiPathOptions: {
|
|
@@ -24,7 +24,7 @@ export function DrillSelectDropdownMenu({ drillState, onClose, onSelect }) {
|
|
|
24
24
|
return [
|
|
25
25
|
{
|
|
26
26
|
type: "static",
|
|
27
|
-
data: (_jsx("span", { className: "gd-gen-ai-
|
|
27
|
+
data: (_jsx("span", { className: "gd-gen-ai-chat__conversation__visualization__drill-header", children: _jsx(FormattedMessage, { id: "gd.gen-ai.drill_modal_picker.header.explain" }) })),
|
|
28
28
|
},
|
|
29
29
|
...items,
|
|
30
30
|
];
|
|
@@ -24,7 +24,7 @@ export function ConversationMultipartContent({ message, parts, references, isLas
|
|
|
24
24
|
return (_jsx(ConversationClarifyingQuestionsContent, { useMarkdown: true, message: message, questions: part.questions, objects: [...(part.objects ?? []), ...references], isLast: isLast }, index));
|
|
25
25
|
}
|
|
26
26
|
if (part.type === "visualization" && !whatIf) {
|
|
27
|
-
return part.visualization ? (_jsx(ConversationVisualizationContent, { message: message, part: part, visualization: part.visualization }, index)) : (_jsx("div", { className: "gd-gen-ai-
|
|
27
|
+
return part.visualization ? (_jsx(ConversationVisualizationContent, { message: message, part: part, visualization: part.visualization }, index)) : (_jsx("div", { className: "gd-gen-ai-chat__conversation__item__content--error", children: intl.formatMessage({ id: "gd.gen-ai.visualization.unavailable" }) }, index));
|
|
28
28
|
}
|
|
29
29
|
if (part.type === "searchResults") {
|
|
30
30
|
return (_jsx(ConversationSearchContent, { results: part.searchResults, relationships: part.relationships, keywords: part.keywords }, index));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationSearchContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationSearchContent.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAYvG,MAAM,MAAM,8BAA8B,GAAG;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,aAAa,EAAE,2BAA2B,EAAE,CAAC;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,SAAS,EACT,OAAO,EACP,aAAa,GAChB,EAAE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"ConversationSearchContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationSearchContent.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,2BAA2B,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAYvG,MAAM,MAAM,8BAA8B,GAAG;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,aAAa,EAAE,2BAA2B,EAAE,CAAC;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,SAAS,EACT,OAAO,EACP,aAAa,GAChB,EAAE,8BAA8B,kDAoChC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2024-2026 GoodData Corporation
|
|
3
|
-
import { Suspense, lazy
|
|
3
|
+
import { Suspense, lazy } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage } from "react-intl";
|
|
6
6
|
import { useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
@@ -13,17 +13,11 @@ export function ConversationSearchContent({ className, results, relationships, }
|
|
|
13
13
|
const classNames = cx("gd-gen-ai-chat__conversation__item__content", "gd-gen-ai-chat__conversation__item__content--search", className);
|
|
14
14
|
const workspace = useWorkspaceStrict();
|
|
15
15
|
const showSearchUI = results.length > 0;
|
|
16
|
-
const content = useMemo(() => ({
|
|
17
|
-
type: "semanticSearch",
|
|
18
|
-
text: "",
|
|
19
|
-
searchResults: results,
|
|
20
|
-
relationships: relationships,
|
|
21
|
-
}), [results, relationships]);
|
|
22
16
|
// No results, no search UI
|
|
23
17
|
if (!showSearchUI) {
|
|
24
18
|
return null;
|
|
25
19
|
}
|
|
26
|
-
return (_jsxs("div", { className: classNames, children: [_jsxs("div", { className: "gd-gen-ai-chat__conversation__item__content-search-header", children: [_jsx(UiIcon, { type: "search", size: 14, color: "complementary-6", backgroundSize: 26, backgroundColor: "complementary-2" }), _jsx(FormattedMessage, { id: "gd.gen-ai.semantic-search.title" })] }), _jsx(Suspense, { fallback: _jsx(SemanticSearchTreeViewFallback, {}), children: _jsx(SemanticSearchTreeView, { workspace: workspace,
|
|
20
|
+
return (_jsxs("div", { className: classNames, children: [_jsxs("div", { className: "gd-gen-ai-chat__conversation__item__content-search-header", children: [_jsx(UiIcon, { type: "search", size: 14, color: "complementary-6", backgroundSize: 26, backgroundColor: "complementary-2" }), _jsx(FormattedMessage, { id: "gd.gen-ai.semantic-search.title" })] }), _jsx(Suspense, { fallback: _jsx(SemanticSearchTreeViewFallback, {}), children: _jsx(SemanticSearchTreeView, { workspace: workspace, searchResults: results, relationships: relationships, maxHeight: SEMANTIC_SEARCH_TREE_VIEW_HEIGHT }) })] }));
|
|
27
21
|
}
|
|
28
22
|
/**
|
|
29
23
|
* The fallback component for the semantic search tree view ensures that the correct height is set while loading.
|
|
@@ -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,EAGH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EASnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAwB1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAkBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAqCpE,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,WAAW,CAAC;IACzB,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,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CAidhC"}
|
|
@@ -3,9 +3,10 @@ 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, } from "@gooddata/sdk-model";
|
|
6
|
+
import { attributeAlias, attributeLocalId, idRef, isAttribute, isMeasure, newAttribute, } from "@gooddata/sdk-model";
|
|
7
7
|
import { AreaChart, BarChart, BubbleChart, BulletChart, ColumnChart, ComboChart, DependencyWheelChart, DonutChart, FunnelChart, Headline, Heatmap, LineChart, PieChart, PyramidChart, RadarChart, Repeater, SankeyChart, ScatterPlot, Treemap, WaterfallChart, } from "@gooddata/sdk-ui-charts";
|
|
8
8
|
import { getKdaKeyDriverCombinations, } from "@gooddata/sdk-ui-dashboard";
|
|
9
|
+
import { GeoAreaChart, GeoPushpinChart } from "@gooddata/sdk-ui-geo";
|
|
9
10
|
import { PivotTable } from "@gooddata/sdk-ui-pivot";
|
|
10
11
|
import { PivotTableNext, useAgGridToken } from "@gooddata/sdk-ui-pivot/next";
|
|
11
12
|
import { ScopedThemeProvider, useTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
@@ -211,6 +212,18 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
|
|
|
211
212
|
execConfig,
|
|
212
213
|
separators,
|
|
213
214
|
});
|
|
215
|
+
case "local:pushpin":
|
|
216
|
+
return renderPushpinChart(intl.locale, visualization, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
|
|
217
|
+
drillableItems,
|
|
218
|
+
execConfig,
|
|
219
|
+
separators,
|
|
220
|
+
});
|
|
221
|
+
case "local:choropleth":
|
|
222
|
+
return renderChoroplethChart(intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
|
|
223
|
+
drillableItems,
|
|
224
|
+
execConfig,
|
|
225
|
+
separators,
|
|
226
|
+
});
|
|
214
227
|
case "local:repeater":
|
|
215
228
|
return renderRepeater(intl.locale, visualization, bucketsData, filters, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
|
|
216
229
|
drillableItems,
|
|
@@ -442,10 +455,49 @@ const renderRepeater = (locale, visualization, buckets, filters, colorPalette, o
|
|
|
442
455
|
inlineVisualizations: visualization.insight.properties["inlineVisualizations"],
|
|
443
456
|
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
|
|
444
457
|
};
|
|
458
|
+
const locationToLatitudeLongitude = (location, controls) => {
|
|
459
|
+
const latitudeId = controls?.["latitude"];
|
|
460
|
+
const longitudeId = controls?.["longitude"];
|
|
461
|
+
if (!location || !latitudeId || !longitudeId) {
|
|
462
|
+
return undefined;
|
|
463
|
+
}
|
|
464
|
+
const alias = attributeAlias(location);
|
|
465
|
+
return {
|
|
466
|
+
latitude: newAttribute(idRef(latitudeId, "displayForm"), (a) => a.localId(attributeLocalId(location)).alias(alias)),
|
|
467
|
+
longitude: newAttribute(idRef(longitudeId, "displayForm"), (a) => a.localId("longitude_df").alias(alias)),
|
|
468
|
+
};
|
|
469
|
+
};
|
|
470
|
+
const renderPushpinChart = (locale, visualization, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
|
|
471
|
+
const { location, size, color, segment } = buckets;
|
|
472
|
+
const geo = locationToLatitudeLongitude(location[0], visualization.insight.properties["controls"]);
|
|
473
|
+
if (!geo) {
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
476
|
+
return (_jsx("div", { style: { height: VIS_HEIGHT }, children: _jsx(GeoPushpinChart, { locale: locale, latitude: geo.latitude, longitude: geo.longitude, size: size[0], color: color[0], segmentBy: segment[0], filters: filters, sortBy: sortBy, config: {
|
|
477
|
+
...legendTooltipOptions,
|
|
478
|
+
colorPalette,
|
|
479
|
+
separators: props.separators,
|
|
480
|
+
cooperativeGestures: true,
|
|
481
|
+
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }) }));
|
|
482
|
+
};
|
|
483
|
+
const renderChoroplethChart = (locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
|
|
484
|
+
const { area, color, segment } = buckets;
|
|
485
|
+
if (!area[0]) {
|
|
486
|
+
return null;
|
|
487
|
+
}
|
|
488
|
+
return (_jsx("div", { style: { height: VIS_HEIGHT }, children: _jsx(GeoAreaChart, { locale: locale, area: area[0], color: color[0], segmentBy: segment[0], filters: filters, sortBy: sortBy, config: {
|
|
489
|
+
...legendTooltipOptions,
|
|
490
|
+
colorPalette,
|
|
491
|
+
separators: props.separators,
|
|
492
|
+
cooperativeGestures: true,
|
|
493
|
+
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }) }));
|
|
494
|
+
};
|
|
445
495
|
const renderTable = (locale, buckets, filters, sortBy, onError, onSuccess, onDrill, props) => {
|
|
446
496
|
const TableComponent = props.enableNewPivotTable ? PivotTableNext : PivotTable;
|
|
447
|
-
const { metrics, attribute, trend, view, stack, segment, columns } = buckets;
|
|
448
|
-
|
|
497
|
+
const { metrics, attribute, trend, view, stack, segment, columns, location, area, size, color } = buckets;
|
|
498
|
+
const geoMeasures = [...size, ...color].filter(isMeasure);
|
|
499
|
+
const geoAttributes = [...size, ...color].filter(isAttribute);
|
|
500
|
+
return (_jsx(TableComponent, { locale: locale, measures: [...metrics, ...geoMeasures], filters: filters, sortBy: sortBy, columns: [...columns.filter(isAttribute), ...stack, ...segment].filter(Boolean), rows: [...attribute, ...trend, ...view, ...location, ...area, ...geoAttributes].filter(Boolean), config: props.enableNewPivotTable
|
|
449
501
|
? { agGridToken: props.agGridToken, separators: props.separators }
|
|
450
502
|
: { separators: props.separators }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
|
|
451
503
|
};
|
|
@@ -471,6 +523,10 @@ function useBucketData(buckets) {
|
|
|
471
523
|
const segment = buckets.find((b) => b.localIdentifier === "segment")?.items.filter(isAttribute) ?? [];
|
|
472
524
|
const attribute_from = buckets.find((b) => b.localIdentifier === "attribute_from")?.items.filter(isAttribute) ?? [];
|
|
473
525
|
const attribute_to = buckets.find((b) => b.localIdentifier === "attribute_to")?.items.filter(isAttribute) ?? [];
|
|
526
|
+
const location = buckets.find((b) => b.localIdentifier === "location")?.items.filter(isAttribute) ?? [];
|
|
527
|
+
const area = buckets.find((b) => b.localIdentifier === "area")?.items.filter(isAttribute) ?? [];
|
|
528
|
+
const size = buckets.find((b) => b.localIdentifier === "size")?.items ?? [];
|
|
529
|
+
const color = buckets.find((b) => b.localIdentifier === "color")?.items ?? [];
|
|
474
530
|
return {
|
|
475
531
|
metrics,
|
|
476
532
|
secondary_metrics,
|
|
@@ -483,6 +539,10 @@ function useBucketData(buckets) {
|
|
|
483
539
|
columns,
|
|
484
540
|
attribute_from,
|
|
485
541
|
attribute_to,
|
|
542
|
+
location,
|
|
543
|
+
area,
|
|
544
|
+
size,
|
|
545
|
+
color,
|
|
486
546
|
};
|
|
487
547
|
}, [buckets]);
|
|
488
548
|
}
|
|
@@ -18,7 +18,7 @@ import { ConversationVisualisation, } from "./ConversationVisualisation.js";
|
|
|
18
18
|
import { SaveVisualizationDialog } from "./SaveVisualizationDialog.js";
|
|
19
19
|
import { createKdaDefinitionFromDrill, getDashboardAttributeFilter } from "./useKdaDefinition.js";
|
|
20
20
|
import { useSaveCheck } from "./useSaveCheck.js";
|
|
21
|
-
const MORE_MENU_BUTTON_ID = "gd-gen-ai-
|
|
21
|
+
const MORE_MENU_BUTTON_ID = "gd-gen-ai-chat__conversation__visualization__save__more-menu-button";
|
|
22
22
|
const overlayAlignPoints = [{ align: "br tr" }];
|
|
23
23
|
export function ConversationVisualizationContent({ message, part, scenario, visualization, className, }) {
|
|
24
24
|
const colorPalette = useSelector((state) => colorPaletteSelector(state));
|
|
@@ -199,7 +199,7 @@ function VisualizationErrorReport({ error }) {
|
|
|
199
199
|
if (!error) {
|
|
200
200
|
return null;
|
|
201
201
|
}
|
|
202
|
-
const className = cx("gd-gen-ai-
|
|
202
|
+
const className = cx("gd-gen-ai-chat__conversation__item__content--error");
|
|
203
203
|
return (_jsxs(_Fragment, { children: [isForecastNotReceived(error) ? (_jsx("div", { className: className, children: _jsx(FormattedMessage, { id: "gd.gen-ai.visualization.error.forecast", values: {
|
|
204
204
|
b: (chunk) => _jsx("strong", { children: chunk }),
|
|
205
205
|
error: error.message,
|
|
@@ -11,7 +11,7 @@ export function SaveVisualizationDialog({ type, message, part, visualization, on
|
|
|
11
11
|
const { onSubmit } = useVisualisationSaving(type, message, part, visualization, onClose);
|
|
12
12
|
return (_jsxs(ConfirmDialog, { onClose: onClose, onCancel: onClose, onSubmit: () => onSubmit(value), isPositive: true, autofocusOnOpen: false, submitOnEnterKey: true, headline: intl.formatMessage({ id: "gd.gen-ai.save-dialog.title" }), cancelButtonText: intl.formatMessage({ id: "gd.gen-ai.button.cancel" }), submitButtonText: type === "save"
|
|
13
13
|
? intl.formatMessage({ id: "gd.gen-ai.button.save" })
|
|
14
|
-
: intl.formatMessage({ id: "gd.gen-ai.button.save_and_explore" }), showProgressIndicator: part.saving?.started, isSubmitDisabled: part.saving?.started, isCancelDisabled: part.saving?.started, className: "gd-gen-ai-
|
|
14
|
+
: intl.formatMessage({ id: "gd.gen-ai.button.save_and_explore" }), showProgressIndicator: part.saving?.started, isSubmitDisabled: part.saving?.started, isCancelDisabled: part.saving?.started, className: "gd-gen-ai-chat__conversation__visualization__save-dialog", children: [_jsx(Typography, { tagName: "p", children: type === "save"
|
|
15
15
|
? intl.formatMessage({ id: "gd.gen-ai.save-dialog.description" })
|
|
16
16
|
: intl.formatMessage({ id: "gd.gen-ai.save-dialog.description.explore" }) }), _jsx(Input, { autofocus: true, label: intl.formatMessage({ id: "gd.gen-ai.save-dialog.label" }), labelPositionTop: true, placeholder: visualization.insight.title, value: value, disabled: part.saving?.started, onChange: (newValue) => setValue(String(newValue)) })] }));
|
|
17
17
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type IChatConversationLocalItem } from "../../model.js";
|
|
2
2
|
import { type setUserFeedback } from "../../store/messages/messagesSlice.js";
|
|
3
3
|
import { type IFeedbackData } from "./FeedbackPopup.js";
|
|
4
4
|
/**
|
|
@@ -12,7 +12,7 @@ export type SetUserFeedbackHandler = (payload: Parameters<typeof setUserFeedback
|
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
14
|
export interface IUseUserFeedbackProps {
|
|
15
|
-
message:
|
|
15
|
+
message: IChatConversationLocalItem;
|
|
16
16
|
setUserFeedback: SetUserFeedbackHandler;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserFeedback.d.ts","sourceRoot":"","sources":["../../../src/components/messages/useUserFeedback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUserFeedback.d.ts","sourceRoot":"","sources":["../../../src/components/messages/useUserFeedback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,0BAA0B,CAAC;IACpC,eAAe,EAAE,sBAAsB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,2BAA2B,EAAE,MAAM,IAAI,CAAC;IACxC,2BAA2B,EAAE,MAAM,IAAI,CAAC;IACxC,oBAAoB,EAAE,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,qBAAqB,GAAG,sBAAsB,CA+C3G"}
|