@gooddata/sdk-ui-gen-ai 10.12.0-alpha.8 → 10.12.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/NOTICE +3 -38
  2. package/esm/components/EmptyState.d.ts +11 -1
  3. package/esm/components/EmptyState.d.ts.map +1 -1
  4. package/esm/components/EmptyState.js +31 -26
  5. package/esm/components/EmptyState.js.map +1 -1
  6. package/esm/components/ErrorBoundary.d.ts +16 -0
  7. package/esm/components/ErrorBoundary.d.ts.map +1 -0
  8. package/esm/components/ErrorBoundary.js +22 -0
  9. package/esm/components/ErrorBoundary.js.map +1 -0
  10. package/esm/components/GenAIChat.d.ts.map +1 -1
  11. package/esm/components/GenAIChat.js +7 -2
  12. package/esm/components/GenAIChat.js.map +1 -1
  13. package/esm/components/GenAIChatDialog.d.ts.map +1 -1
  14. package/esm/components/GenAIChatDialog.js +7 -2
  15. package/esm/components/GenAIChatDialog.js.map +1 -1
  16. package/esm/components/GenAIChatOverlay.d.ts +16 -2
  17. package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
  18. package/esm/components/GenAIChatOverlay.js +15 -10
  19. package/esm/components/GenAIChatOverlay.js.map +1 -1
  20. package/esm/components/GenAIChatWrapper.d.ts.map +1 -1
  21. package/esm/components/GenAIChatWrapper.js +8 -4
  22. package/esm/components/GenAIChatWrapper.js.map +1 -1
  23. package/esm/components/GlobalError.d.ts +21 -0
  24. package/esm/components/GlobalError.d.ts.map +1 -0
  25. package/esm/components/GlobalError.js +25 -0
  26. package/esm/components/GlobalError.js.map +1 -0
  27. package/esm/components/Input.d.ts +13 -2
  28. package/esm/components/Input.d.ts.map +1 -1
  29. package/esm/components/Input.js +22 -15
  30. package/esm/components/Input.js.map +1 -1
  31. package/esm/components/Messages.d.ts +7 -1
  32. package/esm/components/Messages.d.ts.map +1 -1
  33. package/esm/components/Messages.js +15 -9
  34. package/esm/components/Messages.js.map +1 -1
  35. package/esm/components/StopIcon.d.ts +7 -0
  36. package/esm/components/StopIcon.d.ts.map +1 -0
  37. package/esm/components/StopIcon.js +10 -0
  38. package/esm/components/StopIcon.js.map +1 -0
  39. package/esm/components/messages/AgentIcon.d.ts +1 -0
  40. package/esm/components/messages/AgentIcon.d.ts.map +1 -1
  41. package/esm/components/messages/AgentIcon.js +4 -3
  42. package/esm/components/messages/AgentIcon.js.map +1 -1
  43. package/esm/components/messages/AgentState.d.ts.map +1 -1
  44. package/esm/components/messages/AgentState.js +3 -1
  45. package/esm/components/messages/AgentState.js.map +1 -1
  46. package/esm/components/messages/AssistantCancelledMessage.d.ts +8 -0
  47. package/esm/components/messages/AssistantCancelledMessage.d.ts.map +1 -0
  48. package/esm/components/messages/AssistantCancelledMessage.js +12 -0
  49. package/esm/components/messages/AssistantCancelledMessage.js.map +1 -0
  50. package/esm/components/messages/AssistantErrorMessage.d.ts +4 -1
  51. package/esm/components/messages/AssistantErrorMessage.d.ts.map +1 -1
  52. package/esm/components/messages/AssistantErrorMessage.js +6 -2
  53. package/esm/components/messages/AssistantErrorMessage.js.map +1 -1
  54. package/esm/components/messages/AssistantSearchCreateMessage.d.ts.map +1 -1
  55. package/esm/components/messages/AssistantSearchCreateMessage.js +3 -1
  56. package/esm/components/messages/AssistantSearchCreateMessage.js.map +1 -1
  57. package/esm/components/messages/AssistantTextMessage.js +1 -1
  58. package/esm/components/messages/AssistantTextMessage.js.map +1 -1
  59. package/esm/components/messages/FoundObjects.d.ts +8 -0
  60. package/esm/components/messages/FoundObjects.d.ts.map +1 -0
  61. package/esm/components/messages/FoundObjects.js +28 -0
  62. package/esm/components/messages/FoundObjects.js.map +1 -0
  63. package/esm/components/messages/SystemMessage.js +1 -1
  64. package/esm/components/messages/SystemMessage.js.map +1 -1
  65. package/esm/components/messages/UserTextMessage.d.ts +8 -0
  66. package/esm/components/messages/UserTextMessage.d.ts.map +1 -0
  67. package/esm/components/messages/UserTextMessage.js +10 -0
  68. package/esm/components/messages/UserTextMessage.js.map +1 -0
  69. package/esm/components/messages/Visualization.d.ts.map +1 -1
  70. package/esm/components/messages/Visualization.js +31 -4
  71. package/esm/components/messages/Visualization.js.map +1 -1
  72. package/esm/components/messages/index.d.ts +2 -1
  73. package/esm/components/messages/index.d.ts.map +1 -1
  74. package/esm/components/messages/index.js +2 -1
  75. package/esm/components/messages/index.js.map +1 -1
  76. package/esm/components/messages/useExecution.d.ts +4 -1
  77. package/esm/components/messages/useExecution.d.ts.map +1 -1
  78. package/esm/components/messages/useExecution.js +17 -23
  79. package/esm/components/messages/useExecution.js.map +1 -1
  80. package/esm/hooks/useGenAIStore.d.ts +1 -1
  81. package/esm/hooks/useGenAIStore.d.ts.map +1 -1
  82. package/esm/hooks/useGenAIStore.js +2 -5
  83. package/esm/hooks/useGenAIStore.js.map +1 -1
  84. package/esm/index.d.ts +1 -1
  85. package/esm/index.d.ts.map +1 -1
  86. package/esm/localization/bundles/en-US.json +102 -1
  87. package/esm/model.d.ts +84 -27
  88. package/esm/model.d.ts.map +1 -1
  89. package/esm/model.js +70 -23
  90. package/esm/model.js.map +1 -1
  91. package/esm/sdk-ui-gen-ai.d.ts +40 -17
  92. package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
  93. package/esm/store/messages/messagesSelectors.js +2 -1
  94. package/esm/store/messages/messagesSelectors.js.map +1 -1
  95. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  96. package/esm/store/messages/messagesSlice.js +10 -0
  97. package/esm/store/messages/messagesSlice.js.map +1 -1
  98. package/esm/store/sideEffects/converters/evalToMessage.js +2 -2
  99. package/esm/store/sideEffects/converters/evalToMessage.js.map +1 -1
  100. package/esm/store/sideEffects/converters/messagesToHistory.d.ts.map +1 -1
  101. package/esm/store/sideEffects/converters/messagesToHistory.js +22 -10
  102. package/esm/store/sideEffects/converters/messagesToHistory.js.map +1 -1
  103. package/esm/store/sideEffects/index.js +3 -3
  104. package/esm/store/sideEffects/index.js.map +1 -1
  105. package/esm/store/sideEffects/onNewMessage.d.ts +5 -1
  106. package/esm/store/sideEffects/onNewMessage.d.ts.map +1 -1
  107. package/esm/store/sideEffects/onNewMessage.js +37 -27
  108. package/esm/store/sideEffects/onNewMessage.js.map +1 -1
  109. package/esm/store/sideEffects/utils.js +1 -1
  110. package/esm/store/sideEffects/utils.js.map +1 -1
  111. package/package.json +13 -13
  112. package/styles/css/agentIcon.css +6 -0
  113. package/styles/css/agentIcon.css.map +1 -1
  114. package/styles/css/input.css +10 -5
  115. package/styles/css/input.css.map +1 -1
  116. package/styles/css/main.css +64 -9
  117. package/styles/css/main.css.map +1 -1
  118. package/styles/css/messages.css +27 -1
  119. package/styles/css/messages.css.map +1 -1
  120. package/styles/css/window.css +7 -2
  121. package/styles/css/window.css.map +1 -1
  122. package/styles/scss/agentIcon.scss +10 -0
  123. package/styles/scss/input.scss +10 -5
  124. package/styles/scss/main.scss +17 -1
  125. package/styles/scss/messages.scss +36 -1
  126. package/styles/scss/window.scss +8 -2
  127. package/esm/components/messages/UserMessage.d.ts +0 -8
  128. package/esm/components/messages/UserMessage.d.ts.map +0 -1
  129. package/esm/components/messages/UserMessage.js +0 -8
  130. package/esm/components/messages/UserMessage.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAoB1B,eAAO,MAAM,QAAQ,yBA6CpB,CAAC"}
