@thoughtspot/visual-embed-sdk 1.50.0 → 1.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/css-variables.d.ts +95 -0
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +136 -15
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +59 -37
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +419 -149
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/conversation.d.ts +230 -1
  11. package/cjs/src/embed/conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/conversation.js +30 -16
  13. package/cjs/src/embed/conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.spec.js +221 -17
  15. package/cjs/src/embed/conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/events.spec.js +635 -0
  17. package/cjs/src/embed/events.spec.js.map +1 -1
  18. package/cjs/src/embed/host-events.spec.js +151 -0
  19. package/cjs/src/embed/host-events.spec.js.map +1 -1
  20. package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
  21. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  22. package/cjs/src/embed/hostEventClient/contracts.js +11 -1
  23. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  24. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  25. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
  27. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +218 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
  31. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/utils.js +32 -2
  33. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
  35. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +42 -1
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +26 -6
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +83 -2
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +14 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +61 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +34 -0
  49. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  51. package/cjs/src/embed/spotter-viz-utils.spec.js +17 -0
  52. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
  53. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  54. package/cjs/src/embed/ts-embed.js +29 -7
  55. package/cjs/src/embed/ts-embed.js.map +1 -1
  56. package/cjs/src/embed/ts-embed.spec.js +146 -0
  57. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  58. package/cjs/src/errors.d.ts +1 -0
  59. package/cjs/src/errors.d.ts.map +1 -1
  60. package/cjs/src/errors.js +1 -0
  61. package/cjs/src/errors.js.map +1 -1
  62. package/cjs/src/index.d.ts +2 -2
  63. package/cjs/src/index.d.ts.map +1 -1
  64. package/cjs/src/index.js +3 -2
  65. package/cjs/src/index.js.map +1 -1
  66. package/cjs/src/mixpanel-service.d.ts +4 -0
  67. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  68. package/cjs/src/mixpanel-service.js +4 -0
  69. package/cjs/src/mixpanel-service.js.map +1 -1
  70. package/cjs/src/react/util.spec.js +251 -0
  71. package/cjs/src/react/util.spec.js.map +1 -1
  72. package/cjs/src/types.d.ts +573 -11
  73. package/cjs/src/types.d.ts.map +1 -1
  74. package/cjs/src/types.js +519 -2
  75. package/cjs/src/types.js.map +1 -1
  76. package/cjs/src/utils/processData.spec.js +93 -0
  77. package/cjs/src/utils/processData.spec.js.map +1 -1
  78. package/cjs/src/utils/processTrigger.spec.js +61 -0
  79. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  80. package/dist/{index-B5xoN6Cp.js → index-aBzH5ZwF.js} +1 -1
  81. package/dist/src/css-variables.d.ts +95 -0
  82. package/dist/src/css-variables.d.ts.map +1 -1
  83. package/dist/src/embed/app.d.ts +136 -15
  84. package/dist/src/embed/app.d.ts.map +1 -1
  85. package/dist/src/embed/conversation.d.ts +230 -1
  86. package/dist/src/embed/conversation.d.ts.map +1 -1
  87. package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
  88. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  89. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  90. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  91. package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
  92. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +42 -1
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +8 -1
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  97. package/dist/src/embed/spotter-viz-utils.d.ts +34 -0
  98. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  99. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  100. package/dist/src/errors.d.ts +1 -0
  101. package/dist/src/errors.d.ts.map +1 -1
  102. package/dist/src/index.d.ts +2 -2
  103. package/dist/src/index.d.ts.map +1 -1
  104. package/dist/src/mixpanel-service.d.ts +4 -0
  105. package/dist/src/mixpanel-service.d.ts.map +1 -1
  106. package/dist/src/types.d.ts +573 -11
  107. package/dist/src/types.d.ts.map +1 -1
  108. package/dist/tsembed-react.es.js +936 -142
  109. package/dist/tsembed-react.js +935 -141
  110. package/dist/tsembed.es.js +935 -142
  111. package/dist/tsembed.js +933 -140
  112. package/dist/visual-embed-sdk-react-full.d.ts +1147 -44
  113. package/dist/visual-embed-sdk-react.d.ts +1153 -46
  114. package/dist/visual-embed-sdk.d.ts +1161 -46
  115. package/lib/package.json +1 -1
  116. package/lib/src/css-variables.d.ts +95 -0
  117. package/lib/src/css-variables.d.ts.map +1 -1
  118. package/lib/src/embed/app.d.ts +136 -15
  119. package/lib/src/embed/app.d.ts.map +1 -1
  120. package/lib/src/embed/app.js +60 -38
  121. package/lib/src/embed/app.js.map +1 -1
  122. package/lib/src/embed/app.spec.js +420 -150
  123. package/lib/src/embed/app.spec.js.map +1 -1
  124. package/lib/src/embed/conversation.d.ts +230 -1
  125. package/lib/src/embed/conversation.d.ts.map +1 -1
  126. package/lib/src/embed/conversation.js +31 -17
  127. package/lib/src/embed/conversation.js.map +1 -1
  128. package/lib/src/embed/conversation.spec.js +222 -18
  129. package/lib/src/embed/conversation.spec.js.map +1 -1
  130. package/lib/src/embed/events.spec.js +635 -0
  131. package/lib/src/embed/events.spec.js.map +1 -1
  132. package/lib/src/embed/host-events.spec.js +152 -1
  133. package/lib/src/embed/host-events.spec.js.map +1 -1
  134. package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
  135. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  136. package/lib/src/embed/hostEventClient/contracts.js +10 -0
  137. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  138. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  139. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  140. package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
  141. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  142. package/lib/src/embed/hostEventClient/host-event-client.spec.js +218 -0
  143. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  144. package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
  145. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  146. package/lib/src/embed/hostEventClient/utils.js +28 -1
  147. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  148. package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
  149. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  150. package/lib/src/embed/liveboard.d.ts +42 -1
  151. package/lib/src/embed/liveboard.d.ts.map +1 -1
  152. package/lib/src/embed/liveboard.js +26 -6
  153. package/lib/src/embed/liveboard.js.map +1 -1
  154. package/lib/src/embed/liveboard.spec.js +83 -2
  155. package/lib/src/embed/liveboard.spec.js.map +1 -1
  156. package/lib/src/embed/spotter-utils.d.ts +8 -1
  157. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  158. package/lib/src/embed/spotter-utils.js +12 -0
  159. package/lib/src/embed/spotter-utils.js.map +1 -1
  160. package/lib/src/embed/spotter-utils.spec.js +62 -1
  161. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  162. package/lib/src/embed/spotter-viz-utils.d.ts +34 -0
  163. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  164. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  165. package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
  166. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +29 -7
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.js +146 -0
  171. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  172. package/lib/src/errors.d.ts +1 -0
  173. package/lib/src/errors.d.ts.map +1 -1
  174. package/lib/src/errors.js +1 -0
  175. package/lib/src/errors.js.map +1 -1
  176. package/lib/src/index.d.ts +2 -2
  177. package/lib/src/index.d.ts.map +1 -1
  178. package/lib/src/index.js +2 -2
  179. package/lib/src/index.js.map +1 -1
  180. package/lib/src/mixpanel-service.d.ts +4 -0
  181. package/lib/src/mixpanel-service.d.ts.map +1 -1
  182. package/lib/src/mixpanel-service.js +4 -0
  183. package/lib/src/mixpanel-service.js.map +1 -1
  184. package/lib/src/react/util.spec.js +251 -0
  185. package/lib/src/react/util.spec.js.map +1 -1
  186. package/lib/src/types.d.ts +573 -11
  187. package/lib/src/types.d.ts.map +1 -1
  188. package/lib/src/types.js +519 -2
  189. package/lib/src/types.js.map +1 -1
  190. package/lib/src/utils/processData.spec.js +93 -0
  191. package/lib/src/utils/processData.spec.js.map +1 -1
  192. package/lib/src/utils/processTrigger.spec.js +61 -0
  193. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  194. package/lib/src/visual-embed-sdk.d.ts +1161 -46
  195. package/package.json +1 -1
  196. package/src/css-variables.ts +118 -0
  197. package/src/embed/app.spec.ts +530 -183
  198. package/src/embed/app.ts +209 -66
  199. package/src/embed/conversation.spec.ts +275 -21
  200. package/src/embed/conversation.ts +262 -17
  201. package/src/embed/events.spec.ts +757 -1
  202. package/src/embed/host-events.spec.ts +194 -0
  203. package/src/embed/hostEventClient/contracts.ts +57 -14
  204. package/src/embed/hostEventClient/host-event-client.spec.ts +338 -0
  205. package/src/embed/hostEventClient/host-event-client.ts +16 -0
  206. package/src/embed/hostEventClient/utils.spec.ts +204 -0
  207. package/src/embed/hostEventClient/utils.ts +37 -10
  208. package/src/embed/liveboard.spec.ts +108 -2
  209. package/src/embed/liveboard.ts +82 -14
  210. package/src/embed/spotter-utils.spec.ts +68 -1
  211. package/src/embed/spotter-utils.ts +16 -1
  212. package/src/embed/spotter-viz-utils.spec.ts +17 -0
  213. package/src/embed/spotter-viz-utils.ts +34 -0
  214. package/src/embed/ts-embed.spec.ts +186 -0
  215. package/src/embed/ts-embed.ts +30 -4
  216. package/src/errors.ts +1 -0
  217. package/src/index.ts +3 -1
  218. package/src/mixpanel-service.ts +4 -0
  219. package/src/react/util.spec.tsx +255 -0
  220. package/src/types.ts +575 -8
  221. package/src/utils/processData.spec.ts +97 -0
  222. package/src/utils/processTrigger.spec.ts +91 -0
