@thoughtspot/visual-embed-sdk 1.42.1-alpha.7 → 1.42.2

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 (221) hide show
  1. package/cjs/package.json +4 -3
  2. package/cjs/src/css-variables.d.ts +0 -48
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +20 -0
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +9 -4
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +62 -0
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/bodyless-conversation.d.ts +1 -1
  11. package/cjs/src/embed/conversation.d.ts +16 -0
  12. package/cjs/src/embed/conversation.d.ts.map +1 -1
  13. package/cjs/src/embed/conversation.js +5 -2
  14. package/cjs/src/embed/conversation.js.map +1 -1
  15. package/cjs/src/embed/conversation.spec.js +25 -1
  16. package/cjs/src/embed/conversation.spec.js.map +1 -1
  17. package/cjs/src/embed/hostEventClient/contracts.d.ts +1 -11
  18. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  19. package/cjs/src/embed/hostEventClient/contracts.js +0 -1
  20. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  21. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  22. package/cjs/src/embed/liveboard.js +5 -1
  23. package/cjs/src/embed/liveboard.js.map +1 -1
  24. package/cjs/src/embed/liveboard.spec.js +46 -0
  25. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  26. package/cjs/src/embed/sage.d.ts +4 -4
  27. package/cjs/src/embed/search.d.ts.map +1 -1
  28. package/cjs/src/embed/search.js +1 -3
  29. package/cjs/src/embed/search.js.map +1 -1
  30. package/cjs/src/embed/ts-embed.d.ts +0 -2
  31. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  32. package/cjs/src/embed/ts-embed.js +14 -42
  33. package/cjs/src/embed/ts-embed.js.map +1 -1
  34. package/cjs/src/embed/ts-embed.spec.js +0 -2
  35. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  36. package/cjs/src/errors.js +1 -1
  37. package/cjs/src/errors.js.map +1 -1
  38. package/cjs/src/index.d.ts +3 -3
  39. package/cjs/src/index.d.ts.map +1 -1
  40. package/cjs/src/index.js +1 -2
  41. package/cjs/src/index.js.map +1 -1
  42. package/cjs/src/react/all-types-export.d.ts +1 -2
  43. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  44. package/cjs/src/react/all-types-export.js +5 -3
  45. package/cjs/src/react/all-types-export.js.map +1 -1
  46. package/cjs/src/react/all-types-export.spec.js +0 -8
  47. package/cjs/src/react/all-types-export.spec.js.map +1 -1
  48. package/cjs/src/react/index.d.ts +1 -2
  49. package/cjs/src/react/index.d.ts.map +1 -1
  50. package/cjs/src/react/index.js +2 -1
  51. package/cjs/src/react/index.js.map +1 -1
  52. package/cjs/src/react/util.d.ts +1 -0
  53. package/cjs/src/react/util.d.ts.map +1 -1
  54. package/cjs/src/types.d.ts +58 -93
  55. package/cjs/src/types.d.ts.map +1 -1
  56. package/cjs/src/types.js +21 -46
  57. package/cjs/src/types.js.map +1 -1
  58. package/cjs/src/utils/custom-actions.d.ts.map +1 -1
  59. package/cjs/src/utils/custom-actions.js +9 -0
  60. package/cjs/src/utils/custom-actions.js.map +1 -1
  61. package/cjs/src/utils/custom-actions.spec.js +20 -0
  62. package/cjs/src/utils/custom-actions.spec.js.map +1 -1
  63. package/cjs/src/utils/processData.d.ts +1 -1
  64. package/cjs/src/utils/processData.d.ts.map +1 -1
  65. package/cjs/src/utils/processData.js +8 -8
  66. package/cjs/src/utils/processData.js.map +1 -1
  67. package/cjs/src/utils/processData.spec.js.map +1 -1
  68. package/dist/{index-DvNA626T.js → index-CjbriUI0.js} +1 -1
  69. package/dist/src/css-variables.d.ts +0 -48
  70. package/dist/src/css-variables.d.ts.map +1 -1
  71. package/dist/src/embed/app.d.ts +20 -0
  72. package/dist/src/embed/app.d.ts.map +1 -1
  73. package/dist/src/embed/bodyless-conversation.d.ts +1 -1
  74. package/dist/src/embed/conversation.d.ts +16 -0
  75. package/dist/src/embed/conversation.d.ts.map +1 -1
  76. package/dist/src/embed/hostEventClient/contracts.d.ts +1 -11
  77. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  78. package/dist/src/embed/liveboard.d.ts.map +1 -1
  79. package/dist/src/embed/sage.d.ts +4 -4
  80. package/dist/src/embed/search.d.ts.map +1 -1
  81. package/dist/src/embed/ts-embed.d.ts +0 -2
  82. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  83. package/dist/src/index.d.ts +3 -3
  84. package/dist/src/index.d.ts.map +1 -1
  85. package/dist/src/react/all-types-export.d.ts +1 -2
  86. package/dist/src/react/all-types-export.d.ts.map +1 -1
  87. package/dist/src/react/index.d.ts +1 -2
  88. package/dist/src/react/index.d.ts.map +1 -1
  89. package/dist/src/react/util.d.ts +1 -0
  90. package/dist/src/react/util.d.ts.map +1 -1
  91. package/dist/src/types.d.ts +58 -93
  92. package/dist/src/types.d.ts.map +1 -1
  93. package/dist/src/utils/custom-actions.d.ts.map +1 -1
  94. package/dist/src/utils/processData.d.ts +1 -1
  95. package/dist/src/utils/processData.d.ts.map +1 -1
  96. package/dist/tsembed-react.es.js +86 -222
  97. package/dist/tsembed-react.js +230 -442
  98. package/dist/tsembed.es.js +85 -222
  99. package/dist/tsembed.js +228 -441
  100. package/dist/visual-embed-sdk-react-full.d.ts +104 -160
  101. package/dist/visual-embed-sdk-react.d.ts +95 -155
  102. package/dist/visual-embed-sdk.d.ts +95 -158
  103. package/lib/package.json +4 -3
  104. package/lib/src/css-variables.d.ts +0 -48
  105. package/lib/src/css-variables.d.ts.map +1 -1
  106. package/lib/src/embed/app.d.ts +20 -0
  107. package/lib/src/embed/app.d.ts.map +1 -1
  108. package/lib/src/embed/app.js +9 -4
  109. package/lib/src/embed/app.js.map +1 -1
  110. package/lib/src/embed/app.spec.js +62 -0
  111. package/lib/src/embed/app.spec.js.map +1 -1
  112. package/lib/src/embed/bodyless-conversation.d.ts +1 -1
  113. package/lib/src/embed/conversation.d.ts +16 -0
  114. package/lib/src/embed/conversation.d.ts.map +1 -1
  115. package/lib/src/embed/conversation.js +5 -2
  116. package/lib/src/embed/conversation.js.map +1 -1
  117. package/lib/src/embed/conversation.spec.js +25 -1
  118. package/lib/src/embed/conversation.spec.js.map +1 -1
  119. package/lib/src/embed/hostEventClient/contracts.d.ts +1 -11
  120. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  121. package/lib/src/embed/hostEventClient/contracts.js +0 -1
  122. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  123. package/lib/src/embed/liveboard.d.ts.map +1 -1
  124. package/lib/src/embed/liveboard.js +5 -1
  125. package/lib/src/embed/liveboard.js.map +1 -1
  126. package/lib/src/embed/liveboard.spec.js +47 -1
  127. package/lib/src/embed/liveboard.spec.js.map +1 -1
  128. package/lib/src/embed/sage.d.ts +4 -4
  129. package/lib/src/embed/search.d.ts.map +1 -1
  130. package/lib/src/embed/search.js +1 -3
  131. package/lib/src/embed/search.js.map +1 -1
  132. package/lib/src/embed/ts-embed.d.ts +0 -2
  133. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  134. package/lib/src/embed/ts-embed.js +14 -42
  135. package/lib/src/embed/ts-embed.js.map +1 -1
  136. package/lib/src/embed/ts-embed.spec.js +0 -2
  137. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  138. package/lib/src/errors.js +1 -1
  139. package/lib/src/errors.js.map +1 -1
  140. package/lib/src/index.d.ts +3 -3
  141. package/lib/src/index.d.ts.map +1 -1
  142. package/lib/src/index.js +2 -2
  143. package/lib/src/index.js.map +1 -1
  144. package/lib/src/react/all-types-export.d.ts +1 -2
  145. package/lib/src/react/all-types-export.d.ts.map +1 -1
  146. package/lib/src/react/all-types-export.js +2 -2
  147. package/lib/src/react/all-types-export.js.map +1 -1
  148. package/lib/src/react/all-types-export.spec.js +0 -8
  149. package/lib/src/react/all-types-export.spec.js.map +1 -1
  150. package/lib/src/react/index.d.ts +1 -2
  151. package/lib/src/react/index.d.ts.map +1 -1
  152. package/lib/src/react/index.js +4 -3
  153. package/lib/src/react/index.js.map +1 -1
  154. package/lib/src/react/util.d.ts +1 -0
  155. package/lib/src/react/util.d.ts.map +1 -1
  156. package/lib/src/types.d.ts +58 -93
  157. package/lib/src/types.d.ts.map +1 -1
  158. package/lib/src/types.js +20 -45
  159. package/lib/src/types.js.map +1 -1
  160. package/lib/src/utils/custom-actions.d.ts.map +1 -1
  161. package/lib/src/utils/custom-actions.js +9 -0
  162. package/lib/src/utils/custom-actions.js.map +1 -1
  163. package/lib/src/utils/custom-actions.spec.js +20 -0
  164. package/lib/src/utils/custom-actions.spec.js.map +1 -1
  165. package/lib/src/utils/processData.d.ts +1 -1
  166. package/lib/src/utils/processData.d.ts.map +1 -1
  167. package/lib/src/utils/processData.js +8 -8
  168. package/lib/src/utils/processData.js.map +1 -1
  169. package/lib/src/utils/processData.spec.js.map +1 -1
  170. package/package.json +4 -3
  171. package/src/css-variables.ts +0 -58
  172. package/src/embed/app.spec.ts +87 -0
  173. package/src/embed/app.ts +35 -4
  174. package/src/embed/bodyless-conversation.ts +1 -1
  175. package/src/embed/conversation.spec.ts +35 -1
  176. package/src/embed/conversation.ts +22 -0
  177. package/src/embed/hostEventClient/contracts.ts +0 -10
  178. package/src/embed/liveboard.spec.ts +60 -0
  179. package/src/embed/liveboard.ts +9 -0
  180. package/src/embed/sage.ts +4 -4
  181. package/src/embed/search.ts +1 -3
  182. package/src/embed/ts-embed.spec.ts +7 -9
  183. package/src/embed/ts-embed.ts +31 -67
  184. package/src/errors.ts +1 -1
  185. package/src/index.ts +3 -4
  186. package/src/react/all-types-export.spec.ts +1 -9
  187. package/src/react/all-types-export.ts +8 -10
  188. package/src/react/index.tsx +130 -155
  189. package/src/types.ts +56 -94
  190. package/src/utils/custom-actions.spec.ts +22 -0
  191. package/src/utils/custom-actions.ts +11 -0
  192. package/src/utils/processData.spec.ts +1 -0
  193. package/src/utils/processData.ts +11 -11
  194. package/cjs/src/api-intercept.d.ts +0 -31
  195. package/cjs/src/api-intercept.d.ts.map +0 -1
  196. package/cjs/src/api-intercept.js +0 -119
  197. package/cjs/src/api-intercept.js.map +0 -1
  198. package/cjs/src/api-intercept.spec.d.ts +0 -2
  199. package/cjs/src/api-intercept.spec.d.ts.map +0 -1
  200. package/cjs/src/api-intercept.spec.js +0 -122
  201. package/cjs/src/api-intercept.spec.js.map +0 -1
  202. package/dist/index-BCC3Z072.js +0 -7371
  203. package/dist/index-BEzW4MDA.js +0 -7371
  204. package/dist/index-BaESA9rq.js +0 -7371
  205. package/dist/index-CFNZIcKr.js +0 -7447
  206. package/dist/index-CqKTa1Fe.js +0 -7447
  207. package/dist/index-DFnPKcjZ.js +0 -7447
  208. package/dist/index-DhFH7b7U.js +0 -7447
  209. package/dist/src/api-intercept.d.ts +0 -31
  210. package/dist/src/api-intercept.d.ts.map +0 -1
  211. package/dist/src/api-intercept.spec.d.ts +0 -2
  212. package/dist/src/api-intercept.spec.d.ts.map +0 -1
  213. package/lib/src/api-intercept.d.ts +0 -31
  214. package/lib/src/api-intercept.d.ts.map +0 -1
  215. package/lib/src/api-intercept.js +0 -112
  216. package/lib/src/api-intercept.js.map +0 -1
  217. package/lib/src/api-intercept.spec.d.ts +0 -2
  218. package/lib/src/api-intercept.spec.d.ts.map +0 -1
  219. package/lib/src/api-intercept.spec.js +0 -119
  220. package/lib/src/api-intercept.spec.js.map +0 -1
  221. package/src/api-intercept.ts +0 -139