1
+ {"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAa,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAoB7F,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACrD,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;CACpD,CAAC;AA4DF,eAAO,MAAM,QAAQ,wJAA8C,CAAC"}
@@ -1,16 +1,14 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import React from "react";
3
- import { useSelector } from "react-redux";
3
+ import { connect } from "react-redux";
4
4
  import { agentLoadingSelector, visibleMessagesSelector } from "../store/index.js";
5
- import { AssistantTextMessageComponent, SystemMessageComponent, UserMessageComponent, } from "./messages/index.js";
5
+ import { AssistantTextMessageComponent, SystemMessageComponent, UserTextMessageComponent, AssistantCancelledMessageComponent, } from "./messages/index.js";
6
6
  import { AgentState } from "./messages/AgentState.js";
7
- import { isAssistantErrorMessage, isAssistantSearchCreateMessage, isAssistantTextMessage, isSystemMessage, isUserMessage, } from "../model.js";
7
+ import { isAssistantErrorMessage, isAssistantSearchCreateMessage, isAssistantTextMessage, isAssistantCancelledMessage, isUserTextMessage, isSystemTextMessage, } from "../model.js";
8
8
  import { EmptyState } from "./EmptyState.js";
9
9
  import { AssistantErrorMessageComponent } from "./messages/AssistantErrorMessage.js";
10
10
  import { AssistantSearchCreateMessageComponent } from "./messages/AssistantSearchCreateMessage.js";