package/src/embed/app.ts CHANGED
@@ -22,8 +22,8 @@ import {
22
22
  SpotterFileUploadFileTypes,
23
23
  } from '../types';
24
24
  import { V1Embed } from './ts-embed';
25
- import { SpotterChatViewConfig, SpotterSidebarViewConfig } from './conversation';
26
- import { buildSpotterSidebarAppInitData } from './spotter-utils';
25
+ import { SpotterChatViewConfig, SpotterSidebarViewConfig, SpotterQueryMode, SpotterShareConversationConfig } from './conversation';
26
+ import { buildSpotterSidebarAppInitData, buildSpotterShareConversationAppInitData } from './spotter-utils';
27
27
  import { SpotterVizConfig, buildSpotterVizAppInitData } from './spotter-viz-utils';
28
28
 
29
29
  /**
@@ -63,6 +63,10 @@ export enum Page {
63
63
  * Monitor Alerts Page
64
64
  */
65
65
  Monitor = 'monitor',
66
+ /**
67
+ * Collections listing page
68
+ */
69
+ Collections = 'collections',
66
70
  }
67
71
 
68
72
  /**
@@ -111,6 +115,9 @@ export enum HomePage {
111
115
  /**
112
116
  * Modular (v2) introduces the updated Modular Home Experience.
113
117
  * It serves as the foundational version of the home page.
118
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
119
+ * {@link HomePage.Focused} (V4) instead.
120
+ * @deprecated V1 and V2 home page experiences are deprecated.
114
121
  */
