@gooddata/sdk-ui-gen-ai 11.57.0-alpha.1 → 11.57.0-alpha.3

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 (41) hide show
  1. package/NOTICE +5 -5
  2. package/esm/components/Input.d.ts.map +1 -1
  3. package/esm/components/Input.js +7 -4
  4. package/esm/components/intelligence/panel/IntelligenceFooter.d.ts.map +1 -1
  5. package/esm/components/intelligence/panel/IntelligenceFooter.js +1 -1
  6. package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -1
  7. package/esm/components/messages/contents/CustomHyperlink.js +15 -6
  8. package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
  9. package/esm/components/messages/conversationContents/ConversationVisualisation.js +87 -4
  10. package/esm/components/utils/markdownUtils.d.ts.map +1 -1
  11. package/esm/components/utils/markdownUtils.js +4 -2
  12. package/esm/context.js +1 -1
  13. package/esm/index.js +1 -1
  14. package/esm/internal.js +1 -1
  15. package/esm/localization/bundles/zh-HK.localization-bundle.js +18 -18
  16. package/esm/store/chatWindow/chatWindowSelectors.d.ts +1 -0
  17. package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -1
  18. package/esm/store/chatWindow/chatWindowSelectors.js +1 -0
  19. package/esm/store/chatWindow/chatWindowSlice.d.ts +7 -1
  20. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
  21. package/esm/store/chatWindow/chatWindowSlice.js +13 -3
  22. package/esm/store/localStorage.d.ts +2 -0
  23. package/esm/store/localStorage.d.ts.map +1 -1
  24. package/esm/store/localStorage.js +25 -0
  25. package/esm/store/sideEffects/conversationSession.d.ts +20 -0
  26. package/esm/store/sideEffects/conversationSession.d.ts.map +1 -0
  27. package/esm/store/sideEffects/conversationSession.js +40 -0
  28. package/esm/store/sideEffects/index.d.ts.map +1 -1
  29. package/esm/store/sideEffects/index.js +3 -1
  30. package/esm/store/sideEffects/onChatOpenSync.d.ts +3 -0
  31. package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -1
  32. package/esm/store/sideEffects/onChatOpenSync.js +14 -5
  33. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
  34. package/esm/store/sideEffects/onThreadLoad.js +11 -0
  35. package/esm/store/sideEffects/onVisualizationSave.d.ts +2 -4
  36. package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -1
  37. package/package.json +23 -22
  38. package/styles/css/conversations.css +3 -3
  39. package/styles/css/main.css +26 -18
  40. package/styles/css/main.css.map +1 -1
  41. package/styles/css/messages.css +3 -3
package/NOTICE CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
9
9
 
10
- Date generated: 2026-9-10
10
+ Date generated: 2026-9-14
11
11
 
12
- Revision ID: 134c47a0c4df31513dbb70f1253bfcf3a9a37ca9
12
+ Revision ID: 2ddc75aa28e022016649b61c0188b349322c1327
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -43212,7 +43212,7 @@ MIT
43212
43212
 
43213
43213
  Authors: richiebendall@gmail.com
43214
43214
  Package Manager: NPM
43215
- Project URL: https://www.npmjs.com/package/char-regex
43215
+ Project URL: https://github.com/Richienb/char-regex#readme
43216
43216
  Package Download URL: https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz
43217
43217
  Dependency Path: remark-emoji > node-emoji > char-regex
43218
43218
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -48198,7 +48198,7 @@ MIT
48198
48198
 
48199
48199
  Authors: tituswormer@gmail.com
48200
48200
  Package Manager: NPM
48201
- Project URL: https://www.npmjs.com/package/micromark-extension-gfm-table
48201
+ Project URL: https://github.com/micromark/micromark-extension-gfm-table#readme
48202
48202
  Package Download URL: https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz
48203
48203
  Dependency Path: remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table
48204
48204
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -64353,4 +64353,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
64353
64353
  --------------------------------------------------------------------------------
64354
64354
  --------------------------------------------------------------------------------
64355
64355
 
64356
- Report Generated by FOSSA on 2026-9-10
64356
+ Report Generated by FOSSA on 2026-9-14
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAsD,MAAM,OAAO,CAAC;AAuCpG,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AA6KF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,aAAa,CAAkB,CAAC"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAsD,MAAM,OAAO,CAAC;AA2CpG,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AA+KF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,aAAa,CAAkB,CAAC"}
@@ -6,7 +6,8 @@ import { FormattedMessage, defineMessages, useIntl } from "react-intl";
6
6
  import { useDispatch, useSelector } from "react-redux";
