@gooddata/sdk-ui-gen-ai 10.16.0-alpha.2 → 10.16.0-alpha.21

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 (95) hide show
  1. package/NOTICE +74 -24
  2. package/esm/components/GenAIChat.d.ts +3 -3
  3. package/esm/components/GenAIChat.d.ts.map +1 -1
  4. package/esm/components/GenAIChat.js +3 -3
  5. package/esm/components/GenAIChat.js.map +1 -1
  6. package/esm/components/GenAIChatDialog.d.ts +2 -2
  7. package/esm/components/GenAIChatDialog.d.ts.map +1 -1
  8. package/esm/components/GenAIChatDialog.js +19 -4
  9. package/esm/components/GenAIChatDialog.js.map +1 -1
  10. package/esm/components/GenAIChatOverlay.d.ts +4 -2
  11. package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
  12. package/esm/components/GenAIChatOverlay.js +9 -9
  13. package/esm/components/GenAIChatOverlay.js.map +1 -1
  14. package/esm/components/GenAIChatWrapper.d.ts +1 -0
  15. package/esm/components/GenAIChatWrapper.d.ts.map +1 -1
  16. package/esm/components/GenAIChatWrapper.js +2 -2
  17. package/esm/components/GenAIChatWrapper.js.map +1 -1
  18. package/esm/components/Input.d.ts +1 -0
  19. package/esm/components/Input.d.ts.map +1 -1
  20. package/esm/components/Input.js +5 -2
  21. package/esm/components/Input.js.map +1 -1
  22. package/esm/components/messages/AssistantMessage.d.ts.map +1 -1
  23. package/esm/components/messages/AssistantMessage.js +5 -2
  24. package/esm/components/messages/AssistantMessage.js.map +1 -1
  25. package/esm/components/messages/contents/VisualizationContents.js +12 -2
  26. package/esm/components/messages/contents/VisualizationContents.js.map +1 -1
  27. package/esm/components/messages/contents/useExecution.js +2 -2
  28. package/esm/components/messages/contents/useExecution.js.map +1 -1
  29. package/esm/hooks/useGenAIStore.d.ts +15 -4
  30. package/esm/hooks/useGenAIStore.d.ts.map +1 -1
  31. package/esm/hooks/useGenAIStore.js +15 -5
  32. package/esm/hooks/useGenAIStore.js.map +1 -1
  33. package/esm/index.d.ts +1 -0
  34. package/esm/index.d.ts.map +1 -1
  35. package/esm/index.js +1 -0
  36. package/esm/index.js.map +1 -1
  37. package/esm/model.d.ts +1 -1
  38. package/esm/model.d.ts.map +1 -1
  39. package/esm/model.js +2 -2
  40. package/esm/model.js.map +1 -1
  41. package/esm/sdk-ui-gen-ai.d.ts +120 -2
  42. package/esm/store/chatWindow/chatWindowSelectors.d.ts +4 -0
  43. package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -0
  44. package/esm/store/chatWindow/chatWindowSelectors.js +7 -0
  45. package/esm/store/chatWindow/chatWindowSelectors.js.map +1 -0
  46. package/esm/store/chatWindow/chatWindowSlice.d.ts +19 -0
  47. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -0
  48. package/esm/store/chatWindow/chatWindowSlice.js +22 -0
  49. package/esm/store/chatWindow/chatWindowSlice.js.map +1 -0
  50. package/esm/store/events.d.ts +109 -0
  51. package/esm/store/events.d.ts.map +1 -0
  52. package/esm/store/events.js +57 -0
  53. package/esm/store/events.js.map +1 -0
  54. package/esm/store/index.d.ts +2 -0
  55. package/esm/store/index.d.ts.map +1 -1
  56. package/esm/store/index.js +2 -0
  57. package/esm/store/index.js.map +1 -1
  58. package/esm/store/messages/messagesSelectors.d.ts +1 -0
  59. package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
  60. package/esm/store/messages/messagesSelectors.js +1 -0
  61. package/esm/store/messages/messagesSelectors.js.map +1 -1
  62. package/esm/store/messages/messagesSlice.d.ts +7 -0
  63. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  64. package/esm/store/messages/messagesSlice.js +26 -3
  65. package/esm/store/messages/messagesSlice.js.map +1 -1
  66. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -1
  67. package/esm/store/sideEffects/converters/interactionsToMessages.js +1 -1
  68. package/esm/store/sideEffects/converters/interactionsToMessages.js.map +1 -1
  69. package/esm/store/sideEffects/index.d.ts +1 -1
  70. package/esm/store/sideEffects/index.d.ts.map +1 -1
  71. package/esm/store/sideEffects/index.js +3 -1
  72. package/esm/store/sideEffects/index.js.map +1 -1
  73. package/esm/store/sideEffects/onEvent.d.ts +2 -0
  74. package/esm/store/sideEffects/onEvent.d.ts.map +1 -0
  75. package/esm/store/sideEffects/onEvent.js +92 -0
  76. package/esm/store/sideEffects/onEvent.js.map +1 -0
  77. package/esm/store/sideEffects/onThreadLoad.d.ts +1 -0
  78. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
  79. package/esm/store/sideEffects/onThreadLoad.js +4 -1
  80. package/esm/store/sideEffects/onThreadLoad.js.map +1 -1
  81. package/esm/store/store.d.ts +15 -4
  82. package/esm/store/store.d.ts.map +1 -1
  83. package/esm/store/store.js +5 -6
  84. package/esm/store/store.js.map +1 -1
  85. package/esm/store/types.d.ts +2 -0
  86. package/esm/store/types.d.ts.map +1 -1
  87. package/esm/store/types.js +1 -0
  88. package/esm/store/types.js.map +1 -1
  89. package/package.json +12 -12
  90. package/styles/css/main.css +21 -5
  91. package/styles/css/main.css.map +1 -1
  92. package/styles/css/messages.css +19 -3
  93. package/styles/css/messages.css.map +1 -1
  94. package/styles/scss/main.scss +8 -2
  95. package/styles/scss/messages.scss +22 -3