115
122
  Modular = 'v2',
116
123
  /**
@@ -120,7 +127,7 @@ export enum HomePage {
120
127
  ModularWithStylingChanges = 'v3',
121
128
  /**
122
129
  * Focused (v4) introduces the V4 homepage experience
123
- * in which Watchlist and recents and incorporated together
130
+ * in which Watchlist and recents and incorporated together
124
131
  * to form a more focused homepage.
125
132
  * Pre-requisite : spotter enablement
126
133
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
@@ -187,13 +194,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
187
194
  showPrimaryNavbar?: boolean;
188
195
  /**
189
196
  * Control the visibility of the left navigation panel on the home page
190
- * in the V2 and V3 navigation and home page experience.
197
+ * in the V3 and V4 navigation and home page experience.
191
198
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
192
199
  * navigation bars are visible, this flag will only hide the left navigation bar
193
200
  * on the home page.
194
201
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
195
202
  *
196
- * **Note**: This attribute is not supported in the classic (V1) experience.
203
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
204
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
197
205
  *
198
206
  * Supported embed types: `AppEmbed`
199
207
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -259,11 +267,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
259
267
  hideHamburger?: boolean;
260
268
  /**
261
269
  * Control the visibility of the object search
262
- * on the top navigation bar in the
263
- * V2 and V3 navigation experience.
270
+ * on the top navigation bar in the V3 navigation experience.
264
271
  *
265
- * **Note**: This attribute is not supported
266
- * in the classic (V1) experience.
272
+ * **Note**: The classic (V1) and V2 navigation experiences are
273
+ * deprecated. This attribute applies to the V3 navigation experience.
267
274
  *
268
275
  * Supported embed types: `AppEmbed`
269
276
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -281,8 +288,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
281
288
  * Control the visibility of the notification icon
282
289
  * on the top navigation bar in V3 navigation experience.
283
290
  *
284
- * **Note**: This attribute is not supported
285
- * in the classic (V1) and V2 experience modes.
291
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
292
+ * This attribute applies to the V3 experience.
286
293
  *
287
294
  * Supported embed types: `AppEmbed`
288
295
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -297,14 +304,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
297
304
  */