@@ -10,125 +10,101 @@ import { SearchEmbed as _SearchEmbed, SearchViewConfig } from '../embed/search';
10
10
  import { AppEmbed as _AppEmbed, AppViewConfig } from '../embed/app';
11
11
  import { LiveboardEmbed as _LiveboardEmbed, LiveboardViewConfig } from '../embed/liveboard';
12
12
  import { TsEmbed } from '../embed/ts-embed';
13
- import {
14
- SpotterAgentEmbed as _SpotterAgentEmbed,
15
- SpotterAgentEmbedViewConfig,
16
- ConversationMessage as _ConversationMessage,
17
- SpotterAgentMessageViewConfig,
18
- } from '../embed/bodyless-conversation';
13
+ import { SpotterAgentEmbed as _SpotterAgentEmbed, SpotterAgentEmbedViewConfig, ConversationMessage as _ConversationMessage, SpotterAgentMessageViewConfig } from '../embed/bodyless-conversation';
19
14
 
20
15
  import { EmbedConfig, EmbedEvent, AllEmbedViewConfig } from '../types';
21
16
  import { EmbedProps, getViewPropsAndListeners } from './util';
22
- import {
23
- SpotterEmbed as _SpotterEmbed,
24
- SpotterEmbedViewConfig,
25
- ConversationEmbed as _ConversationEmbed,
26
- ConversationViewConfig,
27
- } from '../embed/conversation';
17
+ import { SpotterEmbed as _SpotterEmbed, SpotterEmbedViewConfig, ConversationEmbed as _ConversationEmbed, ConversationViewConfig } from '../embed/conversation';
28
18
  import { init } from '../embed/base';