7
7
  import { SyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
8
8
  import { makeTextContents, makeUserItem, makeUserMessage, } from "../model.js";
9
- import { agentSwitchingEnabledSelector } from "../store/chatWindow/chatWindowSelectors.js";
9
+ import { agentSwitchingEnabledSelector, inputValueSelector, } from "../store/chatWindow/chatWindowSelectors.js";
10
+ import { setInputValueAction } from "../store/chatWindow/chatWindowSlice.js";
10
11
  import { asyncProcessSelector, conversationMessagesSelector, conversationSelector, conversationsLoadedSelector, messagesSelector, refocusSelector, } from "../store/messages/messagesSelectors.js";
11
12
  import { newMessageAction } from "../store/messages/messagesSlice.js";
12
13
  import { isClarificationQuestionsItem } from "../utils.js";
@@ -48,7 +49,7 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
48
49
  const isLoading = loading === "loading" || loading === "clearing";
49
50
  const isAssistantLoading = isLoading || loading === "restoring";
50
51
  const isEmpty = conversation ? !items?.length && !isLoading : !messages?.length && !isLoading;
51
- const [value, setValue] = useState("");
52
+ const value = useSelector((state) => inputValueSelector(state));
52
53
  const [areAgentsBusy, setAreAgentsBusy] = useState(true);
53
54
  const [hasNoAgents, setHasNoAgents] = useState(false);
54
55
  const [editorApi, setApi] = useState(null);
@@ -77,7 +78,7 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
77
78
  ]);
78
79
  }
79
80
  dispatch(newMessageAction(item));
80
- setValue("");
81
+ dispatch(setInputValueAction({ value: "" }));
81
82
  };