11
- export const Messages = () => {
12
- const messages = useSelector(visibleMessagesSelector);
13
- const loading = useSelector(agentLoadingSelector);
11
+ const MessagesComponent = ({ messages, loading }) => {
14
12
  const scrollRef = React.useRef(null);
15
13
  const lastMessage = messages[messages.length - 1];
16
14
  React.useLayoutEffect(() => {
@@ -33,10 +31,13 @@ export const Messages = () => {
33
31
  if (isAssistantSearchCreateMessage(message)) {
34
32
  return React.createElement(AssistantSearchCreateMessageComponent, { key: message.id, message: message });
35
33
  }
36
- if (isUserMessage(message)) {
37
- return React.createElement(UserMessageComponent, { key: message.id, message: message });
34
+ if (isUserTextMessage(message)) {
35
+ return React.createElement(UserTextMessageComponent, { key: message.id, message: message });
38
36
  }
39
- if (isSystemMessage(message)) {
37
+ if (isAssistantCancelledMessage(message)) {
38
+ return React.createElement(AssistantCancelledMessageComponent, { key: message.id, message: message });
39
+ }
40
+ if (isSystemTextMessage(message)) {
40
41
  return React.createElement(SystemMessageComponent, { key: message.id, message: message });
41
42
  }
42
43
  return assertNever(message);
@@ -46,4 +47,9 @@ export const Messages = () => {
46
47
  const assertNever = (value) => {
47
48
  throw new Error(`Unhandled message role: ${value}`);
48
49
  };
50
+ const mapStateToProps = (state) => ({
51
+ messages: visibleMessagesSelector(state),
52
+ loading: agentLoadingSelector(state),
53
+ });
54
+ export const Messages = connect(mapStateToProps)(MessagesComponent);
49
55
  //# sourceMappingURL=Messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"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"}
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,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EACH,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,kCAAkC,GACrC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AAOnG,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,wEAAwE;QACxE,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,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3B,OAAO,CACH,6BAAK,SAAS,EAAC,0BAA0B,EAAC,GAAG,EAAE,SAAS;QACpD,6BAAK,SAAS,EAAC,kCAAkC;YAC5C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAC,UAAU,OAAG,CAAC,CAAC,CAAC,IAAI;YACxC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,OAAO,oBAAC,6BAA6B,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBAChF,CAAC;gBAED,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,OAAO,oBAAC,8BAA8B,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBACjF,CAAC;gBAED,IAAI,8BAA8B,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,OAAO,oBAAC,qCAAqC,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBACxF,CAAC;gBAED,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,OAAO,oBAAC,wBAAwB,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBAC3E,CAAC;gBAED,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,OAAO,oBAAC,kCAAkC,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBACrF,CAAC;gBAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,OAAO,oBAAC,sBAAsB,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;gBACzE,CAAC;gBAED,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,oBAAC,UAAU,OAAG,CAAC,CAAC,CAAC,IAAI,CAC9B,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,uBAAuB,CAAC,KAAK,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { IIconProps } from "@gooddata/sdk-ui-kit";
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare const StopIcon: React.FC<IIconProps>;
7
+ //# sourceMappingURL=StopIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StopIcon.d.ts","sourceRoot":"","sources":["../../src/components/StopIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAazC,CAAC"}
@@ -0,0 +1,10 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ /**
4
+ * @internal
5
+ */
6
+ export const StopIcon = ({ color = "#6D7680", className, width = 12, height = 12 }) => {
7
+ return (React.createElement("svg", { className: className, width: width, height: height, viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
8
+ React.createElement("rect", { width: "12", height: "12", rx: "1.2", fill: color })));
9
+ };
10
+ //# sourceMappingURL=StopIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StopIcon.js","sourceRoot":"","sources":["../../src/components/StopIcon.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAyB,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE;IACxG,OAAO,CACH,6BACI,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B;QAElC,8BAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,KAAK,GAAI,CACnD,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import React from "react";
2
2
  type AgentStateIconProps = {
3
3
  loading?: boolean;
4
4
  error?: boolean;
5
+ cancelled?: boolean;
5
6
  };
6
7
  export declare const AgentIcon: React.FC<AgentStateIconProps>;
7
8
  export {};
@@ -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;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiEnD,CAAC"}
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,CAsEnD,CAAC"}
@@ -2,14 +2,15 @@
2
2
  import React from "react";
3
3
  import cx from "classnames";
4
4
  let INSTANCE_COUNTER = 0;
5
- export const AgentIcon = ({ loading = false, error = false }) => {
5
+ 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
9
  const className = cx("gd-gen-ai-chat__agent_icon", {
10
10
  "gd-gen-ai-chat__agent_icon--loading": loading,
11
- "gd-gen-ai-chat__agent_icon--appear": !loading,
12
- "gd-gen-ai-chat__agent_icon--error": error,
11
+ "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,
13
14
  });
14
15
  return (React.createElement("svg", { className: className, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
15
16
  React.createElement("g", { clipPath: `url(#clip_mask_${instanceId})` },
@@ -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;AAOzB,MAAM,CAAC,MAAM,SAAS,GAAkC,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,EAAE;IAC3F,sFAAsF;IACtF,sEAAsE;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,EAAE,CAAC,4BAA4B,EAAE;QAC/C,qCAAqC,EAAE,OAAO;QAC9C,oCAAoC,EAAE,CAAC,OAAO;QAC9C,mCAAmC,EAAE,KAAK;KAC7C,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,OAAO,CAAC,CAAC,CAAC,CACP,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"}
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;IAE/D,MAAM,SAAS,GAAG,EAAE,CAAC,4BAA4B,EAAE;QAC/C,qCAAqC,EAAE,OAAO;QAC9C,oCAAoC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;QACtE,mCAAmC,EAAE,CAAC,OAAO,IAAI,KAAK;QACtD,uCAAuC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,SAAS;KAC3E,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,OAAO,CAAC,CAAC,CAAC,CACP,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentState.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAS9B,CAAC"}
1
+ {"version":3,"file":"AgentState.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAS9B,CAAC"}
@@ -2,9 +2,11 @@
2
2
  import React from "react";
3
3
  import { AgentIcon } from "./AgentIcon.js";
4
4
  import { Typography } from "@gooddata/sdk-ui-kit";
5
+ import { FormattedMessage } from "react-intl";
5
6
  export const AgentState = () => {
6
7
  return (React.createElement("div", { className: "gd-gen-ai-chat__agent_state" },
7
8
  React.createElement(AgentIcon, { loading: true }),
8
- React.createElement(Typography, { className: "gd-gen-ai-chat__agent_state__status", tagName: "p" }, "Analyzing\u2026")));
9
+ React.createElement(Typography, { className: "gd-gen-ai-chat__agent_state__status", tagName: "p" },
10
+ React.createElement(FormattedMessage, { id: "gd.gen-ai.state.in-progress" }))));
9
11
  };
10
12
  //# sourceMappingURL=AgentState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentState.js","sourceRoot":"","sources":["../../../src/components/messages/AgentState.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAa,GAAG,EAAE;IACrC,OAAO,CACH,6BAAK,SAAS,EAAC,6BAA6B;QACxC,oBAAC,SAAS,IAAC,OAAO,SAAG;QACrB,oBAAC,UAAU,IAAC,SAAS,EAAC,qCAAqC,EAAC,OAAO,EAAC,GAAG,sBAE1D,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AgentState.js","sourceRoot":"","sources":["../../../src/components/messages/AgentState.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,UAAU,GAAa,GAAG,EAAE;IACrC,OAAO,CACH,6BAAK,SAAS,EAAC,6BAA6B;QACxC,oBAAC,SAAS,IAAC,OAAO,SAAG;QACrB,oBAAC,UAAU,IAAC,SAAS,EAAC,qCAAqC,EAAC,OAAO,EAAC,GAAG;YACnE,oBAAC,gBAAgB,IAAC,EAAE,EAAC,6BAA6B,GAAG,CAC5C,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { AssistantCancelledMessage } from "../../model.js";
3
+ type AssistantCancelledMessageProps = {
4
+ message: AssistantCancelledMessage;
5
+ };
6
+ export declare const AssistantCancelledMessageComponent: React.FC<AssistantCancelledMessageProps>;
7
+ export {};
8
+ //# sourceMappingURL=AssistantCancelledMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantCancelledMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantCancelledMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,KAAK,8BAA8B,GAAG;IAClC,OAAO,EAAE,yBAAyB,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CASvF,CAAC"}
@@ -0,0 +1,12 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ import { Typography } from "@gooddata/sdk-ui-kit";
4
+ import { AgentIcon } from "./AgentIcon.js";
5
+ import { FormattedMessage } from "react-intl";
6
+ export const AssistantCancelledMessageComponent = () => {
7
+ return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message gd-gen-ai-chat__messages__message--assistant gd-gen-ai-chat__messages__message--assistant--cancelled" },
8
+ React.createElement(AgentIcon, { cancelled: true }),
9
+ React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" },
10
+ React.createElement(FormattedMessage, { id: "gd.gen-ai.state.cancelled" }))));
11
+ };
12
+ //# sourceMappingURL=AssistantCancelledMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantCancelledMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantCancelledMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,CAAC,MAAM,kCAAkC,GAA6C,GAAG,EAAE;IAC7F,OAAO,CACH,6BAAK,SAAS,EAAC,wIAAwI;QACnJ,oBAAC,SAAS,IAAC,SAAS,SAAG;QACvB,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC;YAClE,oBAAC,gBAAgB,IAAC,EAAE,EAAC,2BAA2B,GAAG,CAC1C,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import React from "react";
2
2
  import { AssistantErrorMessage } from "../../model.js";
3
+ import { WrappedComponentProps } from "react-intl";
3
4
  type AssistantErrorMessageProps = {
4
5
  message: AssistantErrorMessage;
5
6
  };
6
- export declare const AssistantErrorMessageComponent: React.FC<AssistantErrorMessageProps>;
7
+ export declare const AssistantErrorMessageComponent: React.FC<import("react-intl").WithIntlProps<AssistantErrorMessageProps & WrappedComponentProps>> & {
8
+ WrappedComponent: React.ComponentType<AssistantErrorMessageProps & WrappedComponentProps>;
9
+ };
7
10
  export {};
8
11
  //# sourceMappingURL=AssistantErrorMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantErrorMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantErrorMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,KAAK,0BAA0B,GAAG;IAC9B,OAAO,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAS/E,CAAC"}
1
+ {"version":3,"file":"AssistantErrorMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantErrorMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/D,KAAK,0BAA0B,GAAG;IAC9B,OAAO,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAmBF,eAAO,MAAM,8BAA8B;;CAAkD,CAAC"}
@@ -2,9 +2,13 @@
2
2
  import React from "react";
3
3
  import { AgentIcon } from "./AgentIcon.js";
4
4
  import { Typography } from "@gooddata/sdk-ui-kit";
5
- export const AssistantErrorMessageComponent = ({ message }) => {
5
+ import { FoundObjects } from "./FoundObjects.js";
6
+ import { injectIntl } from "react-intl";
7
+ const AssistantErrorMessageInnerComponent = ({ message, intl, }) => {
6
8
  return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message gd-gen-ai-chat__messages__message--assistant gd-gen-ai-chat__messages__message--error" },
7
9
  React.createElement(AgentIcon, { error: true }),
8
- React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" }, message.content)));
10
+ React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" }, message.content.error ?? intl.formatMessage({ id: "gd.gen-ai.invalid-question" })),
11
+ React.createElement(FoundObjects, { foundObjects: message.content.foundObjects })));
9
12
  };
13
+ export const AssistantErrorMessageComponent = injectIntl(AssistantErrorMessageInnerComponent);
10
14
  //# sourceMappingURL=AssistantErrorMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantErrorMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantErrorMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,MAAM,CAAC,MAAM,8BAA8B,GAAyC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAChG,OAAO,CACH,6BAAK,SAAS,EAAC,yHAAyH;QACpI,oBAAC,SAAS,IAAC,KAAK,SAAG;QACnB,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC,IACjE,OAAO,CAAC,OAAO,CACP,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantErrorMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantErrorMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAyB,MAAM,YAAY,CAAC;AAM/D,MAAM,mCAAmC,GAAiE,CAAC,EACvG,OAAO,EACP,IAAI,GACP,EAAE,EAAE;IACD,OAAO,CACH,6BAAK,SAAS,EAAC,yHAAyH;QACpI,oBAAC,SAAS,IAAC,KAAK,SAAG;QACnB,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC,IACjE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,CAAC,CACzE;QAGb,oBAAC,YAAY,IAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,GAAI,CAC1D,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,CAAC,mCAAmC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantSearchCreateMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantSearchCreateMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAK9D,KAAK,iCAAiC,GAAG;IACrC,OAAO,EAAE,4BAA4B,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAsB7F,CAAC"}
1
+ {"version":3,"file":"AssistantSearchCreateMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantSearchCreateMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAM9D,KAAK,iCAAiC,GAAG;IACrC,OAAO,EAAE,4BAA4B,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAuB7F,CAAC"}
@@ -3,12 +3,14 @@ import React from "react";
3
3
  import { AgentIcon } from "./AgentIcon.js";
4
4
  import { Typography } from "@gooddata/sdk-ui-kit";
5
5
  import { Visualization } from "./Visualization.js";
6
+ import { FoundObjects } from "./FoundObjects.js";
6
7
  export const AssistantSearchCreateMessageComponent = ({ message, }) => {
7
8
  const firstVisualization = message.content.createdVisualizations?.objects?.[0];
8
9
  return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message gd-gen-ai-chat__messages__message--assistant" },
9
10
  React.createElement(AgentIcon, null),
10
11
  React.createElement("div", { className: "gd-gen-ai-chat__messages__contents" },
11
12
  message.content.createdVisualizations?.reasoning ? (React.createElement(Typography, { tagName: "p" }, message.content.createdVisualizations.reasoning)) : null,
12
- firstVisualization ? React.createElement(Visualization, { definition: firstVisualization }) : null)));
13
+ firstVisualization ? React.createElement(Visualization, { definition: firstVisualization }) : null,
14
+ React.createElement(FoundObjects, { foundObjects: message.content.foundObjects }))));
13
15
  };
14
16
  //# sourceMappingURL=AssistantSearchCreateMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantSearchCreateMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantSearchCreateMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,CAAC,MAAM,qCAAqC,GAAgD,CAAC,EAC/F,OAAO,GACV,EAAE,EAAE;IACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,CACH,6BAAK,SAAS,EAAC,gFAAgF;QAC3F,oBAAC,SAAS,OAAG;QAEb,6BAAK,SAAS,EAAC,oCAAoC;YAE9C,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,CAChD,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAc,CACzF,CAAC,CAAC,CAAC,IAAI;YAGP,kBAAkB,CAAC,CAAC,CAAC,oBAAC,aAAa,IAAC,UAAU,EAAE,kBAAkB,GAAI,CAAC,CAAC,CAAC,IAAI,CAG5E,CACJ,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantSearchCreateMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantSearchCreateMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,CAAC,MAAM,qCAAqC,GAAgD,CAAC,EAC/F,OAAO,GACV,EAAE,EAAE;IACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,CACH,6BAAK,SAAS,EAAC,gFAAgF;QAC3F,oBAAC,SAAS,OAAG;QAEb,6BAAK,SAAS,EAAC,oCAAoC;YAE9C,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,CAChD,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAc,CACzF,CAAC,CAAC,CAAC,IAAI;YAGP,kBAAkB,CAAC,CAAC,CAAC,oBAAC,aAAa,IAAC,UAAU,EAAE,kBAAkB,GAAI,CAAC,CAAC,CAAC,IAAI;YAG9E,oBAAC,YAAY,IAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,GAAI,CAC1D,CACJ,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -5,6 +5,6 @@ import { Typography } from "@gooddata/sdk-ui-kit";
5
5
  export const AssistantTextMessageComponent = ({ message }) => {
6
6
  return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message gd-gen-ai-chat__messages__message--assistant" },
7
7
  React.createElement(AgentIcon, null),
8
- React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" }, message.content)));
8
+ React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" }, message.content.text)));
9
9
  };
10
10
  //# sourceMappingURL=AssistantTextMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantTextMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantTextMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,MAAM,CAAC,MAAM,6BAA6B,GAAwC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9F,OAAO,CACH,6BAAK,SAAS,EAAC,gFAAgF;QAC3F,oBAAC,SAAS,OAAG;QACb,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC,IACjE,OAAO,CAAC,OAAO,CACP,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantTextMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantTextMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,MAAM,CAAC,MAAM,6BAA6B,GAAwC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9F,OAAO,CACH,6BAAK,SAAS,EAAC,gFAAgF;QAC3F,oBAAC,SAAS,OAAG;QACb,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC,IACjE,OAAO,CAAC,OAAO,CAAC,IAAI,CACZ,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { GenAIChatFoundObjects } from "@gooddata/sdk-model";
3
+ type FoundObjectsProps = {
4
+ foundObjects?: GenAIChatFoundObjects;
5
+ };
6
+ export declare const FoundObjects: React.FC<FoundObjectsProps>;
7
+ export {};
8
+ //# sourceMappingURL=FoundObjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoundObjects.d.ts","sourceRoot":"","sources":["../../../src/components/messages/FoundObjects.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAA6B,MAAM,qBAAqB,CAAC;AAEvF,KAAK,iBAAiB,GAAG;IACrB,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACxC,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsBpD,CAAC"}
@@ -0,0 +1,28 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ import { Hyperlink, Typography } from "@gooddata/sdk-ui-kit";
4
+ const SUPPORTED_OBJECT_TYPES = ["visualization", "dashboard"];
5
+ export const FoundObjects = ({ foundObjects }) => {
6
+ const first5FoundObjects = React.useMemo(() => {
7
+ return foundObjects?.objects?.filter((obj) => SUPPORTED_OBJECT_TYPES.includes(obj.type)).slice(0, 5);
8
+ }, [foundObjects?.objects]);
9
+ const foundObjectsReasoning = foundObjects?.reasoning;
10
+ if (!first5FoundObjects) {
11
+ return null;
12
+ }
13
+ return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message__found_objects" },
14
+ React.createElement(Typography, { tagName: "p" }, foundObjectsReasoning),
15
+ React.createElement("ul", null, first5FoundObjects.map((obj) => (React.createElement("li", { key: obj.id },
16
+ React.createElement(Hyperlink, { href: getFoundObjectLink(obj), text: obj.title })))))));
17
+ };
18
+ const getFoundObjectLink = (obj) => {
19
+ switch (obj.type) {
20
+ case "visualization":
21
+ return `/analyze/#/${obj.workspaceId}/${obj.id}/edit`;
22
+ case "dashboard":
23
+ return `/dashboards/#/workspace/${obj.workspaceId}/dashboard/${obj.id}`;
24
+ default:
25
+ throw new Error(`Unsupported object type ${obj.type}`);
26
+ }
27
+ };
28
+ //# sourceMappingURL=FoundObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoundObjects.js","sourceRoot":"","sources":["../../../src/components/messages/FoundObjects.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAO7D,MAAM,sBAAsB,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IAC1E,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,OAAO,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5B,MAAM,qBAAqB,GAAG,YAAY,EAAE,SAAS,CAAC;IAEtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,6BAAK,SAAS,EAAC,kDAAkD;QAC7D,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,qBAAqB,CAAc;QAC5D,gCACK,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC7B,4BAAI,GAAG,EAAE,GAAG,CAAC,EAAE;YACX,oBAAC,SAAS,IAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,GAAI,CAC5D,CACR,CAAC,CACD,CACH,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAA8B,EAAE,EAAE;IAC1D,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,eAAe;YAChB,OAAO,cAAc,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;QAC1D,KAAK,WAAW;YACZ,OAAO,2BAA2B,GAAG,CAAC,WAAW,cAAc,GAAG,CAAC,EAAE,EAAE,CAAC;QAC5E;YACI,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC,CAAC"}
@@ -2,6 +2,6 @@
2
2
  import React from "react";
3
3
  export const SystemMessageComponent = ({ message }) => {
4
4
  return (React.createElement("div", { className: "gd-gen-ai-chat__messages__message mgd-gen-ai-chat__messages__message--system" },
5
- React.createElement("div", { className: "gd-gen-ai-chat__messages__contents" }, message.content)));
5
+ React.createElement("div", { className: "gd-gen-ai-chat__messages__contents" }, message.content.text)));
6
6
  };