29
19
  import { ERROR_MESSAGE } from '../errors';
30
20
 
31
- const componentFactory = <
32
- T extends typeof TsEmbed,
33
- U extends EmbedProps,
34
- V extends AllEmbedViewConfig
35
- >(
21
+ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V extends AllEmbedViewConfig>(
36
22
  EmbedConstructor: T,
37
23
  // isPreRenderedComponent: Specifies whether the component being returned is
38
24
  // intended for preRendering. If set to true, the component will call the
39
25
  // Embed.preRender() method instead of the usual render method, and it will
40
26
  // not be destroyed when the component is unmounted.
41
27
  isPreRenderedComponent = false,
42
- ) =>
43
- React.forwardRef<InstanceType<T>, U>(
44
- (props: U, forwardedRef: React.MutableRefObject<InstanceType<T>>) => {
45
- const ref = React.useRef<HTMLDivElement>(null);
46
- const { className, style, ...embedProps } = props;
47
- const { viewConfig, listeners } = getViewPropsAndListeners<
48
- Omit<U, 'className' | 'style'>,
49
- V
50
- >(embedProps);
51
-
52
- const handleDestroy = (tsEmbed: InstanceType<T>) => {
53
- // do not destroy if it is a preRender component
54
- if (isPreRenderedComponent) return;
55
-
56
- // if component is connected to a preRendered component
57
- if (props.preRenderId) {
58
- tsEmbed.hidePreRender();
59
- return;
60
- }
61
-
62
- tsEmbed.destroy();
63
- };
28
+ ) => React.forwardRef<InstanceType<T>, U>(
29
+ (props: U, forwardedRef: React.MutableRefObject<InstanceType<T>>) => {
30
+ const ref = React.useRef<HTMLDivElement>(null);
31
+ const { className, style, ...embedProps } = props;
32
+ const { viewConfig, listeners } = getViewPropsAndListeners<Omit<U, 'className' | 'style'>, V>(
33
+ embedProps,
34
+ );
35
+
36
+ const handleDestroy = (tsEmbed: InstanceType<T>) => {
37
+ // do not destroy if it is a preRender component
38
+ if (isPreRenderedComponent) return;
39
+
40
+ // if component is connected to a preRendered component
41
+ if (props.preRenderId) {
42
+ tsEmbed.hidePreRender();
43
+ return;
44
+ }
64
45
 
65
- const handlePreRenderRendering = (tsEmbed: InstanceType<T>) => {
66
- tsEmbed.preRender();
67
- };
46
+ tsEmbed.destroy();
47
+ };
68
48
 
69
- const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
70
- // if component is connected to a preRendered component
71
- if (props.preRenderId) {
72
- tsEmbed.showPreRender();
73
- return;
74
- }
49
+ const handlePreRenderRendering = (tsEmbed: InstanceType<T>) => {
50
+ tsEmbed.preRender();
51
+ };
75
52
 
76
- tsEmbed.render();
77
- };
53
+ const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
54
+ // if component is connected to a preRendered component
55
+ if (props.preRenderId) {
56
+ tsEmbed.showPreRender();
57
+ return;
58
+ }
78
59
 
79
- const handleRendering = (tsEmbed: InstanceType<T>) => {
80
- if (isPreRenderedComponent) {
81
- handlePreRenderRendering(tsEmbed);
82
- return;
83
- }
84
- handleDefaultRendering(tsEmbed);
85
- };
60
+ tsEmbed.render();
61
+ };
62
+
63
+ const handleRendering = (tsEmbed: InstanceType<T>) => {
64
+ if (isPreRenderedComponent) {
65
+ handlePreRenderRendering(tsEmbed);
66
+ return;
67
+ }
68
+ handleDefaultRendering(tsEmbed);
69
+ };
86
70
 
87
- useDeepCompareEffect(() => {
88
- const tsEmbed = new EmbedConstructor(
89
- ref!.current,
90
- deepMerge(
91
- {
92
- insertAsSibling: viewConfig.insertAsSibling,
93
- frameParams: {
94
- class: viewConfig.insertAsSibling ? className || '' : '',
95
- },
71
+ useDeepCompareEffect(() => {
72
+ const tsEmbed = new EmbedConstructor(
73
+ ref!.current,
74
+ deepMerge(
75
+ {
76
+ insertAsSibling: viewConfig.insertAsSibling,
77
+ frameParams: {
78
+ class: viewConfig.insertAsSibling ? className || '' : '',
96
79
  },
97
- viewConfig,
98
- ),
99
- ) as InstanceType<T>;
100
- Object.keys(listeners).forEach((eventName) => {
101
- tsEmbed.on(eventName as EmbedEvent, listeners[eventName as EmbedEvent]);
102
- });
103
- handleRendering(tsEmbed);
104
- if (forwardedRef) {
105
- forwardedRef.current = tsEmbed;
106
- }
107
- return () => {
108
- handleDestroy(tsEmbed);
109
- };
110
- }, [viewConfig, listeners]);
111
-
112
- const preRenderStyles = isPreRenderedComponent ? { display: 'none' } : {};
113
-
114
- return viewConfig.insertAsSibling ? (
115
- <span
116
- data-testid="tsEmbed"
117
- ref={ref}
118
- style={{ position: 'absolute', ...preRenderStyles }}
119
- ></span>
120
- ) : (
121
- <div
122
- data-testid="tsEmbed"
123
- ref={ref}
124
- style={{ ...style, ...preRenderStyles }}
125
- className={`ts-embed-container ${className}`}
126
- ></div>
127
- );
128
- },
129
- );
80
+ },
81
+ viewConfig,
82
+ ),
83
+ ) as InstanceType<T>;
84
+ Object.keys(listeners).forEach((eventName) => {
85
+ tsEmbed.on(eventName as EmbedEvent, listeners[eventName as EmbedEvent]);
86
+ });
87
+ handleRendering(tsEmbed);
88
+ if (forwardedRef) {
89
+ // eslint-disable-next-line no-param-reassign
90
+ forwardedRef.current = tsEmbed;
91
+ }
92
+ return () => {
93
+ handleDestroy(tsEmbed);
94
+ };
95
+ }, [viewConfig, listeners]);
130
96
 
131
- interface SearchProps extends EmbedProps, SearchViewConfig {}
97
+ const preRenderStyles = isPreRenderedComponent ? { display: 'none' } : {};
98
+
99
+ return viewConfig.insertAsSibling ? (
100
+ <span data-testid="tsEmbed" ref={ref} style={{ position: 'absolute', ...preRenderStyles }}></span>
101
+ ) : (
102
+ <div data-testid="tsEmbed" ref={ref} style={{ ...style, ...preRenderStyles }} className={`ts-embed-container ${className}`}></div>
103
+ );
104
+ },
105
+ );
106
+
107
+ interface SearchProps extends EmbedProps, SearchViewConfig { }
132
108
 