298
305
  hideNotification?: boolean;
299
306
  /**
300
- * Control the visibility of the application selection menu
301
- * in the top navigation bar in the V2 experience.
307
+ * Control the visibility of the application selection menu.
302
308
  * In the V3 experience, it shows or hides application selection
303
309
  * icons on the left navigation panel.
304
310
  * By default, the application selection menu and icons are
305
311
  * shown in the UI.
306
312
  *
307
- * **Note**: This attribute is not supported in the classic (V1) experience.
313
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
314
+ * This attribute applies to the V3 experience.
308
315
  *
309
316
  * Supported embed types: `AppEmbed`
310
317
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -322,7 +329,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
322
329
  * Control the visibility of the Org switcher button on the nav-bar.
323
330
  * By default, the Org switcher button is shown.
324
331
  *
325
- * **Note**: This attribute is not supported in the classic (V1) experience.
332
+ * **Note**: The classic (V1) experience is deprecated. This attribute
333
+ * applies to V2 (deprecated), V3 and V4 experiences.
326
334
  *
327
335
  * Supported embed types: `AppEmbed`
328
336
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -481,6 +489,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
481
489
  * Supported embed types: `AppEmbed`
482
490
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
483
491
  * @default false
492
+ * Use the discoveryExperience.homePage option with
493
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
494
+ * {@link HomePage.Focused} (V4) instead.
495
+ * @deprecated The V1 and V2 home page experiences are deprecated.
484
496
  * @example
485
497
  * ```js
486
498
  * const embed = new AppEmbed('#tsEmbed', {
@@ -616,11 +628,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
616
628
  /**
617
629
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
618
630
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
619
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
631
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
620
632
  *
621
633
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
622
634
  * @type {boolean}
623
635
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
636
+ * @default true
624
637
  * @example
625
638
  * ```js
626
639
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -634,10 +647,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
634
647
 
635
648
  /**
636
649
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
650
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
637
651
  *
638
652
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
639
653
  * @type {boolean}
640
654
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
655
+ * @default true
641
656
  * @example
642
657
  * ```js
643
658
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -651,10 +666,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
651
666
 
652
667
  /**
653
668
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
669
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
654
670
  *
655
671
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
656
672
  * @type {boolean}
657
673
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
674
+ * @default true
658
675
  * @example
659
676
  * ```js
660
677
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -733,6 +750,40 @@ export interface AppViewConfig extends AllEmbedViewConfig {
733
750
  * ```
734
751
  */