7
7
  //# sourceMappingURL=SystemMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../../../src/components/messages/SystemMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,MAAM,sBAAsB,GAAiC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAChF,OAAO,CACH,6BAAK,SAAS,EAAC,8EAA8E;QACzF,6BAAK,SAAS,EAAC,oCAAoC,IAAE,OAAO,CAAC,OAAO,CAAO,CACzE,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../../../src/components/messages/SystemMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,MAAM,sBAAsB,GAAiC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAChF,OAAO,CACH,6BAAK,SAAS,EAAC,8EAA8E;QACzF,6BAAK,SAAS,EAAC,oCAAoC,IAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAO,CAC9E,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { UserTextMessage } from "../../model.js";
3
+ type UserTextMessageProps = {
4
+ message: UserTextMessage;
5
+ };
6
+ export declare const UserTextMessageComponent: React.FC<UserTextMessageProps>;
7
+ export {};
8
+ //# sourceMappingURL=UserTextMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserTextMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserTextMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,KAAK,oBAAoB,GAAG;IACxB,OAAO,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAcnE,CAAC"}
@@ -0,0 +1,10 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ import { Typography } from "@gooddata/sdk-ui-kit";
4
+ import cx from "classnames";
5
+ export const UserTextMessageComponent = ({ message }) => {
6
+ const classNames = cx("gd-gen-ai-chat__messages__message", "gd-gen-ai-chat__messages__message--user", message.content.cancelled && "gd-gen-ai-chat__messages__message--user--cancelled");
7
+ return (React.createElement("div", { className: classNames },
8
+ React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__contents" }, message.content.text)));
9
+ };
10
+ //# sourceMappingURL=UserTextMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserTextMessage.js","sourceRoot":"","sources":["../../../src/components/messages/UserTextMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,YAAY,CAAC;AAM5B,MAAM,CAAC,MAAM,wBAAwB,GAAmC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACpF,MAAM,UAAU,GAAG,EAAE,CACjB,mCAAmC,EACnC,yCAAyC,EACzC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,oDAAoD,CACpF,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU;QACtB,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,EAAC,SAAS,EAAC,oCAAoC,IACjE,OAAO,CAAC,OAAO,CAAC,IAAI,CACZ,CACX,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Visualization.d.ts","sourceRoot":"","sources":["../../../src/components/messages/Visualization.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAKpE,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CActD,CAAC"}
1
+ {"version":3,"file":"Visualization.d.ts","sourceRoot":"","sources":["../../../src/components/messages/Visualization.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAMpE,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuEtD,CAAC"}
@@ -1,12 +1,39 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import React from "react";
3
+ import { BarChart, ColumnChart, Headline, LineChart, PieChart } from "@gooddata/sdk-ui-charts";
4
+ import { PivotTable } from "@gooddata/sdk-ui-pivot";
3
5
  import { Typography } from "@gooddata/sdk-ui-kit";
4
- import { BaseChart } from "@gooddata/sdk-ui-charts";
5
6
  import { useExecution } from "./useExecution.js";
6
7
  export const Visualization = ({ definition }) => {
7
- const execution = useExecution(definition);
8
+ const { metrics, dimensions } = useExecution(definition);
8
9
  return (React.createElement("div", { className: "gd-gen-ai-chat__messages__visualization" },
9
- React.createElement(BaseChart, { height: 300, width: 400, type: definition.visualizationType.toLowerCase(), execution: execution }),
10
- React.createElement(Typography, { tagName: "p" }, definition.title)));
10
+ React.createElement("div", { className: "gd-gen-ai-chat__messages__visualization__wrapper" }, (() => {
11
+ switch (definition.visualizationType) {
12
+ case "BAR":
13
+ return (React.createElement(BarChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
14
+ // Better visibility with stacked bars if there are multiple metrics and dimensions
15
+ stackMeasures: metrics.length > 1 && dimensions.length === 2,
16
+ } }));
17
+ case "COLUMN":
18
+ return (React.createElement(ColumnChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
19
+ // Better visibility with stacked bars if there are multiple metrics and dimensions
20
+ stackMeasures: metrics.length > 1 && dimensions.length === 2,
21
+ } }));
22
+ case "LINE":
23
+ return (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined }));
24
+ case "PIE":
25
+ return (React.createElement(PieChart, { height: 300, measures: metrics, viewBy: metrics.length <= 1 ? dimensions[0] : undefined }));
26
+ case "TABLE":
27
+ return React.createElement(PivotTable, { measures: metrics, rows: dimensions });
28
+ case "HEADLINE":
29
+ return (React.createElement(Headline, { height: 300, primaryMeasure: metrics[0], secondaryMeasures: [metrics[1], metrics[2]].filter(Boolean) }));
30
+ default:
31
+ return assertNever(definition.visualizationType);
32
+ }
33
+ })()),
34
+ React.createElement(Typography, { tagName: "p", className: "gd-gen-ai-chat__messages__visualization__title" }, definition.title)));
35
+ };
36
+ const assertNever = (value) => {
37
+ throw new Error("Unknown visualization type: " + value);
11
38
  };