@@ -32,7 +32,7 @@ export const VisualizationContentsComponent = ({ content, useMarkdown, }) => {
32
32
  return assertNever(visualization.visualizationType);
33
33
  }
34
34
  })())),
35
- React.createElement("div", { className: "gd-gen-ai-chat__messages__visualization__title" },
35
+ React.createElement("div", { className: "gd-gen-ai-chat__visualization__title" },
36
36
  React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, visualization.title)))) : null));
37
37
  };
38
38
  const assertNever = (value) => {
@@ -41,12 +41,22 @@ const assertNever = (value) => {
41
41
  const renderBarChart = (metrics, dimensions, filters) => (React.createElement(BarChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
42
42
  // Better visibility with stacked bars if there are multiple metrics and dimensions
43
43
  stackMeasures: metrics.length > 1 && dimensions.length === 2,
44
+ legend: {
45
+ responsive: "autoPositionWithPopup",
46
+ },
44
47
  }, filters: filters }));
45
48
  const renderColumnChart = (metrics, dimensions, filters) => (React.createElement(ColumnChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
46
49
  // Better visibility with stacked bars if there are multiple metrics and dimensions
47
50
  stackMeasures: metrics.length > 1 && dimensions.length === 2,
51
+ legend: {
52
+ responsive: "autoPositionWithPopup",
53
+ },
48
54
  }, filters: filters }));
49
- const renderLineChart = (metrics, dimensions, filters) => (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined, filters: filters }));
55
+ const renderLineChart = (metrics, dimensions, filters) => (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined, filters: filters, config: {
56
+ legend: {
57
+ responsive: "autoPositionWithPopup",
58
+ },
59
+ } }));
50
60
  const renderPieChart = (metrics, dimensions, filters) => (React.createElement(PieChart, { height: 300, measures: metrics, viewBy: metrics.length <= 1 ? dimensions[0] : undefined, filters: filters }));
51
61
  const renderTable = (metrics, dimensions, filters) => (React.createElement(PivotTable, { measures: metrics, rows: dimensions, filters: filters }));
52
62
  const renderHeadline = (metrics, _dimensions, filters) => (React.createElement(Headline, { height: 300, primaryMeasure: metrics[0], secondaryMeasures: [metrics[1], metrics[2]].filter(Boolean), filters: filters }));