735
752
  updatedSpotterChatPrompt?: boolean;
753
+ /**
754
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
755
+ *
756
+ * Supported embed types: `AppEmbed`
757
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
758
+ * @default false
759
+ * @example
760
+ * ```js
761
+ * const embed = new AppEmbed('#tsEmbed', {
762
+ * ... //other embed view config
763
+ * showSpotterRadiance : true,
764
+ * })
765
+ * ```
766
+ */
767
+ showSpotterRadiance?: boolean;
768
+ /**
769
+ * Sets the default query mode when Spotter loads — Fast Search or
770
+ * Research Mode. Applies fresh on every new session for this embed
771
+ * instance only; it does not persist as a user preference and does
772
+ * not affect other embeds or native ThoughtSpot usage.
773
+ * Only applicable when navigating to Spotter within the app.
774
+ *
775
+ * Supported embed types: `AppEmbed`
776
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
777
+ * @default SpotterQueryMode.FAST_SEARCH
778
+ * @example
779
+ * ```js
780
+ * const embed = new AppEmbed('#tsEmbed', {
781
+ * ... //other embed view config
782
+ * defaultQueryMode: SpotterQueryMode.RESEARCH,
783
+ * })
784
+ * ```
785
+ */
786
+ defaultQueryMode?: SpotterQueryMode;
736
787
  /**
737
788
  * Controls the visibility of the past conversations sidebar.
738
789
  *
@@ -758,6 +809,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
758
809
  * spotterSidebarConfig: {
759
810
  * enablePastConversationsSidebar: true,
760
811
  * spotterSidebarTitle: 'My Conversations',
812
+ * // Opt in to pin/unpin conversations in embedded Spotter
813
+ * spotterChatPinConfig: {
814
+ * enabled: true,
815
+ * },
761
816
  * },
762
817
  * })
763
818
  * ```
@@ -781,6 +836,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
781
836
  * ```
782
837
  */
783
838
  spotterChatConfig?: SpotterChatViewConfig;
839
+ /**
840
+ * Configuration for the Spotter conversation sharing feature.
841
+ *
842
+ * Supported embed types: `AppEmbed`
843
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
844
+ * @example
845
+ * ```js
846
+ * const embed = new AppEmbed('#tsEmbed', {
847
+ * ... //other embed view config
848
+ * spotterShareConversationConfig: {
849
+ * enableShareConversation: true,
850
+ * },
851
+ * })
852
+ * ```
853
+ */
854
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
855
+ /**
856
+ * Sets the default data sources (Models) for the Spotter experience shown on
857
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
858
+ * preselect the data sources available to Spotter, or the literal
859
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
860
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
861
+ * Auto mode in `SpotterEmbed`.
862
+ *
863
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
864
+ * `'auto_mode'` takes precedence and is selected by default.
865
+ *
866
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
867
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
868
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
869
+ *
870
+ * Supported embed types: `AppEmbed`
871
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
872
+ * @example
873
+ * ```js
874
+ * const embed = new AppEmbed('#tsEmbed', {
875
+ * ... // other embed view config
876
+ * discoveryExperience: { homePage: HomePage.Focused },
877
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
878
+ * })
879
+ * ```
880
+ */
881
+ spotterDataSources?: string[];
784
882
  /**
785
883
  * Configuration for the SpotterViz interface shown on the Liveboard.
786
884
  * Customize the brand name, description, chat input placeholder,
@@ -805,6 +903,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
805
903
  * { label: 'Tip', text: 'try asking about revenue by region' },
806
904
  * { label: 'Tip', text: 'use natural language' },
807
905
  * ],
906
+ * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
907
+ * liveboardBrandName: 'Reports',
908
+ * spotterBrandName: 'Analyst',
909
+ * insightTileBrandName: 'Insight card',
910
+ * insightTileViewPlanLabel: 'View plan',
911
+ * insightTileLoaderText: 'Generating insight',
808
912
  * },
809
913
  * })
810
914
  * ```
@@ -871,6 +975,22 @@ export interface AppViewConfig extends AllEmbedViewConfig {
871
975
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
872
976
  */
