@gooddata/sdk-ui-gen-ai 10.13.0-alpha.2 → 10.13.0-alpha.20
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/EmptyState.d.ts +3 -3
- package/esm/components/EmptyState.d.ts.map +1 -1
- package/esm/components/EmptyState.js +10 -8
- package/esm/components/EmptyState.js.map +1 -1
- package/esm/components/ErrorBoundary.d.ts +11 -3
- package/esm/components/ErrorBoundary.d.ts.map +1 -1
- package/esm/components/ErrorBoundary.js +26 -7
- package/esm/components/ErrorBoundary.js.map +1 -1
- package/esm/components/GenAIChatOverlay.d.ts +3 -3
- package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
- package/esm/components/GenAIChatOverlay.js +4 -4
- package/esm/components/GenAIChatOverlay.js.map +1 -1
- package/esm/components/GenAIChatWrapper.d.ts +7 -5
- package/esm/components/GenAIChatWrapper.d.ts.map +1 -1
- package/esm/components/GenAIChatWrapper.js +14 -1
- package/esm/components/GenAIChatWrapper.js.map +1 -1
- package/esm/components/GlobalError.d.ts +6 -15
- package/esm/components/GlobalError.d.ts.map +1 -1
- package/esm/components/GlobalError.js +12 -18
- package/esm/components/GlobalError.js.map +1 -1
- package/esm/components/Input.d.ts +2 -1
- package/esm/components/Input.d.ts.map +1 -1
- package/esm/components/Input.js +15 -13
- package/esm/components/Input.js.map +1 -1
- package/esm/components/Messages.d.ts +3 -3
- package/esm/components/Messages.d.ts.map +1 -1
- package/esm/components/Messages.js +21 -33
- package/esm/components/Messages.js.map +1 -1
- package/esm/components/messages/AgentIcon.d.ts.map +1 -1
- package/esm/components/messages/AgentIcon.js +10 -4
- package/esm/components/messages/AgentIcon.js.map +1 -1
- package/esm/components/messages/AssistantMessage.d.ts +8 -0
- package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
- package/esm/components/messages/AssistantMessage.js +14 -0
- package/esm/components/messages/AssistantMessage.js.map +1 -0
- package/esm/components/messages/MessageContents.d.ts +11 -0
- package/esm/components/messages/MessageContents.d.ts.map +1 -0
- package/esm/components/messages/MessageContents.js +37 -0
- package/esm/components/messages/MessageContents.js.map +1 -0
- package/esm/components/messages/UserMessage.d.ts +8 -0
- package/esm/components/messages/UserMessage.d.ts.map +1 -0
- package/esm/components/messages/UserMessage.js +10 -0
- package/esm/components/messages/UserMessage.js.map +1 -0
- package/esm/components/messages/contents/ErrorContents.d.ts +8 -0
- package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
- package/esm/components/messages/contents/ErrorContents.js +10 -0
- package/esm/components/messages/contents/ErrorContents.js.map +1 -0
- package/esm/components/messages/contents/Markdown.d.ts +8 -0
- package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
- package/esm/components/messages/contents/Markdown.js +18 -0
- package/esm/components/messages/contents/Markdown.js.map +1 -0
- package/esm/components/messages/contents/RoutingContents.d.ts +8 -0
- package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
- package/esm/components/messages/contents/RoutingContents.js +10 -0
- package/esm/components/messages/contents/RoutingContents.js.map +1 -0
- package/esm/components/messages/contents/SearchContents.d.ts +8 -0
- package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
- package/esm/components/messages/contents/SearchContents.js +14 -0
- package/esm/components/messages/contents/SearchContents.js.map +1 -0
- package/esm/components/messages/contents/TextContents.d.ts +8 -0
- package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
- package/esm/components/messages/contents/TextContents.js +10 -0
- package/esm/components/messages/contents/TextContents.js.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.d.ts +8 -0
- package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.js +53 -0
- package/esm/components/messages/contents/VisualizationContents.js.map +1 -0
- package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts +10 -0
- package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationErrorBoundary.js +22 -0
- package/esm/components/messages/contents/VisualizationErrorBoundary.js.map +1 -0
- package/esm/components/messages/contents/replaceLinks.d.ts +3 -0
- package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
- package/esm/components/messages/contents/replaceLinks.js +30 -0
- package/esm/components/messages/contents/replaceLinks.js.map +1 -0
- package/esm/components/messages/contents/useExecution.d.ts +6 -0
- package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
- package/esm/components/messages/{useExecution.js → contents/useExecution.js} +9 -4
- package/esm/components/messages/contents/useExecution.js.map +1 -0
- package/esm/components/messages/index.d.ts +2 -4
- package/esm/components/messages/index.d.ts.map +1 -1
- package/esm/components/messages/index.js +2 -4
- package/esm/components/messages/index.js.map +1 -1
- package/esm/hooks/useGenAIStore.d.ts +8 -10
- package/esm/hooks/useGenAIStore.d.ts.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/localization/bundles/de-DE.json +22 -1
- package/esm/localization/bundles/en-AU.json +22 -1
- package/esm/localization/bundles/en-GB.json +22 -1
- package/esm/localization/bundles/en-US.json +11 -11
- package/esm/localization/bundles/es-419.json +22 -1
- package/esm/localization/bundles/es-ES.json +22 -1
- package/esm/localization/bundles/fi-FI.json +22 -1
- package/esm/localization/bundles/fr-CA.json +22 -1
- package/esm/localization/bundles/fr-FR.json +22 -1
- package/esm/localization/bundles/it-IT.json +22 -1
- package/esm/localization/bundles/ja-JP.json +22 -1
- package/esm/localization/bundles/nl-NL.json +22 -1
- package/esm/localization/bundles/pt-BR.json +22 -1
- package/esm/localization/bundles/pt-PT.json +22 -1
- package/esm/localization/bundles/zh-HK.json +22 -1
- package/esm/localization/bundles/zh-Hans.json +22 -1
- package/esm/localization/bundles/zh-Hant.json +22 -1
- package/esm/model.d.ts +70 -53
- package/esm/model.d.ts.map +1 -1
- package/esm/model.js +46 -43
- package/esm/model.js.map +1 -1
- package/esm/sdk-ui-gen-ai.d.ts +59 -46
- package/esm/store/index.d.ts +2 -4
- package/esm/store/index.d.ts.map +1 -1
- package/esm/store/index.js +2 -4
- package/esm/store/index.js.map +1 -1
- package/esm/store/messages/messagesSelectors.d.ts +6 -3
- package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
- package/esm/store/messages/messagesSelectors.js +6 -12
- package/esm/store/messages/messagesSelectors.js.map +1 -1
- package/esm/store/messages/messagesSlice.d.ts +49 -4
- package/esm/store/messages/messagesSlice.d.ts.map +1 -1
- package/esm/store/messages/messagesSlice.js +96 -23
- package/esm/store/messages/messagesSlice.js.map +1 -1
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +9 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.js +36 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.js.map +1 -0
- package/esm/store/sideEffects/index.d.ts.map +1 -1
- package/esm/store/sideEffects/index.js +10 -5
- package/esm/store/sideEffects/index.js.map +1 -1
- package/esm/store/sideEffects/onThreadClear.d.ts +18 -0
- package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadClear.js +31 -0
- package/esm/store/sideEffects/onThreadClear.js.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts +20 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.js +41 -0
- package/esm/store/sideEffects/onThreadLoad.js.map +1 -0
- package/esm/store/sideEffects/onUserMessage.d.ts +21 -0
- package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
- package/esm/store/sideEffects/onUserMessage.js +53 -0
- package/esm/store/sideEffects/onUserMessage.js.map +1 -0
- package/esm/store/sideEffects/threadPolling.d.ts +11 -0
- package/esm/store/sideEffects/threadPolling.d.ts.map +1 -0
- package/esm/store/sideEffects/threadPolling.js +82 -0
- package/esm/store/sideEffects/threadPolling.js.map +1 -0
- package/esm/store/store.d.ts +8 -10
- package/esm/store/store.d.ts.map +1 -1
- package/esm/store/store.js +2 -4
- package/esm/store/store.js.map +1 -1
- package/esm/store/types.d.ts +0 -2
- package/esm/store/types.d.ts.map +1 -1
- package/esm/store/types.js +0 -1
- package/esm/store/types.js.map +1 -1
- package/package.json +15 -12
- package/styles/css/main.css +68 -43
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +55 -26
- package/styles/css/messages.css.map +1 -1
- package/styles/scss/main.scss +24 -6
- package/styles/scss/messages.scss +126 -97
- package/esm/components/messages/AgentState.d.ts +0 -3
- package/esm/components/messages/AgentState.d.ts.map +0 -1
- package/esm/components/messages/AgentState.js +0 -12
- package/esm/components/messages/AgentState.js.map +0 -1
- package/esm/components/messages/AssistantCancelledMessage.d.ts +0 -8
- package/esm/components/messages/AssistantCancelledMessage.d.ts.map +0 -1
- package/esm/components/messages/AssistantCancelledMessage.js +0 -12
- package/esm/components/messages/AssistantCancelledMessage.js.map +0 -1
- package/esm/components/messages/AssistantErrorMessage.d.ts +0 -11
- package/esm/components/messages/AssistantErrorMessage.d.ts.map +0 -1
- package/esm/components/messages/AssistantErrorMessage.js +0 -14
- package/esm/components/messages/AssistantErrorMessage.js.map +0 -1
- package/esm/components/messages/AssistantSearchCreateMessage.d.ts +0 -8
- package/esm/components/messages/AssistantSearchCreateMessage.d.ts.map +0 -1
- package/esm/components/messages/AssistantSearchCreateMessage.js +0 -16
- package/esm/components/messages/AssistantSearchCreateMessage.js.map +0 -1
- package/esm/components/messages/AssistantTextMessage.d.ts +0 -8
- package/esm/components/messages/AssistantTextMessage.d.ts.map +0 -1
- package/esm/components/messages/AssistantTextMessage.js +0 -10
- package/esm/components/messages/AssistantTextMessage.js.map +0 -1
- package/esm/components/messages/FoundObjects.d.ts +0 -8
- package/esm/components/messages/FoundObjects.d.ts.map +0 -1
- package/esm/components/messages/FoundObjects.js +0 -28
- package/esm/components/messages/FoundObjects.js.map +0 -1
- package/esm/components/messages/SystemMessage.d.ts +0 -8
- package/esm/components/messages/SystemMessage.d.ts.map +0 -1
- package/esm/components/messages/SystemMessage.js +0 -7
- package/esm/components/messages/SystemMessage.js.map +0 -1
- package/esm/components/messages/UserTextMessage.d.ts +0 -8
- package/esm/components/messages/UserTextMessage.d.ts.map +0 -1
- package/esm/components/messages/UserTextMessage.js +0 -10
- package/esm/components/messages/UserTextMessage.js.map +0 -1
- package/esm/components/messages/Visualization.d.ts +0 -8
- package/esm/components/messages/Visualization.d.ts.map +0 -1
- package/esm/components/messages/Visualization.js +0 -39
- package/esm/components/messages/Visualization.js.map +0 -1
- package/esm/components/messages/useExecution.d.ts +0 -6
- package/esm/components/messages/useExecution.d.ts.map +0 -1
- package/esm/components/messages/useExecution.js.map +0 -1
- package/esm/store/agent/agentSelectors.d.ts +0 -3
- package/esm/store/agent/agentSelectors.d.ts.map +0 -1
- package/esm/store/agent/agentSelectors.js +0 -6
- package/esm/store/agent/agentSelectors.js.map +0 -1
- package/esm/store/agent/agentSlice.d.ts +0 -8
- package/esm/store/agent/agentSlice.d.ts.map +0 -1
- package/esm/store/agent/agentSlice.js +0 -21
- package/esm/store/agent/agentSlice.js.map +0 -1
- package/esm/store/sideEffects/converters/evalToMessage.d.ts +0 -7
- package/esm/store/sideEffects/converters/evalToMessage.d.ts.map +0 -1
- package/esm/store/sideEffects/converters/evalToMessage.js +0 -14
- package/esm/store/sideEffects/converters/evalToMessage.js.map +0 -1
- package/esm/store/sideEffects/converters/messagesToHistory.d.ts +0 -4
- package/esm/store/sideEffects/converters/messagesToHistory.d.ts.map +0 -1
- package/esm/store/sideEffects/converters/messagesToHistory.js +0 -83
- package/esm/store/sideEffects/converters/messagesToHistory.js.map +0 -1
- package/esm/store/sideEffects/onNewMessage.d.ts +0 -13
- package/esm/store/sideEffects/onNewMessage.d.ts.map +0 -1
- package/esm/store/sideEffects/onNewMessage.js +0 -81
- package/esm/store/sideEffects/onNewMessage.js.map +0 -1
- package/styles/css/agentState.css +0 -29
- package/styles/css/agentState.css.map +0 -1
- package/styles/scss/agentState.scss +0 -31
|
@@ -1,55 +1,43 @@
|
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { connect } from "react-redux";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { AgentState } from "./messages/AgentState.js";
|
|
7
|
-
import { isAssistantErrorMessage, isAssistantSearchCreateMessage, isAssistantTextMessage, isAssistantCancelledMessage, isUserTextMessage, isSystemTextMessage, } from "../model.js";
|
|
4
|
+
import { asyncProcessSelector, messagesSelector } from "../store/index.js";
|
|
5
|
+
import { AssistantMessageComponent, UserMessageComponent } from "./messages/index.js";
|
|
8
6
|
import { EmptyState } from "./EmptyState.js";
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
7
|
+
import { isAssistantMessage, isUserMessage } from "../model.js";
|
|
8
|
+
import Skeleton from "react-loading-skeleton";
|
|
11
9
|
const MessagesComponent = ({ messages, loading }) => {
|
|
12
10
|
const scrollRef = React.useRef(null);
|
|
13
11
|
const lastMessage = messages[messages.length - 1];
|
|
14
12
|
React.useLayoutEffect(() => {
|
|
15
|
-
//
|
|
13
|
+
// Last message will also change when it's loading state is updated
|
|
16
14
|
scrollRef.current?.scrollTo({
|
|
17
15
|
top: scrollRef.current?.scrollHeight,
|
|
18
16
|
behavior: "smooth",
|
|
19
17
|
});
|
|
20
|
-
}, [lastMessage
|
|
18
|
+
}, [lastMessage]);
|
|
21
19
|
return (React.createElement("div", { className: "gd-gen-ai-chat__messages", ref: scrollRef },
|
|
22
20
|
React.createElement("div", { className: "gd-gen-ai-chat__messages__scroll" },
|
|
23
|
-
!messages.length ? React.createElement(EmptyState, null) : null,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
if (isAssistantCancelledMessage(message)) {
|
|
38
|
-
return React.createElement(AssistantCancelledMessageComponent, { key: message.id, message: message });
|
|
39
|
-
}
|
|
40
|
-
if (isSystemTextMessage(message)) {
|
|
41
|
-
return React.createElement(SystemMessageComponent, { key: message.id, message: message });
|
|
42
|
-
}
|
|
43
|
-
return assertNever(message);
|
|
44
|
-
}),
|
|
45
|
-
loading ? React.createElement(AgentState, null) : null)));
|
|
21
|
+
!messages.length && !loading ? React.createElement(EmptyState, null) : null,
|
|
22
|
+
loading === "loading" || loading === "clearing" ? React.createElement(Skeleton, { count: 3, height: "2em" }) : null,
|
|
23
|
+
loading !== "loading" && loading !== "clearing"
|
|
24
|
+
? messages.map((message) => {
|
|
25
|
+
if (isUserMessage(message)) {
|
|
26
|
+
return React.createElement(UserMessageComponent, { key: message.localId, message: message });
|
|
27
|
+
}
|
|
28
|
+
if (isAssistantMessage(message)) {
|
|
29
|
+
return React.createElement(AssistantMessageComponent, { key: message.localId, message: message });
|
|
30
|
+
}
|
|
31
|
+
return assertNever(message);
|
|
32
|
+
})
|
|
33
|
+
: null)));
|
|
46
34
|
};
|
|
47
35
|
const assertNever = (value) => {
|
|
48
36
|
throw new Error(`Unhandled message role: ${value}`);
|
|
49
37
|
};
|
|
50
38
|
const mapStateToProps = (state) => ({
|
|
51
|
-
messages:
|
|
52
|
-
loading:
|
|
39
|
+
messages: messagesSelector(state),
|
|
40
|
+
loading: asyncProcessSelector(state),
|
|
53
41
|
});
|
|
54
42
|
export const Messages = connect(mapStateToProps)(MessagesComponent);
|
|
55
43
|
//# sourceMappingURL=Messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAa,
|
|
1
|
+
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAO9C,MAAM,iBAAiB,GAAqC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAClF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACvB,mEAAmE;QACnE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;YACxB,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,YAAY;YACpC,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACH,6BAAK,SAAS,EAAC,0BAA0B,EAAC,GAAG,EAAE,SAAS;QACpD,6BAAK,SAAS,EAAC,kCAAkC;YAC5C,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAC,UAAU,OAAG,CAAC,CAAC,CAAC,IAAI;YACpD,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI;YAC5F,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU;gBAC5C,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACrB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;wBACzB,OAAO,oBAAC,oBAAoB,IAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;oBAC5E,CAAC;oBAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC9B,OAAO,oBAAC,yBAAyB,IAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;oBACjF,CAAC;oBAED,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,CAAC;gBACJ,CAAC,CAAC,IAAI,CACR,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAgB,EAA0B,EAAE,CAAC,CAAC;IACnE,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;IACjC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentIcon.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,mBAAmB,GAAG;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AgentIcon.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,mBAAmB,GAAG;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4EnD,CAAC"}
|
|
@@ -6,15 +6,21 @@ export const AgentIcon = ({ loading = false, error = false, cancelled = false, }
|
|
|
6
6
|
// A precaution in case there are multiple instances of the component on the same page
|
|
7
7
|
// In-line SVGs must obey the unique ID rule as any other HTML element
|
|
8
8
|
const instanceId = React.useMemo(() => INSTANCE_COUNTER++, []);
|
|
9
|
+
const isLoading = loading && !cancelled && !error;
|
|
10
|
+
// We are adding only one modifier class at a time
|
|
9
11
|
const className = cx("gd-gen-ai-chat__agent_icon", {
|
|
10
|
-
|
|
12
|
+
// Error state has the top priority
|
|
13
|
+
"gd-gen-ai-chat__agent_icon--error": error,
|
|
14
|
+
// Cancelled state
|
|
15
|
+
"gd-gen-ai-chat__agent_icon--cancelled": !error && cancelled,
|
|
16
|
+
// Loading state
|
|
17
|
+
"gd-gen-ai-chat__agent_icon--loading": isLoading,
|
|
18
|
+
// The default state with animation on first appearance
|
|
11
19
|
"gd-gen-ai-chat__agent_icon--appear": !loading && !error && !cancelled,
|
|
12
|
-
"gd-gen-ai-chat__agent_icon--error": !loading && error,
|
|
13
|
-
"gd-gen-ai-chat__agent_icon--cancelled": !loading && !error && cancelled,
|
|
14
20
|
});
|
|
15
21
|
return (React.createElement("svg", { className: className, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
16
22
|
React.createElement("g", { clipPath: `url(#clip_mask_${instanceId})` },
|
|
17
|
-
|
|
23
|
+
isLoading ? (React.createElement("g", { className: "gd-gen-ai-chat__agent_icon__circle" },
|
|
18
24
|
React.createElement("path", { d: "M 0 -16 A 16 16 0 0 1 0 16", stroke: `url(#first_half_${instanceId})` }),
|
|
19
25
|
React.createElement("path", { d: "M 0 16 A 16 16 0 0 1 0 -16", stroke: `url(#second_half_${instanceId})` }))) : (React.createElement("circle", { cx: "16", cy: "16", r: "16", className: "gd-gen-ai-chat__agent_icon__background" })),
|
|
20
26
|
React.createElement("path", { className: "gd-gen-ai-chat__agent_icon__star", d: "M16.2317 7.76912C16.2737 7.51389 16.6407 7.5139 16.6827 7.76913L17.1108 10.368C17.493 12.6883 19.3116 14.507 21.632 14.8892L24.2308 15.3172C24.4861 15.3593 24.4861 15.7263 24.2308 15.7683L21.632 16.1964C19.3116 16.5786 17.493 18.3972 17.1108 20.7176L16.6827 23.3164C16.6407 23.5716 16.2737 23.5716 16.2317 23.3164L15.8036 20.7176C15.4214 18.3972 13.6027 16.5786 11.2824 16.1964L8.68355 15.7683C8.42832 15.7263 8.42832 15.3593 8.68355 15.3172L11.2824 14.8892C13.6027 14.507 15.4214 12.6883 15.8036 10.368L16.2317 7.76912Z" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentIcon.js","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAQzB,MAAM,CAAC,MAAM,SAAS,GAAkC,CAAC,EACrD,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,GACpB,EAAE,EAAE;IACD,sFAAsF;IACtF,sEAAsE;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentIcon.js","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAQzB,MAAM,CAAC,MAAM,SAAS,GAAkC,CAAC,EACrD,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,GACpB,EAAE,EAAE;IACD,sFAAsF;IACtF,sEAAsE;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC;IAElD,kDAAkD;IAClD,MAAM,SAAS,GAAG,EAAE,CAAC,4BAA4B,EAAE;QAC/C,mCAAmC;QACnC,mCAAmC,EAAE,KAAK;QAC1C,kBAAkB;QAClB,uCAAuC,EAAE,CAAC,KAAK,IAAI,SAAS;QAC5D,gBAAgB;QAChB,qCAAqC,EAAE,SAAS;QAChD,uDAAuD;QACvD,oCAAoC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;KACzE,CAAC,CAAC;IAEH,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;QACzF,2BAAG,QAAQ,EAAE,kBAAkB,UAAU,GAAG;YACvC,SAAS,CAAC,CAAC,CAAC,CACT,2BAAG,SAAS,EAAC,oCAAoC;gBAC7C,8BAAM,CAAC,EAAC,4BAA4B,EAAC,MAAM,EAAE,mBAAmB,UAAU,GAAG,GAAI;gBACjF,8BAAM,CAAC,EAAC,4BAA4B,EAAC,MAAM,EAAE,oBAAoB,UAAU,GAAG,GAAI,CAClF,CACP,CAAC,CAAC,CAAC,CACA,gCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,wCAAwC,GAAG,CACvF;YACD,8BACI,SAAS,EAAC,kCAAkC,EAC5C,CAAC,EAAC,0gBAA0gB,GAC9gB;YACF,8BACI,SAAS,EAAC,2EAA2E,EACrF,CAAC,EAAC,6YAA6Y,GACjZ;YACF,8BACI,SAAS,EAAC,2HAA2H,EACrI,CAAC,EAAC,+YAA+Y,GACnZ,CACF;QACJ;YACI,wCACI,EAAE,EAAE,cAAc,UAAU,EAAE,EAC9B,aAAa,EAAC,mBAAmB,EACjC,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG;gBAEN,8BAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,wCAAwC,GAAG;gBACvE,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,uCAAuC,GAAG,CAC3D;YACjB,wCACI,SAAS,EAAC,mCAAmC,EAC7C,EAAE,EAAE,eAAe,UAAU,EAAE,EAC/B,aAAa,EAAC,mBAAmB,EACjC,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG;gBAEN,8BAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,uCAAuC,GAAG;gBACtE,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,sCAAsC,GAAG,CAC1D;YACjB,kCAAU,EAAE,EAAE,aAAa,UAAU,EAAE;gBACnC,8BAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,CAChC,CACR,CACL,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AssistantMessage } from "../../model.js";
|
|
3
|
+
type AssistantMessageProps = {
|
|
4
|
+
message: AssistantMessage;
|
|
5
|
+
};
|
|
6
|
+
export declare const AssistantMessageComponent: React.FC<AssistantMessageProps>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=AssistantMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssistantMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAInE,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmBrE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { isErrorContents } from "../../model.js";
|
|
5
|
+
import { AgentIcon } from "./AgentIcon.js";
|
|
6
|
+
import { MessageContents } from "./MessageContents.js";
|
|
7
|
+
export const AssistantMessageComponent = ({ message }) => {
|
|
8
|
+
const classNames = cx("gd-gen-ai-chat__messages__message", "gd-gen-ai-chat__messages__message--assistant", message.cancelled && "gd-gen-ai-chat__messages__message--cancelled");
|
|
9
|
+
const hasError = message.content.some(isErrorContents);
|
|
10
|
+
return (React.createElement("div", { className: classNames },
|
|
11
|
+
React.createElement(AgentIcon, { loading: !message.complete, error: hasError, cancelled: message.cancelled }),
|
|
12
|
+
React.createElement(MessageContents, { useMarkdown: true, content: message.content, isComplete: Boolean(message.complete || message.cancelled), isCancelled: message.cancelled })));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=AssistantMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssistantMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,CAAC,MAAM,yBAAyB,GAAoC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACtF,MAAM,UAAU,GAAG,EAAE,CACjB,mCAAmC,EACnC,8CAA8C,EAC9C,OAAO,CAAC,SAAS,IAAI,8CAA8C,CACtE,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEvD,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU;QACtB,oBAAC,SAAS,IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI;QACxF,oBAAC,eAAe,IACZ,WAAW,QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,EAC1D,WAAW,EAAE,OAAO,CAAC,SAAS,GAChC,CACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Contents } from "../../model.js";
|
|
3
|
+
type MessageContentsProps = {
|
|
4
|
+
content: Contents[];
|
|
5
|
+
isComplete?: boolean;
|
|
6
|
+
isCancelled?: boolean;
|
|
7
|
+
useMarkdown?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const MessageContents: React.FC<MessageContentsProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=MessageContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAS1C,KAAK,oBAAoB,GAAG;IACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6C1D,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import Skeleton from "react-loading-skeleton";
|
|
4
|
+
import { TextContentsComponent } from "./contents/TextContents.js";
|
|
5
|
+
import { ErrorContentsComponent } from "./contents/ErrorContents.js";
|
|
6
|
+
import { RoutingContentsComponent } from "./contents/RoutingContents.js";
|
|
7
|
+
import { SearchContentsComponent } from "./contents/SearchContents.js";
|
|
8
|
+
import { VisualizationContentsComponent } from "./contents/VisualizationContents.js";
|
|
9
|
+
import { Typography } from "@gooddata/sdk-ui-kit";
|
|
10
|
+
import { FormattedMessage } from "react-intl";
|
|
11
|
+
export const MessageContents = ({ content, isComplete = true, isCancelled = false, useMarkdown = false, }) => {
|
|
12
|
+
return (React.createElement("div", { className: "gd-gen-ai-chat__messages__contents" },
|
|
13
|
+
content.map((item, index) => {
|
|
14
|
+
const type = item.type;
|
|
15
|
+
switch (type) {
|
|
16
|
+
case "text":
|
|
17
|
+
return React.createElement(TextContentsComponent, { useMarkdown: useMarkdown, content: item, key: index });
|
|
18
|
+
case "error":
|
|
19
|
+
return (React.createElement(ErrorContentsComponent, { useMarkdown: useMarkdown, content: item, key: index }));
|
|
20
|
+
case "routing":
|
|
21
|
+
return (React.createElement(RoutingContentsComponent, { useMarkdown: useMarkdown, content: item, key: index }));
|
|
22
|
+
case "search":
|
|
23
|
+
return (React.createElement(SearchContentsComponent, { useMarkdown: useMarkdown, content: item, key: index }));
|
|
24
|
+
case "visualization":
|
|
25
|
+
return (React.createElement(VisualizationContentsComponent, { useMarkdown: useMarkdown, content: item, key: index }));
|
|
26
|
+
default:
|
|
27
|
+
return assertNever(type);
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
!isComplete ? React.createElement(Skeleton, null) : null,
|
|
31
|
+
isCancelled ? (React.createElement(Typography, { tagName: "p" },
|
|
32
|
+
React.createElement(FormattedMessage, { id: "gd.gen-ai.state.cancelled" }))) : null));
|
|
33
|
+
};
|
|
34
|
+
const assertNever = (value) => {
|
|
35
|
+
throw new Error(`Unknown content type: ${value}`);
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=MessageContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageContents.js","sourceRoot":"","sources":["../../../src/components/messages/MessageContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS9C,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC5D,OAAO,EACP,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK,GACtB,EAAE,EAAE;IACD,OAAO,CACH,6BAAK,SAAS,EAAC,oCAAoC;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,MAAM;oBACP,OAAO,oBAAC,qBAAqB,IAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,CAAC;gBAC1F,KAAK,OAAO;oBACR,OAAO,CACH,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,CAClF,CAAC;gBACN,KAAK,SAAS;oBACV,OAAO,CACH,oBAAC,wBAAwB,IAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,CACpF,CAAC;gBACN,KAAK,QAAQ;oBACT,OAAO,CACH,oBAAC,uBAAuB,IAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,CACnF,CAAC;gBACN,KAAK,eAAe;oBAChB,OAAO,CACH,oBAAC,8BAA8B,IAC3B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,IAAI,EACb,GAAG,EAAE,KAAK,GACZ,CACL,CAAC;gBACN;oBACI,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACL,CAAC,CAAC;QACD,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAC,QAAQ,OAAG,CAAC,CAAC,CAAC,IAAI;QACjC,WAAW,CAAC,CAAC,CAAC,CACX,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG;YACnB,oBAAC,gBAAgB,IAAC,EAAE,EAAC,2BAA2B,GAAG,CAC1C,CAChB,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,KAAK,gBAAgB,GAAG;IACpB,OAAO,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAY3D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { MessageContents } from "./MessageContents.js";
|
|
5
|
+
export const UserMessageComponent = ({ message }) => {
|
|
6
|
+
const classNames = cx("gd-gen-ai-chat__messages__message", "gd-gen-ai-chat__messages__message--user", message.cancelled && "gd-gen-ai-chat__messages__message--cancelled");
|
|
7
|
+
return (React.createElement("div", { className: classNames },
|
|
8
|
+
React.createElement(MessageContents, { content: message.content })));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=UserMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMessage.js","sourceRoot":"","sources":["../../../src/components/messages/UserMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,CAAC,MAAM,oBAAoB,GAA+B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5E,MAAM,UAAU,GAAG,EAAE,CACjB,mCAAmC,EACnC,yCAAyC,EACzC,OAAO,CAAC,SAAS,IAAI,8CAA8C,CACtE,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU;QACtB,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAI,CAC3C,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ErrorContents } from "../../../model.js";
|
|
3
|
+
export type ErrorContentsProps = {
|
|
4
|
+
content: ErrorContents;
|
|
5
|
+
useMarkdown?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const ErrorContentsComponent: React.FC<ErrorContentsProps>;
|
|
8
|
+
//# sourceMappingURL=ErrorContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/ErrorContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAQ/D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { MarkdownComponent } from "./Markdown.js";
|
|
5
|
+
export const ErrorContentsComponent = ({ content, useMarkdown }) => {
|
|
6
|
+
const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--error");
|
|
7
|
+
return (React.createElement("div", { className: className },
|
|
8
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, content.text)));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=ErrorContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/ErrorContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,sBAAsB,GAAiC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IAC7F,MAAM,SAAS,GAAG,EAAE,CAAC,mCAAmC,EAAE,0CAA0C,CAAC,CAAC;IAEtG,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB,CAC/E,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/Markdown.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAM9D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import Markdown from "react-markdown";
|
|
4
|
+
import { Hyperlink, Typography } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
const componentMap = {
|
|
6
|
+
p: ({ children }) => React.createElement(Typography, { tagName: "p" }, children),
|
|
7
|
+
a: ({ children, href }) => React.createElement(Hyperlink, { href: href ?? "", text: children }),
|
|
8
|
+
h1: ({ children }) => React.createElement(Typography, { tagName: "h1" }, children),
|
|
9
|
+
h2: ({ children }) => React.createElement(Typography, { tagName: "h2" }, children),
|
|
10
|
+
h3: ({ children }) => React.createElement(Typography, { tagName: "h3" }, children),
|
|
11
|
+
};
|
|
12
|
+
export const MarkdownComponent = ({ children, allowMarkdown = false }) => {
|
|
13
|
+
if (allowMarkdown) {
|
|
14
|
+
return React.createElement(Markdown, { components: componentMap }, children);
|
|
15
|
+
}
|
|
16
|
+
return React.createElement(Typography, { tagName: "p" }, children);
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=Markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/Markdown.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAwB,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,YAAY,GAAe;IAC7B,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,QAAQ,CAAc;IACpE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAkB,GAAI;IACpF,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,IAAE,QAAQ,CAAc;IACtE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,IAAE,QAAQ,CAAc;IACtE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,IAAE,QAAQ,CAAc;CACzE,CAAC;AAOF,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE,EAAE;IACvG,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,oBAAC,QAAQ,IAAC,UAAU,EAAE,YAAY,IAAG,QAAQ,CAAY,CAAC;IACrE,CAAC;IAED,OAAO,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,QAAQ,CAAc,CAAC;AAC3D,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RoutingContents } from "../../../model.js";
|
|
3
|
+
export type RoutingContentsProps = {
|
|
4
|
+
content: RoutingContents;
|
|
5
|
+
useMarkdown?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const RoutingContentsComponent: React.FC<RoutingContentsProps>;
|
|
8
|
+
//# sourceMappingURL=RoutingContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/RoutingContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAQnE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { MarkdownComponent } from "./Markdown.js";
|
|
5
|
+
export const RoutingContentsComponent = ({ content, useMarkdown }) => {
|
|
6
|
+
const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--routing");
|
|
7
|
+
return (React.createElement("div", { className: className },
|
|
8
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, content.text)));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=RoutingContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/RoutingContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,wBAAwB,GAAmC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IACjG,MAAM,SAAS,GAAG,EAAE,CAAC,mCAAmC,EAAE,4CAA4C,CAAC,CAAC;IAExG,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB,CAC/E,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SearchContents } from "../../../model.js";
|
|
3
|
+
export type SearchContentsProps = {
|
|
4
|
+
content: SearchContents;
|
|
5
|
+
useMarkdown?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const SearchContentsComponent: React.FC<SearchContentsProps>;
|
|
8
|
+
//# sourceMappingURL=SearchContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/SearchContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAWjE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { replaceLinks } from "./replaceLinks.js";
|
|
5
|
+
import { MarkdownComponent } from "./Markdown.js";
|
|
6
|
+
export const SearchContentsComponent = ({ content, useMarkdown }) => {
|
|
7
|
+
const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--search");
|
|
8
|
+
const text = React.useMemo(() => {
|
|
9
|
+
return replaceLinks(content.text, content.searchResults);
|
|
10
|
+
}, [content.text, content.searchResults]);
|
|
11
|
+
return (React.createElement("div", { className: className },
|
|
12
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, text)));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=SearchContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/SearchContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,uBAAuB,GAAkC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IAC/F,MAAM,SAAS,GAAG,EAAE,CAAC,mCAAmC,EAAE,2CAA2C,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAE1C,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,IAAI,CAAqB,CACvE,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { TextContents } from "../../../model.js";
|
|
3
|
+
export type TextContentsProps = {
|
|
4
|
+
content: TextContents;
|
|
5
|
+
useMarkdown?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const TextContentsComponent: React.FC<TextContentsProps>;
|
|
8
|
+
//# sourceMappingURL=TextContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/TextContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAQ7D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { MarkdownComponent } from "./Markdown.js";
|
|
5
|
+
export const TextContentsComponent = ({ content, useMarkdown = false }) => {
|
|
6
|
+
const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--text");
|
|
7
|
+
return (React.createElement("div", { className: className },
|
|
8
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, content.text)));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=TextContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/TextContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,qBAAqB,GAAgC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE;IACnG,MAAM,SAAS,GAAG,EAAE,CAAC,mCAAmC,EAAE,yCAAyC,CAAC,CAAC;IAErG,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB,CAC/E,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { VisualizationContents } from "../../../model.js";
|
|
3
|
+
export type VisualizationContentsProps = {
|
|
4
|
+
content: VisualizationContents;
|
|
5
|
+
useMarkdown?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const VisualizationContentsComponent: React.FC<VisualizationContentsProps>;
|
|
8
|
+
//# sourceMappingURL=VisualizationContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualizationContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+C/E,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import cx from "classnames";
|
|
4
|
+
import { PivotTable } from "@gooddata/sdk-ui-pivot";
|
|
5
|
+
import { BarChart, ColumnChart, Headline, LineChart, PieChart } from "@gooddata/sdk-ui-charts";
|
|
6
|
+
import { useExecution } from "./useExecution.js";
|
|
7
|
+
import { VisualizationErrorBoundary } from "./VisualizationErrorBoundary.js";
|
|
8
|
+
import { MarkdownComponent } from "./Markdown.js";
|
|
9
|
+
export const VisualizationContentsComponent = ({ content, useMarkdown, }) => {
|
|
10
|
+
const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--visualization");
|
|
11
|
+
const visualization = content.createdVisualizations?.[0];
|
|
12
|
+
const { metrics, dimensions } = useExecution(visualization);
|
|
13
|
+
return (React.createElement("div", { className: className },
|
|
14
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, content.text),
|
|
15
|
+
visualization ? (React.createElement("div", { className: "gd-gen-ai-chat__visualization" },
|
|
16
|
+
React.createElement("div", { className: "gd-gen-ai-chat__visualization__wrapper" },
|
|
17
|
+
React.createElement(VisualizationErrorBoundary, null, (() => {
|
|
18
|
+
switch (visualization.visualizationType) {
|
|
19
|
+
case "BAR":
|
|
20
|
+
return renderBarChart(metrics, dimensions);
|
|
21
|
+
case "COLUMN":
|
|
22
|
+
return renderColumnChart(metrics, dimensions);
|
|
23
|
+
case "LINE":
|
|
24
|
+
return renderLineChart(metrics, dimensions);
|
|
25
|
+
case "PIE":
|
|
26
|
+
return renderPieChart(metrics, dimensions);
|
|
27
|
+
case "TABLE":
|
|
28
|
+
return renderTable(metrics, dimensions);
|
|
29
|
+
case "HEADLINE":
|
|
30
|
+
return renderHeadline(metrics, dimensions);
|
|
31
|
+
default:
|
|
32
|
+
return assertNever(visualization.visualizationType);
|
|
33
|
+
}
|
|
34
|
+
})())),
|
|
35
|
+
React.createElement("div", { className: "gd-gen-ai-chat__messages__visualization__title" },
|
|
36
|
+
React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, visualization.title)))) : null));
|
|
37
|
+
};
|
|
38
|
+
const assertNever = (value) => {
|
|
39
|
+
throw new Error("Unknown visualization type: " + value);
|
|
40
|
+
};
|
|
41
|
+
const renderBarChart = (metrics, dimensions) => (React.createElement(BarChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
|
|
42
|
+
// Better visibility with stacked bars if there are multiple metrics and dimensions
|
|
43
|
+
stackMeasures: metrics.length > 1 && dimensions.length === 2,
|
|
44
|
+
} }));
|
|
45
|
+
const renderColumnChart = (metrics, dimensions) => (React.createElement(ColumnChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
|
|
46
|
+
// Better visibility with stacked bars if there are multiple metrics and dimensions
|
|
47
|
+
stackMeasures: metrics.length > 1 && dimensions.length === 2,
|
|
48
|
+
} }));
|
|
49
|
+
const renderLineChart = (metrics, dimensions) => (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined }));
|
|
50
|
+
const renderPieChart = (metrics, dimensions) => (React.createElement(PieChart, { height: 300, measures: metrics, viewBy: metrics.length <= 1 ? dimensions[0] : undefined }));
|
|
51
|
+
const renderTable = (metrics, dimensions) => (React.createElement(PivotTable, { measures: metrics, rows: dimensions }));
|
|
52
|
+
const renderHeadline = (metrics, _dimensions) => (React.createElement(Headline, { height: 300, primaryMeasure: metrics[0], secondaryMeasures: [metrics[1], metrics[2]].filter(Boolean) }));
|
|
53
|
+
//# sourceMappingURL=VisualizationContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,8BAA8B,GAAyC,CAAC,EACjF,OAAO,EACP,WAAW,GACd,EAAE,EAAE;IACD,MAAM,SAAS,GAAG,EAAE,CAChB,mCAAmC,EACnC,kDAAkD,CACrD,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE5D,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB;QAChF,aAAa,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAC,+BAA+B;YAC1C,6BAAK,SAAS,EAAC,wCAAwC;gBACnD,oBAAC,0BAA0B,QACtB,CAAC,GAAG,EAAE;oBACH,QAAQ,aAAa,CAAC,iBAAiB,EAAE,CAAC;wBACtC,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAC/C,KAAK,QAAQ;4BACT,OAAO,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAClD,KAAK,MAAM;4BACP,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAChD,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAC/C,KAAK,OAAO;4BACR,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAC5C,KAAK,UAAU;4BACX,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAC/C;4BACI,OAAO,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBAC5D,CAAC;gBACL,CAAC,CAAC,EAAE,CACqB,CAC3B;YACN,6BAAK,SAAS,EAAC,gDAAgD;gBAC3D,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IACxC,aAAa,CAAC,KAAK,CACJ,CAClB,CACJ,CACT,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,EAAE,CAAC,CACtE,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,GACH,CACL,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,EAAE,CAAC,CACzE,oBAAC,WAAW,IACR,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,GACH,CACL,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,EAAE,CAAC,CACvE,oBAAC,SAAS,IACN,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAC5D,CACL,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,EAAE,CAAC,CACtE,oBAAC,QAAQ,IAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAI,CACxG,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,EAAE,CAAC,CACnE,oBAAC,UAAU,IAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAI,CACtD,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,WAAyB,EAAE,EAAE,CAAC,CACvE,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAC7D,CACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { WrappedComponentProps } from "react-intl";
|
|
3
|
+
type ErrorBoundaryProps = WrappedComponentProps & {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
};
|
|
6
|
+
export declare const VisualizationErrorBoundary: React.FC<import("react-intl").WithIntlProps<ErrorBoundaryProps>> & {
|
|
7
|
+
WrappedComponent: React.ComponentType<ErrorBoundaryProps>;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=VisualizationErrorBoundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualizationErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationErrorBoundary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/D,KAAK,kBAAkB,GAAG,qBAAqB,GAAG;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AA2BF,eAAO,MAAM,0BAA0B;;CAAkD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { extractError } from "../../../store/sideEffects/utils.js";
|
|
4
|
+
import { ErrorComponent } from "@gooddata/sdk-ui";
|
|
5
|
+
import { injectIntl } from "react-intl";
|
|
6
|
+
class VisualizationErrorBoundaryComponent extends React.Component {
|
|
7
|
+
constructor(props) {
|
|
8
|
+
super(props);
|
|
9
|
+
this.state = { error: "" };
|
|
10
|
+
}
|
|
11
|
+
static getDerivedStateFromError(error) {
|
|
12
|
+
return { error: extractError(error) };
|
|
13
|
+
}
|
|
14
|
+
render() {
|
|
15
|
+
if (this.state.error) {
|
|
16
|
+
return (React.createElement(ErrorComponent, { message: this.props.intl.formatMessage({ id: "gd.gen-ai.global-error" }) }));
|
|
17
|
+
}
|
|
18
|
+
return this.props.children;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const VisualizationErrorBoundary = injectIntl(VisualizationErrorBoundaryComponent);
|
|
22
|
+
//# sourceMappingURL=VisualizationErrorBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualizationErrorBoundary.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationErrorBoundary.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAyB,MAAM,YAAY,CAAC;AAU/D,MAAM,mCAAoC,SAAQ,KAAK,CAAC,SAAiD;IACrG,YAAY,KAAyB;QACjC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAc;QAC1C,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CACH,oBAAC,cAAc,IAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAC,GAAI,CAC/F,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,mCAAmC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceLinks.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/replaceLinks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAgBhE,eAAO,MAAM,YAAY,SAAU,MAAM,gBAAgB,yBAAyB,EAAE,KAAG,MAmBtF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
const getFoundObjectLink = (obj) => {
|
|
3
|
+
switch (obj.type) {
|
|
4
|
+
case "visualization":
|
|
5
|
+
return `/analyze/#/${obj.workspaceId}/${obj.id}/edit`;
|
|
6
|
+
case "dashboard":
|
|
7
|
+
return `/dashboards/#/workspace/${obj.workspaceId}/dashboard/${obj.id}`;
|
|
8
|
+
case "metric":
|
|
9
|
+
return `/metrics/#/${obj.workspaceId}/metric/${obj.id}`;
|
|
10
|
+
default:
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const rx = /\{[^}][^.}]*\.[^}]+\}/g;
|
|
15
|
+
export const replaceLinks = (text, foundObjects) => {
|
|
16
|
+
return text.replace(rx, (chunk) => {
|
|
17
|
+
const [objectType, ...objectIdChunks] = chunk.replace("{", "").replace("}", "").split(".");
|
|
18
|
+
const objectId = objectIdChunks.join(".");
|
|
19
|
+
const obj = foundObjects.find((foundObj) => foundObj.type === objectType && foundObj.id === objectId);
|
|
20
|
+
if (!obj) {
|
|
21
|
+
return chunk;
|
|
22
|
+
}
|
|
23
|
+
const href = getFoundObjectLink(obj);
|
|
24
|
+
if (!href) {
|
|
25
|
+
return chunk;
|
|
26
|
+
}
|
|
27
|
+
return `[${obj.title}](${href})`;
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=replaceLinks.js.map
|