12
39
  //# sourceMappingURL=Visualization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Visualization.js","sourceRoot":"","sources":["../../../src/components/messages/Visualization.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IAC1E,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE3C,OAAO,CACH,6BAAK,SAAS,EAAC,yCAAyC;QACpD,oBAAC,SAAS,IACN,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,WAAW,EAAe,EAC7D,SAAS,EAAE,SAAS,GACtB;QACF,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG,IAAE,UAAU,CAAC,KAAK,CAAc,CACrD,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"Visualization.js","sourceRoot":"","sources":["../../../src/components/messages/Visualization.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export * from "./UserMessage.js";
1
+ export * from "./UserTextMessage.js";
2
+ export * from "./AssistantCancelledMessage.js";
2
3
  export * from "./SystemMessage.js";
3
4
  export * from "./AssistantTextMessage.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/messages/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/messages/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // (C) 2024 GoodData Corporation
2
- export * from "./UserMessage.js";
2
+ export * from "./UserTextMessage.js";
3
+ export * from "./AssistantCancelledMessage.js";
3
4
  export * from "./SystemMessage.js";
4
5
  export * from "./AssistantTextMessage.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/messages/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/messages/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -1,3 +1,6 @@
1
1
  import { GenAIChatCreatedVisualization } from "@gooddata/sdk-model";