873
977
  visualOverrides?: VisualizationOverrides;
978
+
979
+ /**
980
+ * updatedSpotterExperience : Controls the updated Spotter experience.
981
+ *
982
+ * Supported embed types: `AppEmbed`
983
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
984
+ * @default false
985
+ * @example
986
+ * ```js
987
+ * const embed = new AppEmbed('#tsEmbed', {
988
+ * ... //other embed view config
989
+ * updatedSpotterExperience : true,
990
+ * })
991
+ * ```
992
+ */
993
+ updatedSpotterExperience?: boolean;
874
994
  }
875
995
 
876
996
  /**
@@ -881,6 +1001,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
881
1001
  embedParams?: {
882
1002
  spotterSidebarConfig?: SpotterSidebarViewConfig;
883
1003
  spotterVizConfig?: SpotterVizConfig;
1004
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
884
1005
  };
885
1006
  }
886
1007
 
@@ -930,7 +1051,8 @@ export class AppEmbed extends V1Embed {
930
1051
  this.viewConfig,
931
1052
  this.handleError.bind(this),
932
1053
  );
933
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
1054
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
1055
+ return buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
934
1056
  }
935
1057
 
936
1058
  /**
@@ -938,6 +1060,11 @@ export class AppEmbed extends V1Embed {
938
1060
  * embedded Liveboard or visualization.
939
1061
  */