82
83
  const handleKeyDown = (e) => {
83
84
  if (e.key === "Enter" && !e.shiftKey) {
@@ -120,7 +121,9 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
120
121
  aboveCursor: true,
121
122
  whenTyping: true,
122
123
  whenTypingDelay: 300,
123
- }, beforeExtensions: beforeExtensions, extensions: extensions, onApi: setApi, onChange: setValue, onFocus: () => {
124
+ }, beforeExtensions: beforeExtensions, extensions: extensions, onApi: setApi, onChange: (value) => {
125
+ dispatch(setInputValueAction({ value }));
126
+ }, onFocus: () => {
124
127
  setFocused(true);
125
128
  }, onBlur: () => {
126
129
  setFocused(false);
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligenceFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/panel/IntelligenceFooter.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,2CAuBvE"}
1
+ {"version":3,"file":"IntelligenceFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/panel/IntelligenceFooter.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,2CAsBvE"}
@@ -14,5 +14,5 @@ export function IntelligenceFooter({ traceId }) {
14
14
  id: "gd.gen-ai.interactionIntelligence.footer.traceId.tooltip",
15
15
  });
16
16
  const label = intl.formatMessage({ id: "gd.gen-ai.interactionIntelligence.footer.traceId.label" });
17
- return (_jsxs("div", { className: e("footer"), children: [_jsx(UiTooltip, { triggerBy: ["hover", "focus"], arrowPlacement: "top", width: 260, anchor: _jsx("span", { className: e("footer__hint"), tabIndex: 0, children: label }), content: tooltipText }), _jsx("span", { className: e("footer__trace-id"), children: traceId })] }));
17
+ return (_jsxs("div", { className: e("footer"), children: [_jsx(UiTooltip, { triggerBy: ["hover", "focus"], arrowPlacement: "top", anchor: _jsx("span", { className: e("footer__hint"), tabIndex: 0, children: label }), content: tooltipText }), _jsx("span", { className: e("footer__trace-id"), children: traceId })] }));
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDA4FtF;AAyBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
1
+ {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDAmGtF;AAyBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
@@ -4,6 +4,7 @@ import { useMemo } from "react";
4
4
  import { useSelector } from "react-redux";
5
5
  import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
6
6
  import { useConfig } from "../../ConfigContext.js";
7
+ import { removeMarkdown } from "../../utils/markdownUtils.js";
7
8
  /**
8
9
  * Similar to SDK Hyperlink, but can handle customer schemas
9
10
  * used for links management
@@ -14,11 +15,19 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
14
15
  const enableShellApplication_dashboards = Boolean(settings?.enableShellApplication_dashboards);
15
16
  const canManageMetrics = canManage || canAnalyze;
16
17
  const canManageVisualisations = canManage || canAnalyze;
18
+ const plainText = removeMarkdown(text);
17
19
  const parsedRef = useMemo(() => {
18
20
  if (!href) {
19
21
  return null;
20
22
  }
21
- const url = new URL(href);
23
+ let url;
24
+ try {
25
+ const decodedHref = decodeURIComponent(href);
26
+ url = new URL(decodedHref);
27
+ }
28
+ catch {
29
+ return null;
30
+ }
22
31
  if (url.protocol !== "gooddata:") {
23
32
  return null;
24
33
  }
@@ -40,7 +49,7 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
40
49
  };
41
50
  }, [href, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards]);
42
51
  if (!parsedRef) {
43
- return text;
52
+ return plainText;
44
53
  }
45
54
  const handleLinkClick = (e) => {
46
55
  if (!linkHandler) {
@@ -59,17 +68,17 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
59
68
  // If the link is for a metric and the user cannot manage metrics,
60
69
  // we do not render the link
61
70
  if (parsedRef.type === "metric" && !canManageMetrics) {
62
- return text;
71
+ return plainText;
63
72
  }
64
73
  // If the link is for a visualization and the user cannot manage visualizations,
65
74
  // we do not render the link
66
75
  if (parsedRef.type === "visualization" && !canManageVisualisations) {
67
- return text;
76
+ return plainText;
68
77
  }
69
78
  if (allowNativeLinks) {
70
- return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: text }) }));
79
+ return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
71
80
  }
72
- return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: text }) }));
81
+ return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
73
82
  }
74
83
  const getItemUrl = (workspaceId, id, objectType, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards) => {
75
84
  switch (objectType) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAyBpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CA+PhC"}
1
+ {"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAgCpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CAyUhC"}
@@ -4,7 +4,7 @@ import { useCallback, useMemo } from "react";
4
4
  import { useIntl } from "react-intl";
5
5
  import { useDispatch } from "react-redux";
6
6
  import { isAttribute, isMeasure, } from "@gooddata/sdk-model";
7
- import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot } from "@gooddata/sdk-ui-charts";
7
+ import { AreaChart, BarChart, ColumnChart, DonutChart, FunnelChart, Headline, Heatmap, LineChart, PieChart, PyramidChart, RadarChart, ScatterPlot, WaterfallChart, } from "@gooddata/sdk-ui-charts";
8
8
  import { getKdaKeyDriverCombinations, } from "@gooddata/sdk-ui-dashboard";
9
9
  import { PivotTable } from "@gooddata/sdk-ui-pivot";
10
10
  import { PivotTableNext, useAgGridToken } from "@gooddata/sdk-ui-pivot/next";
@@ -28,6 +28,12 @@ const legendTooltipOptions = {
28
28
  responsive: "autoPositionWithPopup",
29
29
  },
30
30
  };
31
+ const SLICED_CHARTS = {
32
+ "local:pie": PieChart,
33
+ "local:donut": DonutChart,
34
+ "local:pyramid": PyramidChart,
35
+ "local:funnel": FunnelChart,
36
+ };
31
37
  export function ConversationVisualisation({ message, colorPalette, separators, visualization, execConfig, agGridToken, isTable, onVisualisationError, onDrillFired, enableDrilling = true, enableChangeAnalysis = false, enableSecondGranularities = false, enableNewPivotTable = true, enableAccessibleChartTooltip = false, }) {
32
38
  const intl = useIntl();
33
39
  const dispatch = useDispatch();
@@ -114,6 +120,13 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
114
120
  });
115
121
  }
116
122
  switch (visualization.insight.visualizationUrl) {
123
+ case "local:area":
124
+ return renderAreaChart(intl.locale, visualization, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
125
+ drillableItems,
126
+ enableAccessibleChartTooltip,
127
+ execConfig,
128
+ separators,
129
+ });
117
130
  case "local:bar":
118
131
  return renderBarChart(intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
119
132
  enableChangeAnalysis,
@@ -138,7 +151,10 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
138
151
  separators,
139
152
  });
140
153
  case "local:pie":
141
- return renderPieChart(intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
154
+ case "local:donut":
155
+ case "local:pyramid":
156
+ case "local:funnel":
157
+ return renderSlicedChart(SLICED_CHARTS[visualization.insight.visualizationUrl], intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
142
158
  drillableItems,
143
159
  enableChangeAnalysis,
144
160
  enableAccessibleChartTooltip,
@@ -162,6 +178,27 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
162
178
  execConfig,
163
179
  separators,
164
180
  });
181
+ case "local:radar":
182
+ return renderRadarChart(intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
183
+ drillableItems,
184
+ enableAccessibleChartTooltip,
185
+ execConfig,
186
+ separators,
187
+ });
188
+ case "local:heatmap":
189
+ return renderHeatmap(intl.locale, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
190
+ drillableItems,
191
+ enableAccessibleChartTooltip,
192
+ execConfig,
193
+ separators,
194
+ });
195
+ case "local:waterfall":
196
+ return renderWaterfallChart(intl.locale, visualization, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
197
+ drillableItems,
198
+ enableAccessibleChartTooltip,
199
+ execConfig,
200
+ separators,
201
+ });
165
202
  case "local:headline":
166
203
  return renderHeadline(intl.locale, kpiTheme, bucketsData, filters, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
167
204
  drillableItems,
@@ -186,6 +223,19 @@ function useKpiTheme() {
186
223
  },
187
224
  }), [theme]);
188
225
  }
226
+ const renderAreaChart = (locale, visualization, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
227
+ const { metrics, view, stack } = buckets;
228
+ const controls = visualization.insight.properties["controls"];
229
+ return (_jsx(AreaChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view, stackBy: stack[0], filters: filters, sortBy: sortBy, config: {
230
+ ...visualizationTooltipOptions,
231
+ ...legendTooltipOptions,
232
+ colorPalette,
233
+ separators: props.separators,
234
+ enableAccessibleTooltip: props.enableAccessibleChartTooltip,
235
+ stackMeasures: controls?.["stackMeasures"],
236
+ stackMeasuresToPercent: controls?.["stackMeasuresToPercent"],
237
+ }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
238
+ };
189
239
  const renderBarChart = (locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
190
240
  const { metrics, view, stack } = buckets;
191
241
  return (_jsx(BarChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], stackBy: stack[0], sortBy: sortBy, config: {
@@ -226,10 +276,11 @@ const renderLineChart = (locale, visualization, buckets, filters, sortBy, colorP
226
276
  ...(outliersConfig && anomalies ? { anomalies } : {}),
227
277
  }, forecastConfig: forecastConfig, outliersConfig: outliersConfig, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
228
278
  };
229
- const renderPieChart = (locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
279
+ const renderSlicedChart = (Chart, locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
230
280
  const { metrics, view } = buckets;
231
- return (_jsx(PieChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], filters: filters, sortBy: sortBy, config: {
281
+ return (_jsx(Chart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], filters: filters, sortBy: sortBy, config: {
232
282
  ...visualizationTooltipOptions,
283
+ ...legendTooltipOptions,
233
284
  colorPalette,
234
285
  separators: props.separators,
235
286
  enableAccessibleTooltip: props.enableAccessibleChartTooltip,
@@ -248,6 +299,38 @@ const renderScatterPlot = (locale, visualization, buckets, filters, sortBy, colo
248
299
  ...(clusteringConfig && clustering ? { clustering } : {}),
249
300
  }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
250
301
  };
302
+ const renderRadarChart = (locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
303
+ const { metrics, trend, segment } = buckets;
304
+ return (_jsx(RadarChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, trendBy: trend[0], segmentBy: segment[0], filters: filters, sortBy: sortBy, config: {
305
+ ...visualizationTooltipOptions,
306
+ ...legendTooltipOptions,
307
+ colorPalette,
308
+ separators: props.separators,
309
+ enableAccessibleTooltip: props.enableAccessibleChartTooltip,
310
+ }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
311
+ };
312
+ const renderHeatmap = (locale, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
313
+ const { metrics, view, stack } = buckets;
314
+ return (_jsx(Heatmap, { locale: locale, height: VIS_HEIGHT, measure: metrics[0], rows: view[0], columns: stack[0], filters: filters, sortBy: sortBy.length ? sortBy : undefined, config: {
315
+ ...visualizationTooltipOptions,
316
+ ...legendTooltipOptions,
317
+ colorPalette,
318
+ separators: props.separators,
319
+ enableAccessibleTooltip: props.enableAccessibleChartTooltip,
320
+ }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
321
+ };
322
+ const renderWaterfallChart = (locale, visualization, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
323
+ const { metrics, view } = buckets;
324
+ const total = visualization.insight.properties["controls"]?.["total"];
325
+ return (_jsx(WaterfallChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], filters: filters, sortBy: sortBy, config: {
326
+ ...visualizationTooltipOptions,
327
+ ...legendTooltipOptions,
328
+ colorPalette,
329
+ separators: props.separators,
330
+ enableAccessibleTooltip: props.enableAccessibleChartTooltip,
331
+ ...(total ? { total } : {}),
332
+ }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
333
+ };
251
334
  const renderTable = (locale, buckets, filters, sortBy, onError, onSuccess, onDrill, props) => {
252
335
  const TableComponent = props.enableNewPivotTable ? PivotTableNext : PivotTable;
253
336
  const { metrics, attribute, trend, view, stack, segment, columns } = buckets;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAanD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAa1C"}
1
+ {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAa1C"}
@@ -1,5 +1,6 @@
1
1
  // (C) 2025-2026 GoodData Corporation
2
2
  const MARKDOWN_ESCAPE_PATTERN = /(\{[^{}]*\})|[\\`*_{}[\]()#+\-.!]/g;
3
+ const MARKDOWN_UNESCAPE_PATTERN = /\\([\\`*_{}[\]()#+\-.!])/g;
3
4
  export function escapeMarkdown(text) {
4
5
  return text.replace(MARKDOWN_ESCAPE_PATTERN, (match, inBraces) => inBraces || `\\${match}`);
5
6
  }
@@ -8,14 +9,15 @@ export function escapeMarkdown(text) {
8
9
  */
9
10
  export function removeMarkdown(text) {
10
11
  return text
11
- .replace(/(\*\*|__)(.*?)\1/g, "$2") // bold
12
- .replace(/(\*|_)(.*?)\1/g, "$2") // italic
12
+ .replace(/(?<!\\)(\*\*|__)(.*?)(?<!\\)\1/g, "$2") // bold
13
+ .replace(/(?<!\\)(\*|_)(.*?)(?<!\\)\1/g, "$2") // italic
13
14
  .replace(/\[([^\]]+)\]\(([^)]+)\)/g, "$1") // links
14
15
  .replace(/`([^`]+)`/g, "$1") // code
15
16
  .replace(/#{1,6}\s+(.*)/gm, "$1") // headers
16
17
  .replace(/>\s+(.*)/gm, "$1") // blockquotes
17
18
  .replace(/^\s*[-*+]\s+(.*)/gm, "$1") // unordered lists
18
19
  .replace(/^\s*\d+\.\s+(.*)/gm, "$1") // ordered lists
20
+ .replace(MARKDOWN_UNESCAPE_PATTERN, "$1") // unescape markdown escaped characters
19
21
  .replace(/(\r\n|\n|\r)/gm, " ") // replace newlines with space
20
22
  .replace(/ {2,}/g, " ") // remove double spaces
21
23
  .trim();
package/esm/context.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  import { mergeContexts } from "./context/build.js";
4
4
  import { buildDashboardContext, buildFiltersContext, buildWidgetContext, buildWidgetsContext, } from "./context/dashboard.js";
5
5
  import { buildReferenceContext, buildReferencedContext } from "./context/referencedObjects.js";
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  /**
4
4
  * This package provides React components for GoodData's GenAI features.
5
5
  * @packageDocumentation
package/esm/internal.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  import { makeTextContents, makeUserMessage } from "./model.js";
4
4
  import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "./store/messages/messagesSlice.js";
5
5
  export { ChatSkeleton } from "./components/ChatSkeleton.js";
@@ -27,8 +27,8 @@ export const zh_HK = {
27
27
  "gd.gen-ai.visualization.error.data_too_large": "<b>資料過大。</b> 請套用篩選器以減少資料。",
28
28
  "gd.gen-ai.visualization.unavailable": "無法顯示可視化。",
29
29
  "gd.gen-ai.permission-error": "權限不足",
30
- "gd.gen-ai.permission-error.description": "你無權訪問聊天機械人。 請與您的管理員聯繫以請求訪問權限。",
31
- "gd.gen-ai.input-placeholder": "喺呢度提問…",
30
+ "gd.gen-ai.permission-error.description": "您無權訪問聊天機械人。 請與您的管理員聯繫以請求訪問權限。",
31
+ "gd.gen-ai.input-placeholder": "在此提問…",
32
32
  "gd.gen-ai.input-label.mac": "提出您的問題。 使用control+space或cmd+I獲取建議。",
33
33
  "gd.gen-ai.input-label.win": "提出您的問題。 使用control+space或control+I獲取建議。",
34
34
  "gd.gen-ai.context.add_context": "新增上下文",
@@ -69,18 +69,18 @@ export const zh_HK = {
69
69
  "gd.gen-ai.reasoning.thinking.description": "為複雜分析問題提供較慢但更詳盡的解答。",
70
70
  "gd.gen-ai.feedback.like": "將此消息標記為有用",
71
71
  "gd.gen-ai.feedback.dislike": "將此消息標記為無用",
72
- "gd.gen-ai.feedback.popup.title": "我哋收到你哋嘅意見",
73
- "gd.gen-ai.feedback.popup.reasons-label": "你話我哋知乜嘢出咗問題",
74
- "gd.gen-ai.feedback.popup.description-label": "唔該你講下發生咗乜嘢事",
72
+ "gd.gen-ai.feedback.popup.title": "我們已收到您的意見",
73
+ "gd.gen-ai.feedback.popup.reasons-label": "告訴我們出了什麼問題",
74
+ "gd.gen-ai.feedback.popup.description-label": "請描述發生了什麼事",
75
75
  "gd.gen-ai.feedback.popup.cancel": "取消",
76
76
  "gd.gen-ai.feedback.popup.send": "發送",
77
77
  "gd.gen-ai.feedback.popup.close": "關閉反饋對話框",
78
- "gd.gen-ai.feedback.reason.forgot-context": "唔記得之前嘅上下文",
78
+ "gd.gen-ai.feedback.reason.forgot-context": "忘記了先前的上下文",
79
79
  "gd.gen-ai.feedback.reason.ignored-instructions": "無視或拒絕指示",
80
80
  "gd.gen-ai.feedback.reason.factually-incorrect": "事實錯誤",
81
81
  "gd.gen-ai.feedback.reason.answer-too-long": "答案需時過長",
82
82
  "gd.gen-ai.feedback.reason.other": "其他",
83
- "gd.gen-ai.disclaimer": "AI助手可能會犯錯誤。 在依賴呢啲答案之前檢查。",
83
+ "gd.gen-ai.disclaimer": "AI助手可能會犯錯。 在依賴這些答案之前請先檢查。",
84
84
  "gd.gen-ai.dialog.label": "AI助手對話",
85
85
  "gd.gen-ai.header.reset-tooltip": "重置",
86
86
  "gd.gen-ai.header.conversations-tooltip": "最近對話",
@@ -88,14 +88,14 @@ export const zh_HK = {
88
88
  "gd.gen-ai.header.contract-tooltip": "收縮",
89
89
  "gd.gen-ai.header.expand-tooltip": "擴大",
90
90
  "gd.gen-ai.header.close-tooltip": "關閉助手",
91
- "gd.gen-ai.welcome.line-1": "嘿,你好",
92
- "gd.gen-ai.welcome.line-2": "我該點樣幫助你法?",
91
+ "gd.gen-ai.welcome.line-1": "嘿,您好",
92
+ "gd.gen-ai.welcome.line-2": "我該怎樣幫助您?",
93
93
  "gd.gen-ai.welcome.option-1.title": "搜索儀表板或可視化",
94
- "gd.gen-ai.welcome.option-1.answer": "當然,你希望睇到点样嘅儀錶板或可視化效果?",
94
+ "gd.gen-ai.welcome.option-1.answer": "當然,您想看到什麼樣的儀表板或可視化?",
95
95
  "gd.gen-ai.welcome.option-2.title": "創建新的可視化",
96
96
  "gd.gen-ai.welcome.option-2.answer": "當然,您想創建点样的可視化效果?",
97
97
  "gd.gen-ai.welcome.option-3.title": "答業務問題",
98
- "gd.gen-ai.welcome.option-3.answer": "當然,您想答乜嘢商業問題?",
98
+ "gd.gen-ai.welcome.option-3.answer": "當然,您想回答什麼商業問題?",
99
99
  "gd.gen-ai.semantic-search.title": "搜尋",
100
100
  "gd.gen-ai.alert-proposal.title": "通知",
101
101
  "gd.gen-ai.alert-proposal.summary.title": "名字",
@@ -179,12 +179,12 @@ export const zh_HK = {
179
179
  "gd.gen-ai.save-dialog.label": "名字",
180
180
  "gd.gen-ai.save-dialog.title": "為可視化效果命名",
181
181
  "gd.gen-ai.save-dialog.description": "為新的可視化效果指定一個新的描述性名稱,方便日後容易找到。",
182
- "gd.gen-ai.save-dialog.description.explore": "要打開此可視化,需要保存它先。 你可以喺下面為其命名。",
182
+ "gd.gen-ai.save-dialog.description.explore": "若要開啟此可視化,必須先儲存。 您可以在下方為其命名。",
183
183
  "gd.gen-ai.autocomplete.type": "類型",
184
184
  "gd.gen-ai.autocomplete.dataset": "數據",
185
185
  "gd.gen-ai.autocomplete.id": "ID",
186
186
  "gd.gen-ai.autocomplete.attribute": "屬性",
187
- "gd.gen-ai.autocomplete.metric": "計量",
187
+ "gd.gen-ai.autocomplete.metric": "指標",
188
188
  "gd.gen-ai.autocomplete.fact": "事實",
189
189
  "gd.gen-ai.autocomplete.date": "數據",
190
190
  "gd.gen-ai.autocomplete.insight": "可視化",
@@ -198,7 +198,7 @@ export const zh_HK = {
198
198
  "gd.gen-ai.visualisation.menu.button.save_as_visualisation": "保存可視化效果",
199
199
  "gd.gen-ai.visualisation.menu.button.save_as_new_visualisation": "另存為新...",
200
200
  "gd.gen-ai.visualisation.menu.button.open_in_analyze": "在Analyze中打開",
201
- "gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "這會要求你先儲存視覺化,然後才能打開它。",
201
+ "gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "這會要求您先儲存視覺化,然後才能打開它。",
202
202
  "gd.gen-ai.visualisation.menu.button.copy_visualisation_link": "複製可視化效果link",
203
203
  "gd.gen-ai.messages.label": "聊天消息",
204
204
  "gd.gen-ai.message.label.user": "用戶:",
@@ -208,8 +208,8 @@ export const zh_HK = {
208
208
  "gd.gen-ai.message.reasoning.tool-result": "<b>正在從工具收集資料</b>",
209
209
  "gd.gen-ai.message.reasoned.tool-result": "<b>已從工具收集資料</b>",
210
210
  "gd.gen-ai.skip-messages-history": "跳到AI助手輸入",
211
- "gd.gen-ai.skip-navigation": "跳过導航",
212
- "gd.gen-ai.changeAnalysis.default_message": "呢度係 <metric>{title}</metric> <b>{range}</b> 之間嘅關鍵驅動因素分析。",
211
+ "gd.gen-ai.skip-navigation": "跳過導航",
212
+ "gd.gen-ai.changeAnalysis.default_message": "以下是 <metric>{title}</metric> <b>{range}</b> 之間的關鍵驅動因素分析。",
213
213
  "gd.gen-ai.kda.default_message": "以下是 **{title}** 在 **{range}** 期間的關鍵驅動因素分析。",
214
214
  "gd.gen-ai.changeAnalysis.splitter": "和",
215
215
  "gd.gen-ai.changeAnalysis.explain_the_change": "開分析",
@@ -254,7 +254,7 @@ export const zh_HK = {
254
254
  "gd.gen-ai.interactionIntelligence.detail.searched": "已搜尋",
255
255
  "gd.gen-ai.interactionIntelligence.detail.found": "找到",
256
256
  "gd.gen-ai.interactionIntelligence.detail.used": "已使用",
257
- "gd.gen-ai.interactionIntelligence.detail.metrics": "計量",
257
+ "gd.gen-ai.interactionIntelligence.detail.metrics": "指標",
258
258
  "gd.gen-ai.interactionIntelligence.detail.groupedBy": "分組依據",
259
259
  "gd.gen-ai.interactionIntelligence.detail.filteredBy": "篩選依據",
260
260
  "gd.gen-ai.interactionIntelligence.detail.visualization": "可視化",
@@ -275,7 +275,7 @@ export const zh_HK = {
275
275
  "gd.gen-ai.interactionIntelligence.detail.output.searchResults": "搜尋結果",
276
276
  "gd.gen-ai.interactionIntelligence.detail.output.alertProposal": "警示建議",
277
277
  "drill.kda.from": "從",
278
- "drill.kda.in": "",
278
+ "drill.kda.in": "",
279
279
  "drill.kda.drop": "下降 {where} {title}",
280
280
  "drill.kda.increase": "增加 {where} {title}",
281
281
  "drill.kda.no_change": "無變化 {where} {title}",
@@ -25,6 +25,7 @@ export declare const tagsSelector: (state: RootState) => {
25
25
  export declare const catalogItemsSelector: (state: RootState) => CatalogItem[];
26
26
  export declare const contextObjectsSelector: (state: RootState) => ContextObjectsState;
27
27
  export declare const contextObjectsSearchSelector: (state: RootState) => string;
28
+ export declare const inputValueSelector: (state: RootState) => string;
28
29
  export declare const keyDriverAnalysisSelector: (state: RootState) => IKdaDefinition | undefined;
29
30
  export declare const keyDriverAnalysisMinimizedSelector: (state: RootState) => boolean | undefined;
30
31
  export declare const userContextSelector: (state: RootState) => IGenAIUserContext | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,aAAa,GAAG,SAGxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlE,CAAC;AAKF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAIhE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxE,CAAC;AAKF,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAK1E,CAAC;AAGF,eAAO,MAAM,8CAA8C,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,EAAE,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,wBAAwB,EAAE,GAAG,SACZ,CAAC;AAEvF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;IAC7C,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAMpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,EAKnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,mBAG1D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAGhE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,cAAc,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,GAAG,SAG7E,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAe5D,CAAC"}
1
+ {"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export const catalogItemsSelector = createSelector(chatWindowSliceSelector, (sta
36
36
  });
37
37
  export const contextObjectsSelector = createSelector(chatWindowSliceSelector, (state) => state.contextObjects);
38
38
  export const contextObjectsSearchSelector = createSelector(chatWindowSliceSelector, (state) => state.contextObjectsSearch);
39
+ export const inputValueSelector = createSelector(chatWindowSliceSelector, (state) => state.inputValue);
39
40
  export const keyDriverAnalysisSelector = createSelector(chatWindowSliceSelector, (state) => state.keyDriverAnalysis);
40
41
  export const keyDriverAnalysisMinimizedSelector = createSelector(chatWindowSliceSelector, (state) => state.keyDriverAnalysisMinimized);
41
42
  export const userContextSelector = createSelector(chatWindowSliceSelector, (state) => state.context.active);
@@ -64,6 +64,10 @@ type ChatWindowSliceState = {
64
64
  * Context related to the chat.
65
65
  */
66
66
  context: StoreContext;
67
+ /**
68
+ * Current unsent input value.
69
+ */
70
+ inputValue: string;
67
71
  /**
68
72
  * Whether the chat runs against the caller's preview agent. In preview mode the assistant
69
73
  * is pinned to that single agent, so agent switching is not applicable.
@@ -100,7 +104,9 @@ export declare const setOpenAction: import("@reduxjs/toolkit").ActionCreatorWith
100
104
  }, "chatWindow/setObjectTypesAction">, setTagsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
101
105
  includeTags?: string[];
102
106
  excludeTags?: string[];
103
- }, "chatWindow/setTagsAction">, setCatalogItemsActions: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<CatalogItem[] | undefined, "chatWindow/setCatalogItemsActions">, initContextObjectsAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chatWindow/initContextObjectsAction">, loadContextObjectsNextPageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
107
+ }, "chatWindow/setTagsAction">, setCatalogItemsActions: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<CatalogItem[] | undefined, "chatWindow/setCatalogItemsActions">, setInputValueAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
108
+ value: string;
109
+ }, "chatWindow/setInputValueAction">, initContextObjectsAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chatWindow/initContextObjectsAction">, loadContextObjectsNextPageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
104
110
  kind: ContextObjectKind;
105
111
  }, "chatWindow/loadContextObjectsNextPageAction">, setContextObjectsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
106
112
  kind: ContextObjectKind;
@@ -1 +1 @@
1
- {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ const initialState = {
39
39
  ambient: undefined,
40
40
  active: undefined,
41
41
  },
42
+ inputValue: "",
42
43
  isPreview: undefined,
43
44
  allowInteractionIntelligence: undefined,
44
45
  };
@@ -87,6 +88,9 @@ const chatWindowSlice = createSlice({
87
88
  setCatalogItemsActions: (state, { payload }) => {
88
89
  state.catalogItems = castDraft(payload);
89
90
  },
91
+ setInputValueAction: (state, { payload: { value } }) => {
92
+ state.inputValue = value;
93
+ },
90
94
  initContextObjectsAction: (state) => state,
91
95
  loadContextObjectsNextPageAction: (state, _action) => state,
92
96
  setContextObjectsAction: (state, { payload: { kind, items }, }) => {
@@ -173,12 +177,18 @@ const chatWindowSlice = createSlice({
173
177
  state.context = selectContextReferences(state.context, state.context.ambientSelected);
174
178
  };
175
179
  builder
176
- .addCase(startNewConversationAction, resetContextToAmbient)
177
- .addCase(clearThreadAction, resetContextToAmbient);
180
+ .addCase(startNewConversationAction, (state) => {
181
+ resetContextToAmbient(state);
182
+ state.inputValue = "";
183
+ })
184
+ .addCase(clearThreadAction, (state) => {
185
+ resetContextToAmbient(state);
186
+ state.inputValue = "";
187
+ });
178
188
  },
179
189
  });
180
190
  export const chatWindowSliceReducer = chatWindowSlice.reducer;
181
- export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, setContextObjectsSearchAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, selectedContextReferencesAction, setIsPreviewAction,
191
+ export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setInputValueAction, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, setContextObjectsSearchAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, selectedContextReferencesAction, setIsPreviewAction,
182
192
  /**
183
193
  * Switches the assistant between the docked and the fullscreen layout.
184
194
  * @public
@@ -4,4 +4,6 @@ export declare function setIsOpened(isOpened: boolean): void;
4
4
  export declare function saveMessages(workspaceId: string, messages: Message[]): void;
5
5
  export declare function loadMessages(workspaceId: string): Message[] | undefined;
6
6
  export declare function clearCachedMessages(workspaceId: string): void;
7
+ export declare function getLastActiveAt(workspaceId: string): number | undefined;
8
+ export declare function setLastActiveAt(workspaceId: string, timestamp: number): void;
7
9
  //# sourceMappingURL=localStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D"}
1
+ {"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWvE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAM5E"}