2
- export declare const useExecution: (vis: GenAIChatCreatedVisualization) => import("@gooddata/sdk-backend-spi").IPreparedExecution;
2
+ export declare const useExecution: (vis: GenAIChatCreatedVisualization) => {
3
+ metrics: import("@gooddata/sdk-model").IMeasure<import("@gooddata/sdk-model").IMeasureDefinition>[];
4
+ dimensions: import("@gooddata/sdk-model").IAttribute[];
5
+ };
3
6
  //# sourceMappingURL=useExecution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../src/components/messages/useExecution.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,6BAA6B,EAOhC,MAAM,qBAAqB,CAAC;AAG7B,eAAO,MAAM,YAAY,QAAS,6BAA6B,2DA2B9D,CAAC"}
1
+ {"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../src/components/messages/useExecution.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,6BAA6B,EAKhC,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,YAAY,QAAS,6BAA6B;;;CAqB9D,CAAC"}
@@ -1,29 +1,23 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import React from "react";
3
- import { idRef, MeasureGroupIdentifier, newAttribute, newMeasure, newTwoDimensional, } from "@gooddata/sdk-model";
4
- import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
3
+ import { idRef, newAttribute, newMeasure, } from "@gooddata/sdk-model";
5
4
  export const useExecution = (vis) => {
6
- const backend = useBackendStrict();
7
- const workspace = useWorkspaceStrict();
8
5
  return React.useMemo(() => {
9
- const attributes = vis.dimensionality.map((d) => newAttribute(d.id));
10
- return backend
11
- .workspace(workspace)
12
- .execution()
13
- .forItems([
14
- ...vis.metrics.map((mf) => {
15
- switch (mf.type) {
16
- case "fact":
17
- return newMeasure(mf.id, (m) => m.aggregation(mf.aggFunction.toLowerCase()));
18
- case "metric":
19
- return newMeasure(idRef(mf.id, "measure"));
20
- case "attribute":
21
- return newMeasure(mf.id, (m) => m.aggregation("count"));
22
- }
23
- }),
24
- ...attributes,
25
- ])
26
- .withDimensions(...newTwoDimensional(attributes, [MeasureGroupIdentifier]));
27
- }, [backend, workspace, vis]);
6
+ const dimensions = vis.dimensionality.map((d) => newAttribute(d.id));
7
+ const metrics = vis.metrics.map((mf) => {
8
+ switch (mf.type) {
9
+ case "fact":
10
+ return newMeasure(idRef(mf.id, "fact"), (m) => m.aggregation(mf.aggFunction.toLowerCase()));
11
+ case "metric":
12
+ return newMeasure(idRef(mf.id, "measure"));
13
+ case "attribute":
14
+ return newMeasure(idRef(mf.id, "attribute"), (m) => m.aggregation("count"));
15
+ }
16
+ });
17
+ return {
18
+ metrics,
19
+ dimensions,
20
+ };
21
+ }, [vis]);
28
22
  };