940
1062
  protected getEmbedParams() {
1063
+ const params = this.getEmbedParamsObject();
1064
+ return getQueryParamString(params, true);
1065
+ }
1066
+
1067
+ protected getEmbedParamsObject() {
941
1068
  const {
942
1069
  tag,
943
1070
  hideTagFilterChips,
@@ -954,14 +1081,15 @@ export class AppEmbed extends V1Embed {
954
1081
  newConnectionsExperience,
955
1082
  fullHeight,
956
1083
  dataPanelV2 = true,
1084
+ updatedSpotterExperience,
957
1085
  hideLiveboardHeader = false,
958
1086
  showLiveboardTitle = true,
959
1087
  showLiveboardDescription = true,
960
1088
  showMaskedFilterChip = false,
961
- isLiveboardMasterpiecesEnabled = false,
1089
+ isLiveboardMasterpiecesEnabled,
962
1090
  newChartsLibrary,
963
1091
  hideHomepageLeftNav = false,
964
- modularHomeExperience = false,
1092
+ modularHomeExperience,
965
1093
  isLiveboardHeaderSticky = true,
966
1094
  enableAskSage,
967
1095
  collapseSearchBarInitially = false,
@@ -969,29 +1097,33 @@ export class AppEmbed extends V1Embed {
969
1097
  enableCustomColumnGroups = false,
970
1098
  dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
971
1099
  collapseSearchBar = true,
972
- isLiveboardCompactHeaderEnabled = false,
1100
+ isLiveboardCompactHeaderEnabled,
973
1101
  showLiveboardVerifiedBadge = true,
974
1102
  showLiveboardReverifyBanner = true,
975
- hideIrrelevantChipsInLiveboardTabs = false,
976
- isEnhancedFilterInteractivityEnabled = false,
1103
+ hideIrrelevantChipsInLiveboardTabs,
1104
+ isEnhancedFilterInteractivityEnabled,
977
1105
  homePageSearchBarMode,
978
1106
  isUnifiedSearchExperienceEnabled = true,
979
1107
  enablePendoHelp = true,
980
1108
  discoveryExperience,
981
- coverAndFilterOptionInPDF = false,
1109
+ coverAndFilterOptionInPDF,
982
1110
  isLiveboardStylingAndGroupingEnabled,
983
1111
  isPNGInScheduledEmailsEnabled = false,
984
- isLiveboardXLSXCSVDownloadEnabled = false,
985
- isGranularXLSXCSVSchedulesEnabled = false,
1112
+ isLiveboardXLSXCSVDownloadEnabled,
1113
+ isGranularXLSXCSVSchedulesEnabled,
986
1114
  isCentralizedLiveboardFilterUXEnabled = false,
1115
+ isScopedLiveboardFilteringEnabled,
987
1116
  isLinkParametersEnabled,
988
1117
  updatedSpotterChatPrompt,
1118
+ showSpotterRadiance,
1119
+ defaultQueryMode,
989
1120
  enableStopAnswerGenerationEmbed,
990
1121
  spotterChatConfig,
1122
+ spotterDataSources,
991
1123
  minimumHeight,
992
1124
  isThisPeriodInDateFiltersEnabled,
993
1125
  enableHomepageAnnouncement = false,
994
- isContinuousLiveboardPDFEnabled = false,
1126
+ isContinuousLiveboardPDFEnabled,
995
1127
  enableLiveboardDataCache,
996
1128
  } = this.viewConfig;
997
1129
 
@@ -1004,31 +1136,52 @@ export class AppEmbed extends V1Embed {
1004
1136
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
1005
1137
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
1006
1138
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
1007
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1139
+ if (!isUndefined(isLiveboardMasterpiecesEnabled)) {
1140
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1141
+ }
1008
1142
  if (newChartsLibrary !== undefined) {
1009
1143
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
1010
1144
  }
1011
1145
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
1012
1146
  params[Param.IsFullAppEmbed] = true;
1013
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
1014
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
1147
+ if (!isUndefined(isLiveboardCompactHeaderEnabled)) {
1148
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
1149
+ }
1150
+ if (!isUndefined(isEnhancedFilterInteractivityEnabled)) {
1151
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
1152
+ isEnhancedFilterInteractivityEnabled;
1153
+ }
1015
1154
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
1016
1155
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
1017
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1156
+ if (!isUndefined(hideIrrelevantChipsInLiveboardTabs)) {
1157
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1158
+ }
1018
1159
  if (isUnifiedSearchExperienceEnabled !== undefined) {
1019
1160
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
1020
1161
  }
1021
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1162
+ if (!isUndefined(coverAndFilterOptionInPDF)) {
1163
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1164
+ }
1022
1165
 
1023
1166
  params = this.getBaseQueryParams(params);
1024
1167
 
1025
1168
  if (!isUndefined(updatedSpotterChatPrompt)) {
1026
1169
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
1027
1170
  }
1171
+ if (!isUndefined(showSpotterRadiance)) {
1172
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
1173
+ }
1174
+ if (!isUndefined(defaultQueryMode)) {
1175
+ params[Param.DefaultQueryMode] = defaultQueryMode;
1176
+ }
1028
1177
  if (!isUndefined(enableStopAnswerGenerationEmbed)) {
1029
1178
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
1030
1179
  }
1031
1180
 
1181
+ if (spotterDataSources && spotterDataSources.length) {
1182
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
1183
+ }
1184
+
1032
1185
  // Handle spotterChatConfig params
1033
1186
  if (spotterChatConfig) {
1034
1187
  const {
@@ -1052,6 +1205,10 @@ export class AppEmbed extends V1Embed {
1052
1205
  }
1053
1206
  }
1054
1207
 
1208
+ if (!isUndefined(updatedSpotterExperience)) {
1209
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
1210
+ }
1211
+
1055
1212
  if (hideObjectSearch) {
1056
1213
  params[Param.HideObjectSearch] = !!hideObjectSearch;
1057
1214
  }
@@ -1140,6 +1297,12 @@ export class AppEmbed extends V1Embed {
1140
1297
  ] = isCentralizedLiveboardFilterUXEnabled;
1141
1298
  }
1142
1299
 
1300
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
1301
+ params[
1302
+ Param.isScopedLiveboardFilteringEnabled
1303
+ ] = isScopedLiveboardFilteringEnabled;
1304
+ }
1305
+
1143
1306
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
1144
1307
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
1145
1308
  }
@@ -1160,7 +1323,6 @@ export class AppEmbed extends V1Embed {
1160
1323
 
1161
1324
  params[Param.DataPanelV2Enabled] = dataPanelV2;
1162
1325
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
1163
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1164
1326
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
1165
1327
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
1166
1328
  if (dataPanelCustomGroupsAccordionInitialState
@@ -1181,41 +1343,21 @@ export class AppEmbed extends V1Embed {
1181
1343
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1182
1344
  }
1183
1345
 
1184
- // Set navigation to v2 by default to avoid problems like the app
1185
- // switcher (9-dot menu) not showing when v3 navigation is turned on
1186
- // at the cluster level.
1187
- // To use v3 navigation, we must manually set the discoveryExperience
1188
- // settings.
1189
- params[Param.NavigationVersion] = 'v2';
1190
- // Set homePageVersion to v2 by default to reset the LD flag value
1191
- // for the homepageVersion.
1192
- params[Param.HomepageVersion] = 'v2';
1193
- if (discoveryExperience) {
1194
- // primaryNavbarVersion v3 will enabled the new left navigation
1195
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
1196
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
1197
- // Enable the modularHomeExperience when Sliding is enabled.
1198
- params[Param.ModularHomeExperienceEnabled] = true;
1199
- }
1200
-
1201
- // homePage v2 will enable the modular home page
1202
- // and it will override the modularHomeExperience value
1203
- if (discoveryExperience.homePage === HomePage.Modular) {
1204
- params[Param.ModularHomeExperienceEnabled] = true;
1205
- }
1206
-
1207
- // ModularWithStylingChanges (v3) introduces the styling changes
1208
- // to the Modular Homepage.
1209
- // v3 will be the base version of homePageVersion.
1210
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
1211
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
1212
- }
1346
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
1347
+ // default experience, Need to send navigationVersion=v3 and
1348
+ // homepageVersion=v3 even when the no discoveryExperience /
1349
+ // modularHomeExperience config is set. Without these
1350
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
1351
+ // home page, so the defaults must be sent explicitly from the SDK.
1352
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
1353
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
1213
1354
 
1355
+ if (discoveryExperience) {
1214
1356
  // listPageVersion can be changed to v2 or v3
1215
1357
  if (discoveryExperience.listPageVersion !== undefined) {
1216
1358
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
1217
1359
  }
1218
-
1360
+
1219
1361
  if (discoveryExperience.homePage === HomePage.Focused) {
1220
1362
  params[Param.HomepageVersion] = HomePage.Focused;
1221
1363
  // The Focused (V4) homepage experience requires the updated
@@ -1227,9 +1369,7 @@ export class AppEmbed extends V1Embed {
1227
1369
  }
1228
1370
  }
1229
1371
 
1230
- const queryParams = getQueryParamString(params, true);
1231
-
1232
- return queryParams;
1372
+ return params;
1233
1373
  }
1234
1374
 
1235
1375
  private sendFullHeightLazyLoadData = () => {
@@ -1332,6 +1472,8 @@ export class AppEmbed extends V1Embed {
1332
1472
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
1333
1473
  case Page.Monitor:
1334
1474
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
1475
+ case Page.Collections:
1476
+ return 'collections';
1335
1477
  case Page.Home:
1336
1478
  default:
1337
1479
  return 'home';
@@ -1372,7 +1514,8 @@ export class AppEmbed extends V1Embed {
1372
1514
  logger.log('Please call render before invoking this method');
1373
1515
  return;
1374
1516
  }
1375
- if (noReload) {
1517
+ const overrideHistoryState = this.viewConfig?.overrideHistoryState;
1518
+ if (noReload || overrideHistoryState) {
1376
1519
  this.trigger(HostEvent.Navigate, path);
1377
1520
  } else {
1378
1521
  if (typeof path !== 'string') {