133
109
  interface PreRenderProps {
134
110
  /**
@@ -182,7 +158,7 @@ export const PreRenderedSearchEmbed = componentFactory<
182
158
  SearchViewConfig
183
159
  >(_SearchEmbed, true);
184
160
 
185
- interface AppProps extends EmbedProps, AppViewConfig {}
161
+ interface AppProps extends EmbedProps, AppViewConfig { }
186
162
 
187
163
  /**
188
164
  * React component for Full app Embed.
@@ -223,7 +199,7 @@ export const PreRenderedAppEmbed = componentFactory<
223
199
  AppViewConfig
224
200
  >(_AppEmbed, true);
225
201
 
226
- interface LiveboardProps extends EmbedProps, LiveboardViewConfig {}
202
+ interface LiveboardProps extends EmbedProps, LiveboardViewConfig { }
227
203
 
228
204
  /**
229
205
  * React component for Liveboard embed.
@@ -276,7 +252,7 @@ export const PreRenderedLiveboardEmbed = componentFactory<
276
252
 
277
253
  export const PreRenderedPinboardEmbed = PreRenderedLiveboardEmbed;
278
254
 
279
- interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {}
255
+ interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig { }
280
256
 
281
257
  /**
282
258
  * React component for Search bar embed.
@@ -320,7 +296,7 @@ export const PreRenderedSearchBarEmbed = componentFactory<
320
296
  SearchBarViewConfig
321
297
  >(_SearchBarEmbed, true);
322
298
 
323
- interface SageEmbedProps extends EmbedProps, SageViewConfig {}
299
+ interface SageEmbedProps extends EmbedProps, SageViewConfig { }
324
300
 
325
301
  /**
326
302
  * React component for LLM based search Sage embed.
@@ -362,8 +338,8 @@ export const PreRenderedSageEmbed = componentFactory<
362
338
  SageViewConfig
363
339
  >(_SageEmbed, true);
364
340
 
365
- interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {}
366
- interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {}
341
+ interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig { }
342
+ interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig { }
367
343
 
368
344
  /**
369
345
  * React component for LLM based conversation BI.
@@ -386,6 +362,7 @@ export const SpotterEmbed = componentFactory<
386
362
  SpotterEmbedViewConfig
387
363
  >(_SpotterEmbed);
388
364
 
365
+
389
366
  /**
390
367
  * React component for LLM based conversation BI.
391
368
  * @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -425,27 +402,27 @@ export const ConversationMessage = componentFactory<
425
402
  type SpotterMessageProps = {
426
403
  message: SpotterAgentMessageViewConfig;
427
404
  query?: string;
428
- } & Omit<EmbedProps, keyof SpotterAgentMessageViewConfig>;
405
+ } & Omit<EmbedProps, keyof SpotterAgentMessageViewConfig>;
429
406
 
430
407
  /**
431
408
  * React component for displaying individual conversation messages from SpotterAgent.
432
- *
409
+ *
433
410
  * This component renders a single message response from your ThoughtSpot conversation,
434
411
  * showing charts, visualizations, or text responses based on the user's query.
435
- *
412
+ *
436
413
  * @example
437
414
  * ```tsx
438
415
  * const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
439
416
  * const result = await sendMessage('show me sales by region');
440
- *
417
+ *
441
418
  * if (!result.error) {
442
419
  * // Simple usage - just pass the message data
443
420
  * <SpotterMessage message={result.message} />
444
- *
421
+ *
445
422
  * // With optional query for context
446
- * <SpotterMessage
447
- * message={result.message}
448
- * query={result.query}
423
+ * <SpotterMessage
424
+ * message={result.message}
425
+ * query={result.query}
449
426
  * />
450
427
  * }
451
428
  * ```
@@ -456,8 +433,14 @@ export const SpotterMessage = React.forwardRef<
456
433
  SpotterMessageProps
457
434
  >((props, ref) => {
458
435
  const { message, query: _, ...otherProps } = props;
459
-
460
- return <ConversationMessage ref={ref} {...message} {...otherProps} />;
436
+
437
+ return (
438
+ <ConversationMessage
439
+ ref={ref}
440
+ {...message}
441
+ {...otherProps}
442
+ />
443
+ );
461
444
  });
462
445
 
463
446
  /**
@@ -484,8 +467,7 @@ export const PreRenderedConversationEmbed = componentFactory<
484
467
  SpotterEmbedViewConfig
485
468
  >(_SpotterEmbed, true);
486
469
 
487
- type EmbedComponent =
488
- | typeof SearchEmbed
470
+ type EmbedComponent = typeof SearchEmbed
489
471
  | typeof AppEmbed
490
472
  | typeof LiveboardEmbed
491
473
  | typeof SearchBarEmbed
@@ -511,9 +493,8 @@ type EmbedComponent =
511
493
  * ```
512
494
  * @returns {React.MutableRefObject<T extends TsEmbed>} ref
513
495
  */
514
- export function useEmbedRef<T extends EmbedComponent>(): React.MutableRefObject<
515
- React.ComponentRef<T>
516
- > {
496
+ export function useEmbedRef<T extends EmbedComponent>():
497
+ React.MutableRefObject<React.ComponentRef<T>> {
517
498
  return React.useRef<React.ComponentRef<T>>(null);
518
499
  }
519
500
 
@@ -542,19 +523,19 @@ export function useInit(config: EmbedConfig) {
542
523
 
543
524
  /**
544
525
  * React hook for interacting with SpotterAgent AI conversations.
545
- *
526
+ *
546
527
  * This hook provides a sendMessage function that allows you to send natural language
547
528
  * queries to your data and get back AI-generated responses with visualizations.
548
- *
529
+ *
549
530
  * @param config - Configuration object containing worksheetId and other options
550
531
  * @returns Object with sendMessage function that returns conversation results
551
532
  * @example
552
533
  * ```tsx
553
534
  * const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
554
- *
535
+ *
555
536
  * const handleQuery = async () => {
556
537
  * const result = await sendMessage('show me sales by region');
557
- *
538
+ *
558
539
  * if (!result.error) {
559
540
  * // Display the message response
560
541
  * <SpotterMessage message={result.message} />
@@ -567,41 +548,38 @@ export function useInit(config: EmbedConfig) {
567
548
  */
568
549
  export function useSpotterAgent(config: SpotterAgentEmbedViewConfig) {
569
550
  const serviceRef = useRef<_SpotterAgentEmbed | null>(null);
570
-
551
+
571
552
  useDeepCompareEffect(() => {
572
553
  if (serviceRef.current) {
573
554
  serviceRef.current = null;
574
555
  }
575
-
556
+
576
557
  serviceRef.current = new _SpotterAgentEmbed(config);
577
-
558
+
578
559
  return () => {
579
560
  serviceRef.current = null;
580
561
  };
581
562
  }, [config]);
582
563
 
583
- const sendMessage = useCallback(
584
- async (query: string) => {
585
- if (!serviceRef.current) {
586
- return { error: new Error(ERROR_MESSAGE.SPOTTER_AGENT_NOT_INITIALIZED) };
587
- }
564
+ const sendMessage = useCallback(async (query: string) => {
565
+ if (!serviceRef.current) {
566
+ return { error: new Error(ERROR_MESSAGE.SPOTTER_AGENT_NOT_INITIALIZED) };
567
+ }
588
568
 
589
- const result = await serviceRef.current.sendMessageData(query);
569
+ const result = await serviceRef.current.sendMessageData(query);
590
570
 
591
- if (result.error) {
592
- return { error: result.error };
593
- }
571
+ if (result.error) {
572
+ return { error: result.error };
573
+ }
594
574
 
595
- return {
596
- query: query,
597
- message: {
598
- ...result.data,
599
- worksheetId: config.worksheetId,
600
- },
601
- };
602
- },
603
- [config.worksheetId],
604
- );
575
+ return {
576
+ query: query,
577
+ message: {
578
+ ...result.data,
579
+ worksheetId: config.worksheetId,
580
+ },
581
+ };
582
+ }, [config.worksheetId]);
605
583
 
606
584
  return {
607
585
  sendMessage,
@@ -609,11 +587,16 @@ export function useSpotterAgent(config: SpotterAgentEmbedViewConfig) {
609
587
  }
610
588
 
611
589
  export {
590
+ LiveboardViewConfig,
591
+ SearchViewConfig,
592
+ AppViewConfig,
612
593
  Page,
594
+ RuntimeFilter,
613
595
  RuntimeFilterOp,
614
596
  EmbedEvent,
615
597
  HostEvent,
616
598
  Action,
599
+ FrameParams,
617
600
  HomeLeftNavItem,
618
601
  HomepageModule,
619
602
  LogLevel,
@@ -621,11 +604,3 @@ export {
621
604
  ListPageColumns,
622
605
  CustomActionsPosition,
623
606
  } from '../index';
624
-
625
- export type {
626
- RuntimeFilter,
627
- LiveboardViewConfig,
628
- SearchViewConfig,
629
- AppViewConfig,
630
- FrameParams,
631
- } from '../index';