29
23
  //# sourceMappingURL=useExecution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../src/components/messages/useExecution.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEH,KAAK,EAEL,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAkC,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IAEvC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErE,OAAO,OAAO;aACT,SAAS,CAAC,SAAS,CAAC;aACpB,SAAS,EAAE;aACX,QAAQ,CAAC;YACN,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACd,KAAK,MAAM;wBACP,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3B,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAwB,CAAC,CACpE,CAAC;oBACN,KAAK,QAAQ;wBACT,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC/C,KAAK,WAAW;wBACZ,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC,CAAC;YACF,GAAG,UAAU;SAChB,CAAC;aACD,cAAc,CAAC,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../src/components/messages/useExecution.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEH,KAAK,EAEL,YAAY,EACZ,UAAU,GACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAkC,EAAE,EAAE;IAC/D,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,MAAM;oBACP,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1C,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAwB,CAAC,CACpE,CAAC;gBACN,KAAK,QAAQ;oBACT,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/C,KAAK,WAAW;oBACZ,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,OAAO;YACP,UAAU;SACb,CAAC;IACN,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACd,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
2
  import { Message } from "../model.js";
3
- export declare const useGenAIStore: (backend?: IAnalyticalBackend, workspace?: string, history?: Message[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
3
+ export declare const useGenAIStore: (backend: IAnalyticalBackend, workspace: string, history?: Message[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
4
4
  messages: {
5
5
  messageOrder: string[];
6
6
  messages: Record<string, Message>;
@@ -1 +1 @@
1
- {"version":3,"file":"useGenAIStore.d.ts","sourceRoot":"","sources":["../../src/hooks/useGenAIStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,aAAa,aAAc,kBAAkB,cAAc,MAAM,YAAY,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;2CAUlG,CAAC"}
1
+ {"version":3,"file":"useGenAIStore.d.ts","sourceRoot":"","sources":["../../src/hooks/useGenAIStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,aAAa,YAAa,kBAAkB,aAAa,MAAM,YAAY,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;2CAQhG,CAAC"}
@@ -1,15 +1,12 @@
1
1
  // (C) 2024 GoodData Corporation
2
- import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
3
2
  import React from "react";
4
3
  import { getStore } from "../store/index.js";
5
4
  export const useGenAIStore = (backend, workspace, history) => {
6
- const effectiveBackend = useBackendStrict(backend);
7
- const effectiveWorkspace = useWorkspaceStrict(workspace);
8
5
  const initialHistory = React.useRef(history ?? []);
9
6
  // Initialize new Redux Store for each instance of GenAI Chat
10
7
  // It OK to discard the store when backend or workspace changes
11
8
  return React.useMemo(() => {
12
- return getStore(effectiveBackend, effectiveWorkspace, initialHistory.current);
13
- }, [effectiveBackend, effectiveWorkspace]);
9
+ return getStore(backend, workspace, initialHistory.current);
10
+ }, [backend, workspace]);
14
11
  };
15
12
  //# sourceMappingURL=useGenAIStore.js.map