@@ -1 +1 @@
1
- {"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,8BAA8B,GAAyC,CAAC,EACjF,OAAO,EACP,WAAW,GACd,EAAE,EAAE;IACD,MAAM,SAAS,GAAG,EAAE,CAChB,mCAAmC,EACnC,kDAAkD,CACrD,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErE,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB;QAChF,aAAa,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAC,+BAA+B;YAC1C,6BAAK,SAAS,EAAC,wCAAwC;gBACnD,oBAAC,0BAA0B,QACtB,CAAC,GAAG,EAAE;oBACH,QAAQ,aAAa,CAAC,iBAAiB,EAAE,CAAC;wBACtC,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,KAAK,QAAQ;4BACT,OAAO,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBAC3D,KAAK,MAAM;4BACP,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACzD,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,KAAK,OAAO;4BACR,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACrD,KAAK,UAAU;4BACX,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD;4BACI,OAAO,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBAC5D,CAAC;gBACL,CAAC,CAAC,EAAE,CACqB,CAC3B;YACN,6BAAK,SAAS,EAAC,gDAAgD;gBAC3D,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IACxC,aAAa,CAAC,KAAK,CACJ,CAClB,CACJ,CACT,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC1F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,EACD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC7F,oBAAC,WAAW,IACR,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,EACD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC3F,oBAAC,SAAS,IACN,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC1F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CACvF,oBAAC,UAAU,IAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,CACxE,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,WAAyB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC3F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3D,OAAO,EAAE,OAAO,GAClB,CACL,CAAC"}
1
+ {"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"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"}
@@ -28,10 +28,10 @@ export const useExecution = (vis) => {
28
28
  };
29
29
  const convertFilter = (data) => {
30
30
  if (isPositiveAttributeFilter(data)) {
31
- return newPositiveAttributeFilter(data.using, data.include);
31
+ return newPositiveAttributeFilter(data.using, { values: data.include });
32
32
  }
33
33
  if (isNegativeAttributeFilter(data)) {
34
- return newNegativeAttributeFilter(data.using, data.exclude);
34
+ return newNegativeAttributeFilter(data.using, { values: data.exclude });
35
35
  }
36
36
  if (isRelativeDateFilter(data)) {
37
37
  return newRelativeDateFilter(data.using, granularityMap[data.granularity], data.from, data.to);
@@ -1 +1 @@
1
- {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +1,34 @@
1
1
  import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
- import { Message } from "../model.js";
3
- export declare const useGenAIStore: (backend: IAnalyticalBackend, workspace: string, history?: Message[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
2
+ import { ChatEventHandler, EventDispatcher } from "../store/events.js";
3
+ export declare const useGenAIStore: (backend: IAnalyticalBackend, workspace: string, eventHandlers?: ChatEventHandler[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
4
4
  messages: {
5
5
  verbose: boolean;
6
- messages: Record<string, Message>;
6
+ messages: Record<string, import("../model.js").Message>;
7
7
  messageOrder: string[];
8
8
  globalError?: string | undefined;
9
9
  asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
10
+ threadId?: string | undefined;
11
+ };
12
+ chatWindow: {
13
+ isOpen: boolean;
14
+ isFullscreen: boolean;
10
15
  };
11
16
  }, import("@reduxjs/toolkit").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[import("redux-saga").SagaMiddleware<{
12
17
  backend: IAnalyticalBackend;
13
18
  workspace: string;
19
+ eventDispatcher: EventDispatcher;
14
20
  }>, import("@reduxjs/toolkit").ThunkMiddleware<{
15
21
  messages: {
16
22
  verbose: boolean;
17
- messages: Record<string, Message>;
23
+ messages: Record<string, import("../model.js").Message>;
18
24
  messageOrder: string[];
19
25
  globalError?: string | undefined;
20
26
  asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
27
+ threadId?: string | undefined;
28
+ };
29
+ chatWindow: {
30
+ isOpen: boolean;
31
+ isFullscreen: boolean;
21
32
  };
22
33
  }, import("@reduxjs/toolkit").AnyAction>]>>;
23
34
  //# sourceMappingURL=useGenAIStore.d.ts.map
@@ -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,YAAa,kBAAkB,aAAa,MAAM,YAAY,OAAO,EAAE;;;;;;;;;;;;;;;;;;;2CAQhG,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,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvE,eAAO,MAAM,aAAa,YACb,kBAAkB,aAChB,MAAM,kBACD,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAoBrC,CAAC"}
@@ -1,12 +1,22 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import React from "react";
3
3
  import { getStore } from "../store/index.js";
4
- export const useGenAIStore = (backend, workspace, history) => {
5
- const initialHistory = React.useRef(history ?? []);
4
+ import { EventDispatcher } from "../store/events.js";
5
+ export const useGenAIStore = (backend, workspace, eventHandlers) => {
6
+ // Instantiate EventDispatcher. It's a designed to hold a reference to the handlers, so that
7
+ // we don't update the context every time a new array of handlers is passed.
8
+ // Similar to how React handles event listeners.
9
+ const eventDispatcher = React.useMemo(() => new EventDispatcher(), []);
6
10
  // Initialize new Redux Store for each instance of GenAI Chat
7
11
  // It OK to discard the store when backend or workspace changes
8
- return React.useMemo(() => {
9
- return getStore(backend, workspace, initialHistory.current);
10
- }, [backend, workspace]);
12
+ const store = React.useMemo(() => {
13
+ return getStore(backend, workspace, eventDispatcher);
14
+ }, [backend, workspace, eventDispatcher]);
15
+ React.useEffect(() => {
16
+ if (eventHandlers) {
17
+ eventDispatcher.setHandlers(eventHandlers);
18
+ }
19
+ }, [eventHandlers, eventDispatcher]);
20
+ return store;
11
21
  };
12
22
  //# sourceMappingURL=useGenAIStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGenAIStore.js","sourceRoot":"","sources":["../../src/hooks/useGenAIStore.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA2B,EAAE,SAAiB,EAAE,OAAmB,EAAE,EAAE;IACjG,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAY,OAAO,IAAI,EAAE,CAAC,CAAC;IAE9D,6DAA6D;IAC7D,+DAA+D;IAC/D,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,OAAO,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"useGenAIStore.js","sourceRoot":"","sources":["../../src/hooks/useGenAIStore.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAoB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,OAA2B,EAC3B,SAAiB,EACjB,aAAkC,EACpC,EAAE;IACA,4FAA4F;IAC5F,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvE,6DAA6D;IAC7D,+DAA+D;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAE1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,aAAa,EAAE,CAAC;YAChB,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
package/esm/index.d.ts CHANGED
@@ -6,4 +6,5 @@
6
6
  export type { GenAIChatProps } from "./components/GenAIChat.js";
7
7
  export { GenAIChat } from "./components/GenAIChat.js";
8
8
  export type { Message, BaseMessage, UserMessage, AssistantMessage, Contents, TextContents, SearchContents, RoutingContents, VisualizationContents, ErrorContents, } from "./model.js";
9
+ export { type ChatEventHandler, type BaseEvent, type ChatAssistantMessageEvent, type ChatUserMessageEvent, type ChatClosedEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatFeedbackEvent, type ChatEvent, isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, } from "./store/events.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,aAAa,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,aAAa,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC"}
package/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  export { GenAIChat } from "./components/GenAIChat.js";
3
+ export { isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, } from "./store/events.js";
3
4
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAShC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAShC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAatD,OAAO,EAUH,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC"}
package/esm/model.d.ts CHANGED
@@ -139,7 +139,7 @@ export declare const isAssistantMessage: (message?: Message) => message is Assis
139
139
  * Create a new Assistant message. By default, mark it as incomplete.
140
140
  * @alpha
141
141
  */
142
- export declare const makeAssistantMessage: (content: Contents[], complete?: boolean, id?: number) => AssistantMessage;
142
+ export declare const makeAssistantMessage: (content: Contents[], complete?: boolean, id?: number, feedback?: GenAIChatInteractionUserFeedback) => AssistantMessage;
143
143
  /**
144
144
  * All messages that can be stored in history.
145
145
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/esm/model.js CHANGED
@@ -81,13 +81,13 @@ export const isAssistantMessage = (message) => message?.role === "assistant";
81
81
  * Create a new Assistant message. By default, mark it as incomplete.
82
82
  * @alpha
83
83
  */
84
- export const makeAssistantMessage = (content, complete = false, id) => ({
84
+ export const makeAssistantMessage = (content, complete = false, id, feedback = "NONE") => ({
85
85
  id: id,
86
86
  localId: uuidv4(),
87
87
  role: "assistant",
88
- feedback: "NONE",
89
88
  created: Date.now(),
90
89
  cancelled: false,
90
+ feedback,
91
91
  complete,
92
92
  content,
93
93
  });
package/esm/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAgBpC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAA4B,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,CAAC;IAC7D,IAAI,EAAE,MAAM;IACZ,IAAI;CACP,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAA+B,EAAE,CACjF,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,OAAgC,EAAmB,EAAE,CAAC,CAAC;IACrG,IAAI,EAAE,SAAS;IACf,IAAI;IACJ,OAAO;CACV,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAA8B,EAAE,CAC/E,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,IAAY,EACZ,gBAA6C,EAAE,EACjC,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI;IACJ,aAAa;CAChB,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAkB,EAAqC,EAAE,CAC7F,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,IAAY,EACZ,wBAA+C,EAAE,EAC5B,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,eAAe;IACrB,IAAI;IACJ,qBAAqB;CACxB,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAA6B,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,CAAC;IAC/D,IAAI,EAAE,OAAO;IACb,IAAI;CACP,CAAC,CAAC;AAiDH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAiB,EAA0B,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC;AAErG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAe,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE;IACjB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;IACnB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,OAAO;CACV,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAiB,EAA+B,EAAE,CACjF,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,OAAmB,EACnB,QAAQ,GAAG,KAAK,EAChB,EAAW,EACK,EAAE,CAAC,CAAC;IACpB,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,MAAM,EAAE;IACjB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;IACnB,SAAS,EAAE,KAAK;IAChB,QAAQ;IACR,OAAO;CACV,CAAC,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAgBpC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAA4B,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,CAAC;IAC7D,IAAI,EAAE,MAAM;IACZ,IAAI;CACP,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAA+B,EAAE,CACjF,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,OAAgC,EAAmB,EAAE,CAAC,CAAC;IACrG,IAAI,EAAE,SAAS;IACf,IAAI;IACJ,OAAO;CACV,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAA8B,EAAE,CAC/E,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,IAAY,EACZ,gBAA6C,EAAE,EACjC,EAAE,CAAC,CAAC;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI;IACJ,aAAa;CAChB,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAkB,EAAqC,EAAE,CAC7F,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,IAAY,EACZ,wBAA+C,EAAE,EAC5B,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,eAAe;IACrB,IAAI;IACJ,qBAAqB;CACxB,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAA6B,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,CAAC;IAC/D,IAAI,EAAE,OAAO;IACb,IAAI;CACP,CAAC,CAAC;AAiDH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAiB,EAA0B,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC;AAErG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAe,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE;IACjB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;IACnB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,OAAO;CACV,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAiB,EAA+B,EAAE,CACjF,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,OAAmB,EACnB,QAAQ,GAAG,KAAK,EAChB,EAAW,EACX,WAA6C,MAAM,EACnC,EAAE,CAAC,CAAC;IACpB,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,MAAM,EAAE;IACjB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;IACnB,SAAS,EAAE,KAAK;IAChB,QAAQ;IACR,QAAQ;IACR,OAAO;CACV,CAAC,CAAC"}
@@ -19,6 +19,14 @@ export declare type AssistantMessage = BaseMessage & {
19
19
  feedback: GenAIChatInteractionUserFeedback;
20
20
  };
21
21
 
22
+ /**
23
+ * A common event definition for the Chat component.
24
+ * @alpha
25
+ */
26
+ export declare type BaseEvent = {
27
+ threadId?: string;
28
+ };
29
+
22
30
  /**
23
31
  * @alpha
24
32
  */
@@ -49,6 +57,80 @@ export declare type BaseMessage = {
49
57
  content: Contents[];
50
58
  };
51
59
 
60
+ /**
61
+ * A chat assistant message event.
62
+ * @alpha
63
+ */
64
+ export declare type ChatAssistantMessageEvent = BaseEvent & {
65
+ type: "chatAssistantMessage";
66
+ interactionId?: number;
67
+ useCase: string;
68
+ };
69
+
70
+ /**
71
+ * A chat window closed event.
72
+ * @alpha
73
+ */
74
+ export declare type ChatClosedEvent = BaseEvent & {
75
+ type: "chatClosed";
76
+ };
77
+
78
+ /**
79
+ * A union type for all chat events.
80
+ * @alpha
81
+ */
82
+ export declare type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent;
83
+
84
+ /**
85
+ * An event handler for the Chat component.
86
+ * @alpha
87
+ */
88
+ export declare interface ChatEventHandler<TEvent extends ChatEvent = any> {
89
+ /**
90
+ * A guard for a specific event type.
91
+ */
92
+ eval: (event: ChatEvent) => event is TEvent;
93
+ /**
94
+ * Event handler.
95
+ */
96
+ handler: (event: TEvent) => void;
97
+ }
98
+
99
+ /**
100
+ * A chat feedback event.
101
+ * @alpha
102
+ */
103
+ export declare type ChatFeedbackEvent = BaseEvent & {
104
+ type: "chatFeedback";
105
+ interactionId?: number;
106
+ feedback: "POSITIVE" | "NEGATIVE" | "NONE";
107
+ };
108
+
109
+ /**
110
+ * A chat window opened event.
111
+ * @alpha
112
+ */
113
+ export declare type ChatOpenedEvent = BaseEvent & {
114
+ type: "chatOpened";
115
+ };
116
+
117
+ /**
118
+ * A chat conversation clearing event.
119
+ * @alpha
120
+ */
121
+ export declare type ChatResetEvent = BaseEvent & {
122
+ type: "chatReset";
123
+ };
124
+
125
+ /**
126
+ * A chat user message event.
127
+ * @alpha
128
+ */
129
+ export declare type ChatUserMessageEvent = BaseEvent & {
130
+ type: "chatUserMessage";
131
+ question: string;
132
+ };
133
+
52
134
  /**
53
135
  * @alpha
54
136
  */
@@ -82,11 +164,47 @@ export declare interface GenAIChatProps {
82
164
  */
83
165
  workspace?: string;
84
166
  /**
85
- * A conversation history in case you're resuming the chat.
167
+ * Event handlers to subscribe to chat events.
86
168
  */
87
- history?: Message[];
169
+ eventHandlers?: ChatEventHandler[];
88
170
  }
89
171
 
172
+ /**
173
+ * Type guard for the ChatAssistantMessageEvent.
174
+ * @alpha
175
+ */
176
+ export declare const isChatAssistantMessageEvent: (event: ChatEvent) => event is ChatAssistantMessageEvent;
177
+
178
+ /**
179
+ * Type guard for the ChatClosedEvent.
180
+ * @alpha
181
+ */
182
+ export declare const isChatClosedEvent: (event: ChatEvent) => event is ChatClosedEvent;
183
+
184
+ /**
185
+ * Type guard for the ChatFeedbackEvent.
186
+ * @alpha
187
+ */
188
+ export declare const isChatFeedbackEvent: (event: ChatEvent) => event is ChatFeedbackEvent;
189
+
190
+ /**
191
+ * Type guard for the ChatOpenedEvent.
192
+ * @alpha
193
+ */
194
+ export declare const isChatOpenedEvent: (event: ChatEvent) => event is ChatOpenedEvent;
195
+
196
+ /**
197
+ * Type guard for the ChatResetEvent.
198
+ * @alpha
199
+ */
200
+ export declare const isChatResetEvent: (event: ChatEvent) => event is ChatResetEvent;
201
+
202
+ /**
203
+ * Type guard for the ChatUserMessageEvent.
204
+ * @alpha
205
+ */
206
+ export declare const isChatUserMessageEvent: (event: ChatEvent) => event is ChatUserMessageEvent;
207
+
90
208
  /**
91
209
  * All messages that can be stored in history.
92
210
  * @alpha
@@ -0,0 +1,4 @@
1
+ import { RootState } from "../types.js";
2
+ export declare const isOpenSelector: (state: RootState) => boolean;
3
+ export declare const isFullscreenSelector: (state: RootState) => boolean;
4
+ //# sourceMappingURL=chatWindowSelectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { createSelector } from "@reduxjs/toolkit";
3
+ import { chatWindowSliceName } from "./chatWindowSlice.js";
4
+ const chatWindowSliceSelector = (state) => state[chatWindowSliceName];
5
+ export const isOpenSelector = createSelector(chatWindowSliceSelector, (state) => state.isOpen);
6
+ export const isFullscreenSelector = createSelector(chatWindowSliceSelector, (state) => state.isFullscreen);
7
+ //# sourceMappingURL=chatWindowSelectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatWindowSelectors.js","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,uBAAuB,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,cAAc,GAAkC,cAAc,CACvE,uBAAuB,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAkC,cAAc,CAC7E,uBAAuB,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAChC,CAAC"}
@@ -0,0 +1,19 @@
1
+ type ChatWindowSliceState = {
2
+ /**
3
+ * Defines if the chat window is open.
4
+ */
5
+ isOpen: boolean;
6
+ /**
7
+ * Defines if the chat window is in fullscreen mode.
8
+ */
9
+ isFullscreen: boolean;
10
+ };
11
+ export declare const chatWindowSliceName = "chatWindow";
12
+ export declare const chatWindowSliceReducer: import("@reduxjs/toolkit").Reducer<ChatWindowSliceState>;
13
+ export declare const setOpenAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
14
+ isOpen: boolean;
15
+ }, "chatWindow/setOpenAction">, setFullscreenAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
16
+ isFullscreen: boolean;
17
+ }, "chatWindow/setFullscreenAction">;
18
+ export {};
19
+ //# sourceMappingURL=chatWindowSlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAGA,KAAK,oBAAoB,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAuBhD,eAAO,MAAM,sBAAsB,0DAA0B,CAAC;AAC9D,eAAO,MAAQ,aAAa;YAboD,OAAO;gCAazD,mBAAmB;kBARwB,OAAO;oCAQH,CAAC"}
@@ -0,0 +1,22 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { createSlice } from "@reduxjs/toolkit";
3
+ export const chatWindowSliceName = "chatWindow";
4
+ const initialState = {
5
+ isOpen: false,
6
+ isFullscreen: false,
7
+ };
8
+ const chatWindowSlice = createSlice({
9
+ name: chatWindowSliceName,
10
+ initialState,
11
+ reducers: {
12
+ setOpenAction: (state, { payload: { isOpen } }) => {
13
+ state.isOpen = isOpen;
14
+ },
15
+ setFullscreenAction: (state, { payload: { isFullscreen } }) => {
16
+ state.isFullscreen = isFullscreen;
17
+ },
18
+ },
19
+ });
20
+ export const chatWindowSliceReducer = chatWindowSlice.reducer;
21
+ export const { setOpenAction, setFullscreenAction } = chatWindowSlice.actions;
22
+ //# sourceMappingURL=chatWindowSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatWindowSlice.js","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAa9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,MAAM,YAAY,GAAyB;IACvC,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,eAAe,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,mBAAmB;IACzB,YAAY;IACZ,QAAQ,EAAE;QACN,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAsC,EAAE,EAAE;YAClF,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1B,CAAC;QACD,mBAAmB,EAAE,CACjB,KAAK,EACL,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAA4C,EACzE,EAAE;YACA,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QACtC,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC;AAC9D,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * A common event definition for the Chat component.
3
+ * @alpha
4
+ */
5
+ export type BaseEvent = {
6
+ threadId?: string;
7
+ };
8
+ /**
9
+ * A chat window opened event.
10
+ * @alpha
11
+ */
12
+ export type ChatOpenedEvent = BaseEvent & {
13
+ type: "chatOpened";
14
+ };
15
+ /**
16
+ * Type guard for the ChatOpenedEvent.
17
+ * @alpha
18
+ */
19
+ export declare const isChatOpenedEvent: (event: ChatEvent) => event is ChatOpenedEvent;
20
+ /**
21
+ * A chat window closed event.
22
+ * @alpha
23
+ */
24
+ export type ChatClosedEvent = BaseEvent & {
25
+ type: "chatClosed";
26
+ };
27
+ /**
28
+ * Type guard for the ChatClosedEvent.
29
+ * @alpha
30
+ */
31
+ export declare const isChatClosedEvent: (event: ChatEvent) => event is ChatClosedEvent;
32
+ /**
33
+ * A chat conversation clearing event.
34
+ * @alpha
35
+ */
36
+ export type ChatResetEvent = BaseEvent & {
37
+ type: "chatReset";
38
+ };
39
+ /**
40
+ * Type guard for the ChatResetEvent.
41
+ * @alpha
42
+ */
43
+ export declare const isChatResetEvent: (event: ChatEvent) => event is ChatResetEvent;
44
+ /**
45
+ * A chat user message event.
46
+ * @alpha
47
+ */
48
+ export type ChatUserMessageEvent = BaseEvent & {
49
+ type: "chatUserMessage";
50
+ question: string;
51
+ };
52
+ /**
53
+ * Type guard for the ChatUserMessageEvent.
54
+ * @alpha
55
+ */
56
+ export declare const isChatUserMessageEvent: (event: ChatEvent) => event is ChatUserMessageEvent;
57
+ /**
58
+ * A chat assistant message event.
59
+ * @alpha
60
+ */
61
+ export type ChatAssistantMessageEvent = BaseEvent & {
62
+ type: "chatAssistantMessage";
63
+ interactionId?: number;
64
+ useCase: string;
65
+ };
66
+ /**
67
+ * Type guard for the ChatAssistantMessageEvent.
68
+ * @alpha
69
+ */
70
+ export declare const isChatAssistantMessageEvent: (event: ChatEvent) => event is ChatAssistantMessageEvent;
71
+ /**
72
+ * A chat feedback event.
73
+ * @alpha
74
+ */
75
+ export type ChatFeedbackEvent = BaseEvent & {
76
+ type: "chatFeedback";
77
+ interactionId?: number;
78
+ feedback: "POSITIVE" | "NEGATIVE" | "NONE";
79
+ };
80
+ /**
81
+ * Type guard for the ChatFeedbackEvent.
82
+ * @alpha
83
+ */
84
+ export declare const isChatFeedbackEvent: (event: ChatEvent) => event is ChatFeedbackEvent;
85
+ /**
86
+ * A union type for all chat events.
87
+ * @alpha
88
+ */
89
+ export type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent;
90
+ /**
91
+ * An event handler for the Chat component.
92
+ * @alpha
93
+ */
94
+ export interface ChatEventHandler<TEvent extends ChatEvent = any> {
95
+ /**
96
+ * A guard for a specific event type.
97
+ */
98
+ eval: (event: ChatEvent) => event is TEvent;
99
+ /**
100
+ * Event handler.
101
+ */
102
+ handler: (event: TEvent) => void;
103
+ }
104
+ export declare class EventDispatcher {
105
+ private handlers;
106
+ setHandlers(handlers: ChatEventHandler[]): void;
107
+ dispatch(event: ChatEvent): void;
108
+ }
109
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACtC,IAAI,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAW,SAAS,6BAEjD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACtC,IAAI,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAW,SAAS,6BAEjD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,4BAEhD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG;IAC3C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,UAAW,SAAS,kCAEtD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG;IAChD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,UAAW,SAAS,uCAE3D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAAW,SAAS,+BAEnD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,yBAAyB,GACzB,iBAAiB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;IAC5D;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,IAAI,MAAM,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAA0B;IAEnC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAI/C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAO1C"}
@@ -0,0 +1,57 @@
1
+ // (C) 2024 GoodData Corporation
2
+ /**
3
+ * Type guard for the ChatOpenedEvent.
4
+ * @alpha
5
+ */
6
+ export const isChatOpenedEvent = (event) => {
7
+ return event.type === "chatOpened";
8
+ };
9
+ /**
10
+ * Type guard for the ChatClosedEvent.
11
+ * @alpha
12
+ */
13
+ export const isChatClosedEvent = (event) => {
14
+ return event.type === "chatClosed";
15
+ };
16
+ /**
17
+ * Type guard for the ChatResetEvent.
18
+ * @alpha
19
+ */
20
+ export const isChatResetEvent = (event) => {
21
+ return event.type === "chatReset";
22
+ };
23
+ /**
24
+ * Type guard for the ChatUserMessageEvent.
25
+ * @alpha
26
+ */
27
+ export const isChatUserMessageEvent = (event) => {
28
+ return event.type === "chatUserMessage";
29
+ };
30
+ /**
31
+ * Type guard for the ChatAssistantMessageEvent.
32
+ * @alpha
33
+ */
34
+ export const isChatAssistantMessageEvent = (event) => {
35
+ return event.type === "chatAssistantMessage";
36
+ };
37
+ /**
38
+ * Type guard for the ChatFeedbackEvent.
39
+ * @alpha
40
+ */
41
+ export const isChatFeedbackEvent = (event) => {
42
+ return event.type === "chatFeedback";
43
+ };
44
+ export class EventDispatcher {
45
+ handlers = [];
46
+ setHandlers(handlers) {
47
+ this.handlers = handlers;
48
+ }
49
+ dispatch(event) {
50
+ this.handlers.forEach((handler) => {
51
+ if (handler.eval(event)) {
52
+ handler.handler(event);
53
+ }
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=events.js.map