@thoughtspot/visual-embed-sdk 1.46.0 → 1.46.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 (176) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +2 -2
  3. package/cjs/src/auth.d.ts +29 -4
  4. package/cjs/src/auth.d.ts.map +1 -1
  5. package/cjs/src/auth.js +30 -5
  6. package/cjs/src/auth.js.map +1 -1
  7. package/cjs/src/css-variables.d.ts +17 -17
  8. package/cjs/src/embed/app.d.ts +61 -33
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +11 -4
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +34 -1
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +2 -2
  15. package/cjs/src/embed/base.js +2 -2
  16. package/cjs/src/embed/bodyless-conversation.d.ts +5 -5
  17. package/cjs/src/embed/bodyless-conversation.js +4 -4
  18. package/cjs/src/embed/conversation.d.ts +43 -30
  19. package/cjs/src/embed/conversation.d.ts.map +1 -1
  20. package/cjs/src/embed/conversation.js +10 -11
  21. package/cjs/src/embed/conversation.js.map +1 -1
  22. package/cjs/src/embed/conversation.spec.js +27 -0
  23. package/cjs/src/embed/conversation.spec.js.map +1 -1
  24. package/cjs/src/embed/liveboard.d.ts +42 -36
  25. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  26. package/cjs/src/embed/liveboard.js +3 -3
  27. package/cjs/src/embed/liveboard.js.map +1 -1
  28. package/cjs/src/embed/liveboard.spec.js +1 -1
  29. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  30. package/cjs/src/embed/sage.d.ts +5 -5
  31. package/cjs/src/embed/sage.js +1 -1
  32. package/cjs/src/embed/search-bar.d.ts +7 -7
  33. package/cjs/src/embed/search-bar.js +1 -1
  34. package/cjs/src/embed/search.d.ts +16 -14
  35. package/cjs/src/embed/search.d.ts.map +1 -1
  36. package/cjs/src/embed/search.js +3 -2
  37. package/cjs/src/embed/search.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.d.ts +4 -4
  39. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  40. package/cjs/src/embed/ts-embed.js +13 -7
  41. package/cjs/src/embed/ts-embed.js.map +1 -1
  42. package/cjs/src/embed/ts-embed.spec.js +35 -0
  43. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  44. package/cjs/src/react/index.d.ts +15 -15
  45. package/cjs/src/react/index.js +12 -12
  46. package/cjs/src/tokenizedFetch.d.ts +1 -1
  47. package/cjs/src/tokenizedFetch.js +1 -1
  48. package/cjs/src/types.d.ts +653 -276
  49. package/cjs/src/types.d.ts.map +1 -1
  50. package/cjs/src/types.js +274 -208
  51. package/cjs/src/types.js.map +1 -1
  52. package/cjs/src/utils/graphql/answerService/answerService.d.ts +4 -2
  53. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  54. package/cjs/src/utils/graphql/answerService/answerService.js +6 -4
  55. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  56. package/cjs/src/utils/graphql/answerService/answerService.spec.js +55 -0
  57. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  58. package/cjs/src/utils.d.ts +9 -0
  59. package/cjs/src/utils.d.ts.map +1 -1
  60. package/cjs/src/utils.js +10 -1
  61. package/cjs/src/utils.js.map +1 -1
  62. package/dist/{index-BQvLEoxp.js → index-DkizS4xM.js} +1 -1
  63. package/dist/src/auth.d.ts +29 -4
  64. package/dist/src/auth.d.ts.map +1 -1
  65. package/dist/src/css-variables.d.ts +17 -17
  66. package/dist/src/embed/app.d.ts +61 -33
  67. package/dist/src/embed/app.d.ts.map +1 -1
  68. package/dist/src/embed/base.d.ts +2 -2
  69. package/dist/src/embed/bodyless-conversation.d.ts +5 -5
  70. package/dist/src/embed/conversation.d.ts +43 -30
  71. package/dist/src/embed/conversation.d.ts.map +1 -1
  72. package/dist/src/embed/liveboard.d.ts +42 -36
  73. package/dist/src/embed/liveboard.d.ts.map +1 -1
  74. package/dist/src/embed/sage.d.ts +5 -5
  75. package/dist/src/embed/search-bar.d.ts +7 -7
  76. package/dist/src/embed/search.d.ts +16 -14
  77. package/dist/src/embed/search.d.ts.map +1 -1
  78. package/dist/src/embed/ts-embed.d.ts +4 -4
  79. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  80. package/dist/src/react/index.d.ts +15 -15
  81. package/dist/src/tokenizedFetch.d.ts +1 -1
  82. package/dist/src/types.d.ts +653 -276
  83. package/dist/src/types.d.ts.map +1 -1
  84. package/dist/src/utils/graphql/answerService/answerService.d.ts +4 -2
  85. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  86. package/dist/src/utils.d.ts +9 -0
  87. package/dist/src/utils.d.ts.map +1 -1
  88. package/dist/tsembed-react.es.js +383 -290
  89. package/dist/tsembed-react.js +382 -289
  90. package/dist/tsembed.es.js +375 -282
  91. package/dist/tsembed.js +374 -281
  92. package/dist/visual-embed-sdk-react-full.d.ts +880 -431
  93. package/dist/visual-embed-sdk-react.d.ts +873 -427
  94. package/dist/visual-embed-sdk.d.ts +879 -430
  95. package/lib/package.json +2 -2
  96. package/lib/src/auth.d.ts +29 -4
  97. package/lib/src/auth.d.ts.map +1 -1
  98. package/lib/src/auth.js +30 -5
  99. package/lib/src/auth.js.map +1 -1
  100. package/lib/src/css-variables.d.ts +17 -17
  101. package/lib/src/embed/app.d.ts +61 -33
  102. package/lib/src/embed/app.d.ts.map +1 -1
  103. package/lib/src/embed/app.js +12 -5
  104. package/lib/src/embed/app.js.map +1 -1
  105. package/lib/src/embed/app.spec.js +34 -1
  106. package/lib/src/embed/app.spec.js.map +1 -1
  107. package/lib/src/embed/base.d.ts +2 -2
  108. package/lib/src/embed/base.js +2 -2
  109. package/lib/src/embed/bodyless-conversation.d.ts +5 -5
  110. package/lib/src/embed/bodyless-conversation.js +4 -4
  111. package/lib/src/embed/conversation.d.ts +43 -30
  112. package/lib/src/embed/conversation.d.ts.map +1 -1
  113. package/lib/src/embed/conversation.js +11 -11
  114. package/lib/src/embed/conversation.js.map +1 -1
  115. package/lib/src/embed/conversation.spec.js +27 -0
  116. package/lib/src/embed/conversation.spec.js.map +1 -1
  117. package/lib/src/embed/liveboard.d.ts +42 -36
  118. package/lib/src/embed/liveboard.d.ts.map +1 -1
  119. package/lib/src/embed/liveboard.js +3 -3
  120. package/lib/src/embed/liveboard.js.map +1 -1
  121. package/lib/src/embed/liveboard.spec.js +1 -1
  122. package/lib/src/embed/liveboard.spec.js.map +1 -1
  123. package/lib/src/embed/sage.d.ts +5 -5
  124. package/lib/src/embed/sage.js +1 -1
  125. package/lib/src/embed/search-bar.d.ts +7 -7
  126. package/lib/src/embed/search-bar.js +1 -1
  127. package/lib/src/embed/search.d.ts +16 -14
  128. package/lib/src/embed/search.d.ts.map +1 -1
  129. package/lib/src/embed/search.js +3 -2
  130. package/lib/src/embed/search.js.map +1 -1
  131. package/lib/src/embed/ts-embed.d.ts +4 -4
  132. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  133. package/lib/src/embed/ts-embed.js +13 -7
  134. package/lib/src/embed/ts-embed.js.map +1 -1
  135. package/lib/src/embed/ts-embed.spec.js +35 -0
  136. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  137. package/lib/src/react/index.d.ts +15 -15
  138. package/lib/src/react/index.js +12 -12
  139. package/lib/src/tokenizedFetch.d.ts +1 -1
  140. package/lib/src/tokenizedFetch.js +1 -1
  141. package/lib/src/types.d.ts +653 -276
  142. package/lib/src/types.d.ts.map +1 -1
  143. package/lib/src/types.js +274 -208
  144. package/lib/src/types.js.map +1 -1
  145. package/lib/src/utils/graphql/answerService/answerService.d.ts +4 -2
  146. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  147. package/lib/src/utils/graphql/answerService/answerService.js +5 -3
  148. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  149. package/lib/src/utils/graphql/answerService/answerService.spec.js +55 -0
  150. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  151. package/lib/src/utils.d.ts +9 -0
  152. package/lib/src/utils.d.ts.map +1 -1
  153. package/lib/src/utils.js +8 -0
  154. package/lib/src/utils.js.map +1 -1
  155. package/package.json +2 -2
  156. package/src/auth.ts +30 -5
  157. package/src/css-variables.ts +17 -17
  158. package/src/embed/app.spec.ts +46 -1
  159. package/src/embed/app.ts +73 -36
  160. package/src/embed/base.ts +2 -2
  161. package/src/embed/bodyless-conversation.ts +5 -5
  162. package/src/embed/conversation.spec.ts +37 -0
  163. package/src/embed/conversation.ts +55 -38
  164. package/src/embed/liveboard.spec.ts +1 -1
  165. package/src/embed/liveboard.ts +42 -36
  166. package/src/embed/sage.ts +5 -5
  167. package/src/embed/search-bar.tsx +7 -7
  168. package/src/embed/search.ts +16 -14
  169. package/src/embed/ts-embed.spec.ts +42 -0
  170. package/src/embed/ts-embed.ts +12 -7
  171. package/src/react/index.tsx +15 -15
  172. package/src/tokenizedFetch.ts +1 -1
  173. package/src/types.ts +652 -275
  174. package/src/utils/graphql/answerService/answerService.spec.ts +62 -0
  175. package/src/utils/graphql/answerService/answerService.ts +6 -3
  176. package/src/utils.ts +14 -0
@@ -327,6 +327,43 @@ describe('ConversationEmbed', () => {
327
327
  );
328
328
  });
329
329
 
330
+ it('should render the conversation embed with deprecated standalone enablePastConversationsSidebar flag', async () => {
331
+ const viewConfig: SpotterEmbedViewConfig = {
332
+ worksheetId: 'worksheetId',
333
+ searchOptions: {
334
+ searchQuery: 'searchQuery',
335
+ },
336
+ enablePastConversationsSidebar: true,
337
+ };
338
+
339
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
340
+ await conversationEmbed.render();
341
+ expectUrlMatchesWithParams(
342
+ getIFrameSrc(),
343
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&enablePastConversationsSidebar=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
344
+ );
345
+ });
346
+
347
+ it('should prefer spotterSidebarConfig.enablePastConversationsSidebar over deprecated standalone flag', async () => {
348
+ const viewConfig: SpotterEmbedViewConfig = {
349
+ worksheetId: 'worksheetId',
350
+ searchOptions: {
351
+ searchQuery: 'searchQuery',
352
+ },
353
+ enablePastConversationsSidebar: false,
354
+ spotterSidebarConfig: {
355
+ enablePastConversationsSidebar: true,
356
+ },
357
+ };
358
+
359
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
360
+ await conversationEmbed.render();
361
+ expectUrlMatchesWithParams(
362
+ getIFrameSrc(),
363
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&enablePastConversationsSidebar=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
364
+ );
365
+ });
366
+
330
367
  it('should render the conversation embed with all boolean flags set', async () => {
331
368
  const viewConfig: SpotterEmbedViewConfig = {
332
369
  worksheetId: 'worksheetId',
@@ -2,7 +2,7 @@ import isUndefined from 'lodash/isUndefined';
2
2
  import { ERROR_MESSAGE } from '../errors';
3
3
  import { Param, BaseViewConfig, RuntimeFilter, RuntimeParameter, ErrorDetailsTypes, EmbedErrorCodes } from '../types';
4
4
  import { TsEmbed } from './ts-embed';
5
- import { getQueryParamString, getFilterQuery, getRuntimeParameters, validateHttpUrl, setParamIfDefined } from '../utils';
5
+ import { getQueryParamString, getFilterQuery, getRuntimeParameters, validateHttpUrl, setParamIfDefined, resolveEnablePastConversationsSidebar } from '../utils';
6
6
 
7
7
  /**
8
8
  * Configuration for search options
@@ -18,82 +18,82 @@ export interface SearchOptions {
18
18
  * Configuration for the Spotter sidebar.
19
19
  * Can be used in SpotterEmbed and AppEmbed.
20
20
  * @group Embed components
21
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
21
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
22
22
  */
23
23
  export interface SpotterSidebarViewConfig {
24
24
  /**
25
25
  * Controls the visibility of the past conversations sidebar.
26
26
  * @default false
27
- * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
27
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
28
28
  */
29
29
  enablePastConversationsSidebar?: boolean;
30
30
  /**
31
31
  * Custom title text for the sidebar header.
32
32
  * Defaults to translated "Spotter" text.
33
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
33
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
34
34
  */
35
35
  spotterSidebarTitle?: string;
36
36
  /**
37
37
  * Boolean to set the default expanded state of the sidebar.
38
38
  * @default false
39
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
39
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
40
40
  */
41
41
  spotterSidebarDefaultExpanded?: boolean;
42
42
  /**
43
43
  * Custom label text for the rename action in the conversation edit menu.
44
44
  * Defaults to translated "Rename" text.
45
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
45
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
46
46
  */
47
47
  spotterChatRenameLabel?: string;
48
48
  /**
49
49
  * Custom label text for the delete action in the conversation edit menu.
50
50
  * Defaults to translated "DELETE" text.
51
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
51
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
52
52
  */
53
53
  spotterChatDeleteLabel?: string;
54
54
  /**
55
55
  * Custom title text for the delete conversation confirmation modal.
56
56
  * Defaults to translated "Delete chat" text.
57
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
57
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
58
58
  */
59
59
  spotterDeleteConversationModalTitle?: string;
60
60
  /**
61
61
  * Custom message text for the past conversation banner alert.
62
62
  * Defaults to translated alert message.
63
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
63
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
64
64
  */
65
65
  spotterPastConversationAlertMessage?: string;
66
66
  /**
67
67
  * Custom URL for the documentation/best practices link.
68
68
  * Defaults to ThoughtSpot docs URL based on release version.
69
69
  * Note: URL must include the protocol (e.g., `https://www.example.com`).
70
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
70
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
71
71
  */
72
72
  spotterDocumentationUrl?: string;
73
73
  /**
74
74
  * Custom label text for the best practices button in the footer.
75
75
  * Defaults to translated "Best Practices" text.
76
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
76
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
77
77
  */
78
78
  spotterBestPracticesLabel?: string;
79
79
  /**
80
80
  * Number of conversations to fetch per batch when loading conversation history.
81
81
  * @default 30
82
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
82
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
83
83
  */
84
84
  spotterConversationsBatchSize?: number;
85
85
  /**
86
86
  * Custom title text for the "New Chat" button in the sidebar.
87
87
  * Defaults to translated "New Chat" text.
88
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
88
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
89
89
  */
90
90
  spotterNewChatButtonTitle?: string;
91
91
  }
92
92
 
93
93
  /**
94
94
  * Configuration for customizing Spotter chat UI branding.
95
- * @group Embed components
96
95
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
96
+ * @group Embed components
97
97
  */
98
98
  export interface SpotterChatViewConfig {
99
99
  /**
@@ -133,6 +133,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
133
133
  * but still display the selected data source.
134
134
  *
135
135
  * Supported embed types: `SpotterEmbed`
136
+ * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
136
137
  * @example
137
138
  * ```js
138
139
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -140,13 +141,13 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
140
141
  * disableSourceSelection : true,
141
142
  * })
142
143
  * ```
143
- * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
144
144
  */
145
145
  disableSourceSelection?: boolean;
146
146
  /**
147
147
  * hideSourceSelection : Hide data source selection
148
148
  *
149
149
  * Supported embed types: `SpotterEmbed`
150
+ * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
150
151
  * @example
151
152
  * ```js
152
153
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -154,15 +155,14 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
154
155
  * hideSourceSelection : true,
155
156
  * })
156
157
  * ```
157
- * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
158
158
  */
159
159
  hideSourceSelection?: boolean;
160
160
  /**
161
161
  * Flag to control Data panel experience
162
162
  *
163
163
  * Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
164
+ * @deprecated from SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
164
165
  * @default true
165
- * @deprecated from SDK 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
166
166
  * @example
167
167
  * ```js
168
168
  * // Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
@@ -179,6 +179,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
179
179
  * default is false.
180
180
  *
181
181
  * Supported embed types: `SpotterEmbed`
182
+ * @version SDK: 1.36.0 | ThoughtSpot: 10.5.0.cl
182
183
  * @example
183
184
  * ```js
184
185
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -186,7 +187,6 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
186
187
  * showSpotterLimitations : true,
187
188
  * })
188
189
  * ```
189
- * @version SDK: 1.36.0 | ThoughtSpot: 10.5.0.cl
190
190
  */
191
191
  showSpotterLimitations?: boolean;
192
192
  /**
@@ -194,6 +194,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
194
194
  * the initial screen of the conversation.
195
195
  *
196
196
  * Supported embed types: `SpotterEmbed`
197
+ * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
197
198
  * @example
198
199
  * ```js
199
200
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -201,7 +202,6 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
201
202
  * hideSampleQuestions : true,
202
203
  * })
203
204
  * ```
204
- * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
205
205
  */
206
206
  hideSampleQuestions?: boolean;
207
207
  /**
@@ -209,6 +209,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
209
209
  * visualization, or Liveboard.
210
210
  *
211
211
  * Supported embed types: `SpotterEmbed`
212
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
212
213
  * @example
213
214
  * ```js
214
215
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -222,7 +223,6 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
222
223
  * ],
223
224
  * })
224
225
  * ```
225
- * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
226
226
  */
227
227
  runtimeFilters?: RuntimeFilter[];
228
228
  /**
@@ -233,14 +233,15 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
233
233
  * (default behavior before SDK 1.45.0).
234
234
  *
235
235
  * Supported embed types: `SpotterEmbed`
236
- * @default true
237
236
  * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
237
+ * @default true
238
238
  */
239
239
  excludeRuntimeFiltersfromURL?: boolean;
240
240
  /**
241
241
  * The list of runtime parameters to apply to the conversation.
242
242
  *
243
243
  * Supported embed types: `SpotterEmbed`
244
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
244
245
  * @example
245
246
  * ```js
246
247
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -253,7 +254,6 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
253
254
  * ],
254
255
  * })
255
256
  * ```
256
- * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
257
257
  */
258
258
  runtimeParameters?: RuntimeParameter[];
259
259
  /**
@@ -264,14 +264,15 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
264
264
  * the iframe URL instead (default behavior before SDK 1.45.0).
265
265
  *
266
266
  * Supported embed types: `SpotterEmbed`
267
- * @default true
268
267
  * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
268
+ * @default true
269
269
  */
270
270
  excludeRuntimeParametersfromURL?: boolean;
271
271
  /**
272
272
  * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
273
273
  *
274
274
  * Supported embed types: `SpotterEmbed`
275
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
275
276
  * @default false
276
277
  * @example
277
278
  * ```js
@@ -280,17 +281,30 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
280
281
  * updatedSpotterChatPrompt : true,
281
282
  * })
282
283
  * ```
283
- * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
284
284
  */
285
285
  updatedSpotterChatPrompt?: boolean;
286
+ /**
287
+ * Controls the visibility of the past conversations sidebar.
288
+ *
289
+ * Supported embed types: `SpotterEmbed`
290
+ * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
291
+ * @deprecated from SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
292
+ * Use `spotterSidebarConfig.enablePastConversationsSidebar`.
293
+ * @default false
294
+ */
295
+ enablePastConversationsSidebar?: boolean;
286
296
  /**
287
297
  * Configuration for the Spotter sidebar UI customization.
288
298
  *
289
299
  * Supported embed types: `SpotterEmbed`, `AppEmbed`
300
+ * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
290
301
  * @example
291
302
  * ```js
292
303
  * const embed = new SpotterEmbed('#tsEmbed', {
293
- * ... //other embed view config
304
+ * worksheetId: 'worksheet-id',
305
+ * // Deprecated standalone flag (backward compatibility)
306
+ * enablePastConversationsSidebar: false,
307
+ * // Recommended config; this value takes precedence
294
308
  * spotterSidebarConfig: {
295
309
  * enablePastConversationsSidebar: true,
296
310
  * spotterSidebarTitle: 'My Conversations',
@@ -298,7 +312,6 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
298
312
  * },
299
313
  * })
300
314
  * ```
301
- * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
302
315
  */
303
316
  spotterSidebarConfig?: SpotterSidebarViewConfig;
304
317
  /**
@@ -306,6 +319,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
306
319
  * branding in tool response cards.
307
320
  *
308
321
  * Supported embed types: `SpotterEmbed`
322
+ * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
309
323
  * @example
310
324
  * ```js
311
325
  * const embed = new SpotterEmbed('#tsEmbed', {
@@ -316,15 +330,14 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
316
330
  * },
317
331
  * })
318
332
  * ```
319
- * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
320
333
  */
321
334
  spotterChatConfig?: SpotterChatViewConfig;
322
335
  }
323
336
 
324
337
  /**
325
338
  * The configuration for the embedded spotterEmbed options.
326
- * @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
327
339
  * Use {@link SpotterEmbedViewConfig} instead
340
+ * @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
328
341
  * @group Embed components
329
342
  */
330
343
  // eslint-disable-next-line @typescript-eslint/no-empty-object-type
@@ -332,6 +345,7 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {}
332
345
 
333
346
  /**
334
347
  * Embed ThoughtSpot AI Conversation.
348
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
335
349
  * @group Embed components
336
350
  * @example
337
351
  * ```js
@@ -343,7 +357,6 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {}
343
357
  * });
344
358
  * conversation.render();
345
359
  * ```
346
- * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
347
360
  */
348
361
  export class SpotterEmbed extends TsEmbed {
349
362
  constructor(container: HTMLElement, protected viewConfig: SpotterEmbedViewConfig) {
@@ -376,7 +389,7 @@ export class SpotterEmbed extends TsEmbed {
376
389
 
377
390
  // Extract sidebar config properties
378
391
  const {
379
- enablePastConversationsSidebar,
392
+ enablePastConversationsSidebar: sidebarEnablePastConversationsSidebar,
380
393
  spotterSidebarTitle,
381
394
  spotterSidebarDefaultExpanded,
382
395
  spotterChatRenameLabel,
@@ -388,6 +401,10 @@ export class SpotterEmbed extends TsEmbed {
388
401
  spotterConversationsBatchSize,
389
402
  spotterNewChatButtonTitle,
390
403
  } = spotterSidebarConfig || {};
404
+ const resolvedEnablePastConversationsSidebar = resolveEnablePastConversationsSidebar({
405
+ spotterSidebarConfigValue: sidebarEnablePastConversationsSidebar,
406
+ standaloneValue: this.viewConfig.enablePastConversationsSidebar,
407
+ });
391
408
 
392
409
  if (!worksheetId) {
393
410
  this.handleError({
@@ -407,6 +424,12 @@ export class SpotterEmbed extends TsEmbed {
407
424
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
408
425
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
409
426
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
427
+ setParamIfDefined(
428
+ queryParams,
429
+ Param.EnablePastConversationsSidebar,
430
+ resolvedEnablePastConversationsSidebar,
431
+ true,
432
+ );
410
433
  setParamIfDefined(queryParams, Param.SpotterSidebarDefaultExpanded, spotterSidebarDefaultExpanded, true);
411
434
 
412
435
  // String params
@@ -456,16 +479,10 @@ export class SpotterEmbed extends TsEmbed {
456
479
  excludeRuntimeFiltersfromURL,
457
480
  runtimeParameters,
458
481
  excludeRuntimeParametersfromURL,
459
- spotterSidebarConfig,
460
482
  } = this.viewConfig;
461
483
  const path = 'insights/conv-assist';
462
484
  const queryParams = this.getEmbedParamsObject();
463
485
 
464
- const enablePastConversationsSidebar = spotterSidebarConfig?.enablePastConversationsSidebar;
465
- if (!isUndefined(enablePastConversationsSidebar)) {
466
- queryParams[Param.EnablePastConversationsSidebar] = !!enablePastConversationsSidebar;
467
- }
468
-
469
486
  let query = '';
470
487
  const queryParamsString = getQueryParamString(queryParams, true);
471
488
  if (queryParamsString) {
@@ -500,8 +517,9 @@ export class SpotterEmbed extends TsEmbed {
500
517
 
501
518
  /**
502
519
  * Embed ThoughtSpot AI Conversation.
503
- * @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
504
520
  * Use {@link SpotterEmbed} instead
521
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
522
+ * @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
505
523
  * @group Embed components
506
524
  * @example
507
525
  * ```js
@@ -513,7 +531,6 @@ export class SpotterEmbed extends TsEmbed {
513
531
  * });
514
532
  * conversation.render();
515
533
  * ```
516
- * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
517
534
  */
518
535
  export class ConversationEmbed extends SpotterEmbed {
519
536
  constructor(container: HTMLElement, protected viewConfig: ConversationViewConfig) {
@@ -169,7 +169,7 @@ describe('Liveboard/viz embed tests', () => {
169
169
  });
170
170
  });
171
171
 
172
- test('should set isLiveboardStylingAndGroupingEnabled to true in url', async () => {
172
+ test('should set isLiveboardStylingAndGroupingEnabled to true in url (deprecated, use isLiveboardMasterpiecesEnabled)', async () => {
173
173
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
174
174
  isLiveboardStylingAndGroupingEnabled: true,
175
175
  ...defaultViewConfig,