@thoughtspot/visual-embed-sdk 1.50.1 → 1.51.0-test

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 (238) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +63 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +148 -25
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +74 -37
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +571 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +375 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +21 -15
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +323 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +45 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +81 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +76 -14
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +50 -9
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +432 -4
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +28 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  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/ts-embed.d.ts +16 -8
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +82 -30
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +537 -3
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +3 -3
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js +3 -2
  60. package/cjs/src/index.js.map +1 -1
  61. package/cjs/src/mixpanel-service.d.ts +4 -0
  62. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  63. package/cjs/src/mixpanel-service.js +4 -0
  64. package/cjs/src/mixpanel-service.js.map +1 -1
  65. package/cjs/src/react/all-types-export.d.ts +1 -1
  66. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  67. package/cjs/src/react/all-types-export.js +2 -1
  68. package/cjs/src/react/all-types-export.js.map +1 -1
  69. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  70. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  71. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  72. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  73. package/cjs/src/react/index.d.ts +66 -32
  74. package/cjs/src/react/index.d.ts.map +1 -1
  75. package/cjs/src/react/index.js +5 -3
  76. package/cjs/src/react/index.js.map +1 -1
  77. package/cjs/src/react/index.spec.js +101 -0
  78. package/cjs/src/react/index.spec.js.map +1 -1
  79. package/cjs/src/types.d.ts +789 -32
  80. package/cjs/src/types.d.ts.map +1 -1
  81. package/cjs/src/types.js +610 -20
  82. package/cjs/src/types.js.map +1 -1
  83. package/cjs/src/utils.spec.js +4 -0
  84. package/cjs/src/utils.spec.js.map +1 -1
  85. package/dist/{index-fCne7kmU.js → index-Bivg-mDx.js} +1 -1
  86. package/dist/src/config.d.ts +1 -0
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/css-variables.d.ts +63 -0
  89. package/dist/src/css-variables.d.ts.map +1 -1
  90. package/dist/src/embed/app.d.ts +148 -25
  91. package/dist/src/embed/app.d.ts.map +1 -1
  92. package/dist/src/embed/base.d.ts +1 -1
  93. package/dist/src/embed/conversation.d.ts +375 -2
  94. package/dist/src/embed/conversation.d.ts.map +1 -1
  95. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  96. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  97. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  98. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  99. package/dist/src/embed/liveboard.d.ts +76 -14
  100. package/dist/src/embed/liveboard.d.ts.map +1 -1
  101. package/dist/src/embed/spotter-utils.d.ts +15 -1
  102. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  103. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  104. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  105. package/dist/src/embed/ts-embed.d.ts +16 -8
  106. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  107. package/dist/src/index.d.ts +3 -3
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/mixpanel-service.d.ts +4 -0
  110. package/dist/src/mixpanel-service.d.ts.map +1 -1
  111. package/dist/src/react/all-types-export.d.ts +1 -1
  112. package/dist/src/react/all-types-export.d.ts.map +1 -1
  113. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  114. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  115. package/dist/src/react/index.d.ts +66 -32
  116. package/dist/src/react/index.d.ts.map +1 -1
  117. package/dist/src/types.d.ts +789 -32
  118. package/dist/src/types.d.ts.map +1 -1
  119. package/dist/tsembed-react.es.js +878 -120
  120. package/dist/tsembed-react.js +877 -119
  121. package/dist/tsembed.es.js +936 -181
  122. package/dist/tsembed.js +938 -183
  123. package/dist/visual-embed-sdk-react-full.d.ts +1553 -128
  124. package/dist/visual-embed-sdk-react.d.ts +1555 -129
  125. package/dist/visual-embed-sdk.d.ts +1499 -100
  126. package/lib/package.json +1 -1
  127. package/lib/src/config.d.ts +1 -0
  128. package/lib/src/config.d.ts.map +1 -1
  129. package/lib/src/config.js +1 -0
  130. package/lib/src/config.js.map +1 -1
  131. package/lib/src/css-variables.d.ts +63 -0
  132. package/lib/src/css-variables.d.ts.map +1 -1
  133. package/lib/src/embed/app.d.ts +148 -25
  134. package/lib/src/embed/app.d.ts.map +1 -1
  135. package/lib/src/embed/app.js +75 -38
  136. package/lib/src/embed/app.js.map +1 -1
  137. package/lib/src/embed/app.spec.js +572 -151
  138. package/lib/src/embed/app.spec.js.map +1 -1
  139. package/lib/src/embed/base.d.ts +1 -1
  140. package/lib/src/embed/base.js +1 -1
  141. package/lib/src/embed/conversation.d.ts +375 -2
  142. package/lib/src/embed/conversation.d.ts.map +1 -1
  143. package/lib/src/embed/conversation.js +23 -17
  144. package/lib/src/embed/conversation.js.map +1 -1
  145. package/lib/src/embed/conversation.spec.js +323 -17
  146. package/lib/src/embed/conversation.spec.js.map +1 -1
  147. package/lib/src/embed/events.spec.js +45 -0
  148. package/lib/src/embed/events.spec.js.map +1 -1
  149. package/lib/src/embed/host-events.spec.js +81 -0
  150. package/lib/src/embed/host-events.spec.js.map +1 -1
  151. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  152. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  153. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  154. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  155. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  156. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  157. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  158. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  159. package/lib/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  160. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  161. package/lib/src/embed/liveboard.d.ts +76 -14
  162. package/lib/src/embed/liveboard.d.ts.map +1 -1
  163. package/lib/src/embed/liveboard.js +50 -9
  164. package/lib/src/embed/liveboard.js.map +1 -1
  165. package/lib/src/embed/liveboard.spec.js +432 -4
  166. package/lib/src/embed/liveboard.spec.js.map +1 -1
  167. package/lib/src/embed/spotter-utils.d.ts +15 -1
  168. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  169. package/lib/src/embed/spotter-utils.js +25 -0
  170. package/lib/src/embed/spotter-utils.js.map +1 -1
  171. package/lib/src/embed/spotter-utils.spec.js +130 -1
  172. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  173. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  174. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  175. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  176. package/lib/src/embed/ts-embed.d.ts +16 -8
  177. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  178. package/lib/src/embed/ts-embed.js +82 -30
  179. package/lib/src/embed/ts-embed.js.map +1 -1
  180. package/lib/src/embed/ts-embed.spec.js +537 -3
  181. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  182. package/lib/src/index.d.ts +3 -3
  183. package/lib/src/index.d.ts.map +1 -1
  184. package/lib/src/index.js +2 -2
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/mixpanel-service.d.ts +4 -0
  187. package/lib/src/mixpanel-service.d.ts.map +1 -1
  188. package/lib/src/mixpanel-service.js +4 -0
  189. package/lib/src/mixpanel-service.js.map +1 -1
  190. package/lib/src/react/all-types-export.d.ts +1 -1
  191. package/lib/src/react/all-types-export.d.ts.map +1 -1
  192. package/lib/src/react/all-types-export.js +1 -1
  193. package/lib/src/react/all-types-export.js.map +1 -1
  194. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  195. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  196. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  197. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  198. package/lib/src/react/index.d.ts +66 -32
  199. package/lib/src/react/index.d.ts.map +1 -1
  200. package/lib/src/react/index.js +5 -3
  201. package/lib/src/react/index.js.map +1 -1
  202. package/lib/src/react/index.spec.js +102 -1
  203. package/lib/src/react/index.spec.js.map +1 -1
  204. package/lib/src/types.d.ts +789 -32
  205. package/lib/src/types.d.ts.map +1 -1
  206. package/lib/src/types.js +610 -20
  207. package/lib/src/types.js.map +1 -1
  208. package/lib/src/utils.spec.js +4 -0
  209. package/lib/src/utils.spec.js.map +1 -1
  210. package/lib/src/visual-embed-sdk.d.ts +1499 -100
  211. package/package.json +1 -1
  212. package/src/config.ts +1 -0
  213. package/src/css-variables.ts +77 -0
  214. package/src/embed/app.spec.ts +729 -188
  215. package/src/embed/app.ts +240 -75
  216. package/src/embed/base.ts +1 -1
  217. package/src/embed/conversation.spec.ts +379 -20
  218. package/src/embed/conversation.ts +412 -18
  219. package/src/embed/events.spec.ts +56 -0
  220. package/src/embed/host-events.spec.ts +118 -0
  221. package/src/embed/hostEventClient/contracts.ts +16 -0
  222. package/src/embed/hostEventClient/host-event-client.spec.ts +46 -0
  223. package/src/embed/hostEventClient/host-event-client.ts +3 -2
  224. package/src/embed/liveboard.spec.ts +565 -4
  225. package/src/embed/liveboard.ts +150 -29
  226. package/src/embed/spotter-utils.spec.ts +140 -1
  227. package/src/embed/spotter-utils.ts +36 -1
  228. package/src/embed/spotter-viz-utils.ts +9 -10
  229. package/src/embed/ts-embed.spec.ts +699 -3
  230. package/src/embed/ts-embed.ts +99 -35
  231. package/src/index.ts +44 -2
  232. package/src/mixpanel-service.ts +4 -0
  233. package/src/react/all-types-export.parity.spec.ts +208 -0
  234. package/src/react/all-types-export.ts +22 -0
  235. package/src/react/index.spec.tsx +158 -0
  236. package/src/react/index.tsx +70 -33
  237. package/src/types.ts +791 -30
  238. package/src/utils.spec.ts +5 -0
@@ -40,6 +40,42 @@ export interface CustomCssVariables {
40
40
  * Font color of the top navigation panel.
41
41
  */
42
42
  "--ts-var-nav-color"?: string;
43
+ /**
44
+ * Background color of the left navigation panel.
45
+ */
46
+ "--ts-var-left-nav-background"?: string;
47
+ /**
48
+ * Background color of the active tab in the left navigation panel.
49
+ */
50
+ "--ts-var-left-nav-active-tab-background"?: string;
51
+ /**
52
+ * Border color of the active tab in the left navigation panel.
53
+ */
54
+ "--ts-var-left-nav-active-tab-border-color"?: string;
55
+ /**
56
+ * Font color of the section title in the left navigation panel.
57
+ */
58
+ "--ts-var-left-nav-section-title-color"?: string;
59
+ /**
60
+ * Font color of the items in the left navigation panel.
61
+ */
62
+ "--ts-var-left-nav-item-color"?: string;
63
+ /**
64
+ * Font color of the selected item in the left navigation panel.
65
+ */
66
+ "--ts-var-left-nav-item-selection-color"?: string;
67
+ /**
68
+ * Background color of the selected item in the left navigation panel.
69
+ */
70
+ "--ts-var-left-nav-item-selection-background"?: string;
71
+ /**
72
+ * Color of the active tab icon in the left navigation panel.
73
+ */
74
+ "--ts-var-left-nav-tab-icon-active-color"?: string;
75
+ /**
76
+ * Color of the inactive tab icon in the left navigation panel.
77
+ */
78
+ "--ts-var-left-nav-tab-icon-inactive-color"?: string;
43
79
  /**
44
80
  * Background color of the *Search data* button.
45
81
  */
@@ -404,6 +440,13 @@ export interface CustomCssVariables {
404
440
  * Font color of the header in the Liveboard.
405
441
  */
406
442
  "--ts-var-liveboard-header-font-color"?: string;
443
+ /**
444
+ * Left and right margin of the header and the tab/filter section of an
445
+ * embedded Liveboard. Use alongside the `liveboardGutter` view config to
446
+ * keep the header aligned with a custom tile-grid gutter.
447
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
448
+ */
449
+ "--ts-var-liveboard-header-horizontal-margin"?: string;
407
450
  /**
408
451
  * Border color of the tiles in the Liveboard.
409
452
  */
@@ -420,6 +463,18 @@ export interface CustomCssVariables {
420
463
  * Background color of the insight tiles in the Liveboard.
421
464
  */
422
465
  "--ts-var-liveboard-insight-tile-background"?: string;
466
+ /**
467
+ * Icon color of the insight tiles in the Liveboard.
468
+ */
469
+ "--ts-var-liveboard-insight-tile-icon-color"?: string;
470
+ /**
471
+ * Font color of the success text in the insight tiles in the Liveboard.
472
+ */
473
+ "--ts-var-liveboard-insight-tile-success-color"?: string;
474
+ /**
475
+ * Font color of the failure text in the insight tiles in the Liveboard.
476
+ */
477
+ "--ts-var-liveboard-insight-tile-failure-color"?: string;
423
478
  /**
424
479
  * Border radius of the tiles in the Liveboard.
425
480
  */
@@ -640,6 +695,14 @@ export interface CustomCssVariables {
640
695
  * Font color of the parameter chips in the Liveboard on active.
641
696
  */
642
697
  "--ts-var-parameter-chip-active-text-color"?: string;
698
+ /**
699
+ * Color of the dot indicator shown on a filter or parameter chip in the
700
+ * centralized filter modal on a Liveboard. The dot appears when the
701
+ * filter or parameter value has been modified but the changes are not
702
+ * yet applied to the Liveboard.
703
+ * @version SDK: 1.52.0 | ThoughtSpot: 26.10.0.cl
704
+ */
705
+ "--ts-var-unsaved-filter-indicator-color"?: string;
643
706
  /**
644
707
  * Background color of the action button in the Liveboard header.
645
708
  */
@@ -1399,7 +1462,9 @@ export enum AuthType {
1399
1462
  }
1400
1463
  /**
1401
1464
  *
1402
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
1465
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1466
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
1467
+ * V4 (Focused) home page experiences.
1403
1468
  *
1404
1469
  */
1405
1470
  export enum HomeLeftNavItem {
@@ -2088,6 +2153,85 @@ export interface FrameParams {
2088
2153
  */
2089
2154
  [key: string]: string | number | boolean | undefined;
2090
2155
  }
2156
+ /**
2157
+ * Configuration for the pre-render wrapper element.
2158
+ * All properties here mirror the top-level preRender properties on
2159
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2160
+ * so existing top-level usage continues to work without any changes.
2161
+ *
2162
+ * @version SDK: 1.52.0
2163
+ * @example
2164
+ * ```js
2165
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2166
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2167
+ * preRenderConfig: {
2168
+ * preRenderId: 'my-liveboard',
2169
+ * preRenderContainer: '#my-scroll-container',
2170
+ * doNotTrackPreRenderSize: false,
2171
+ * zIndex: -10,
2172
+ * },
2173
+ * });
2174
+ * embed.preRender();
2175
+ * embed.showPreRender();
2176
+ * ```
2177
+ */
2178
+ export interface PreRenderConfig {
2179
+ /**
2180
+ * Pre-render ID to identify the pre-render instance.
2181
+ * Takes precedence over the top-level `preRenderId` when both are set.
2182
+ *
2183
+ * Matches the embed warmed by `preRender()` to the one revealed by
2184
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2185
+ * the same view, and give unrelated views their own or they will collide.
2186
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2187
+ * and do nothing without it.
2188
+ *
2189
+ * @default undefined
2190
+ */
2191
+ preRenderId?: string;
2192
+ /**
2193
+ * The DOM element or CSS selector string specifying the container into
2194
+ * which the pre-rendered wrapper is inserted.
2195
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2196
+ *
2197
+ * Set this when your app scrolls inside an element rather than the page (for
2198
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2199
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2200
+ * selector string — it is re-resolved on reposition and so survives a remount,
2201
+ * while a detached element reference cannot be recovered. An invalid selector is
2202
+ * logged and falls back to `document.body`.
2203
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2204
+ *
2205
+ * @default document.body
2206
+ */
2207
+ preRenderContainer?: string | HTMLElement;
2208
+ /**
2209
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2210
+ * placeholder element.
2211
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2212
+ *
2213
+ * Set this only when you size the embed yourself; you then own alignment and must
2214
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2215
+ * already pauses while hidden, so this is not needed to avoid work then.
2216
+ *
2217
+ * @default false
2218
+ */
2219
+ doNotTrackPreRenderSize?: boolean;
2220
+ /**
2221
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2222
+ * Override this when the host page's stacking context does not reach `-1000`
2223
+ * and the hidden wrapper still appears above other elements.
2224
+ *
2225
+ * A page that creates its own stacking context — a positioned app shell, a
2226
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2227
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2228
+ * see a faint panel behind your content, or clicks landing on nothing in the
2229
+ * region where the embed will eventually appear.
2230
+ *
2231
+ * @default -1000
2232
+ */
2233
+ zIndex?: number;
2234
+ }
2091
2235
  /**
2092
2236
  * The common configuration object for an embedded view.
2093
2237
  */
@@ -2172,7 +2316,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2172
2316
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2173
2317
  * const embed = new <EmbedComponent>('#tsEmbed', {
2174
2318
  * ... // other embed view config
2175
- * hiddenActions: [Action.Download, Action.Export],
2319
+ * hiddenActions: [Action.Download, Action.ExportTML],
2176
2320
  * });
2177
2321
  * ```
2178
2322
  * @important
@@ -2194,7 +2338,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2194
2338
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2195
2339
  * const embed = new <EmbedComponent>('#tsEmbed', {
2196
2340
  * ... // other embed view config
2197
- * visibleActions: [Action.Download, Action.Export],
2341
+ * visibleActions: [Action.Download, Action.ExportTML],
2198
2342
  * });
2199
2343
  * ```
2200
2344
  */
@@ -2279,6 +2423,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2279
2423
  *
2280
2424
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2281
2425
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2426
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2282
2427
  * @example
2283
2428
  * ```js
2284
2429
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2298,6 +2443,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2298
2443
  * @type {boolean}
2299
2444
  * @default false
2300
2445
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2446
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2301
2447
  * @example
2302
2448
  * ```js
2303
2449
  * // Disable tracking PreRender size in the configuration
@@ -2339,6 +2485,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2339
2485
  *
2340
2486
  * @type {string | HTMLElement}
2341
2487
  * @version SDK: 1.49.2 | ThoughtSpot: *
2488
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2342
2489
  * @example
2343
2490
  * ```js
2344
2491
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2349,6 +2496,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2349
2496
  * ```
2350
2497
  */
2351
2498
  preRenderContainer?: string | HTMLElement;
2499
+ /**
2500
+ * Configuration for the pre-render wrapper element.
2501
+ * All properties here mirror the top-level preRender properties on
2502
+ * `BaseViewConfig` and take precedence over them when both are set,
2503
+ * so existing top-level usage continues to work without any changes.
2504
+ * See {@link PreRenderConfig} for available options.
2505
+ *
2506
+ * @version SDK: 1.52.0
2507
+ * @example
2508
+ * ```js
2509
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2510
+ * preRenderConfig: {
2511
+ * preRenderId: 'my-liveboard',
2512
+ * zIndex: -10,
2513
+ * },
2514
+ * });
2515
+ * embed.preRender();
2516
+ * embed.showPreRender();
2517
+ * ```
2518
+ */
2519
+ preRenderConfig?: PreRenderConfig;
2352
2520
  /**
2353
2521
  * Enable the V2 shell. This can provide performance benefits
2354
2522
  * due to a lighter-weight shell.
@@ -2787,7 +2955,7 @@ export interface HomePageConfig {
2787
2955
  *
2788
2956
  * const embed = new AppEmbed('#tsEmbed', {
2789
2957
  * ... //other embed view config
2790
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2958
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2791
2959
  * })
2792
2960
  * ```
2793
2961
  */
@@ -2797,7 +2965,9 @@ export interface HomePageConfig {
2797
2965
  * To specify the modules, import the `HomepageModule` enum.
2798
2966
  * For example: `hiddenHomepageModules = [HomepageModule.MyLibrary]`
2799
2967
  *
2800
- * **Note**: This attribute is not supported in the classic (v1) experience.
2968
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2969
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2970
+ * and V4 (Focused) home page experiences.
2801
2971
  *
2802
2972
  * Supported embed types: `AppEmbed`
2803
2973
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2806,7 +2976,7 @@ export interface HomePageConfig {
2806
2976
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2807
2977
  *
2808
2978
  * const embed = new AppEmbed('#tsEmbed', {
2809
- * ... // V2/V3 navigation and home page experience attributes
2979
+ * ... // V3 navigation and home page experience attributes
2810
2980
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
2811
2981
  * //...other embed view configuration attributes
2812
2982
  * })
@@ -2817,8 +2987,11 @@ export interface HomePageConfig {
2817
2987
  * Reorder home page modules.
2818
2988
  * To specify the modules, import the `HomepageModule` enum.
2819
2989
  * For example: `reorderedHomepageModules = [HomepageModule.MyLibrary,
2820
- * HomepageModule.Watchlist]` **Note**: This attribute is not supported in the
2821
- * classic (v1) homepage.
2990
+ * HomepageModule.Watchlist]`
2991
+ *
2992
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2993
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2994
+ * and V4 (Focused) home page experiences.
2822
2995
  *
2823
2996
  * Supported embed types: `AppEmbed`
2824
2997
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2827,7 +3000,7 @@ export interface HomePageConfig {
2827
3000
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2828
3001
  *
2829
3002
  * const embed = new AppEmbed('#tsEmbed', {
2830
- * ...//V2/V3 navigation and home page experience attributes
3003
+ * ...//V3 navigation and home page experience attributes
2831
3004
  * reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
2832
3005
  * //... other embed view configuration attributes
2833
3006
  * })
@@ -2839,7 +3012,9 @@ export interface HomePageConfig {
2839
3012
  * on the home page left navigation panel.
2840
3013
  * To specify the menu items, import the `HomeLeftNavItem` enum.
2841
3014
  *
2842
- * **Note**: This attribute is not supported in the classic (v1) homepage.
3015
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
3016
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
3017
+ * and V4 (Focused) home page experiences.
2843
3018
  *
2844
3019
  * Supported embed types: `AppEmbed`
2845
3020
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -3093,6 +3268,25 @@ export interface LiveboardAppEmbedViewConfig {
3093
3268
  * ```
3094
3269
  */
3095
3270
  enable2ColumnLayout?: boolean;
3271
+ /**
3272
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3273
+ * every width, instead of switching to the two-column or single-column
3274
+ * layout as the container narrows.
3275
+ *
3276
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3277
+ * @type {boolean}
3278
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3279
+ * @default false
3280
+ * @example
3281
+ * ```js
3282
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3283
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3284
+ * ... // other embed view config
3285
+ * isLiveboardAlwaysOn12ColLayout: true,
3286
+ * })
3287
+ * ```
3288
+ */
3289
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3096
3290
  /**
3097
3291
  * This flag can be used to enable the compact header in Liveboard
3098
3292
  *
@@ -3197,6 +3391,26 @@ export interface LiveboardAppEmbedViewConfig {
3197
3391
  * ```
3198
3392
  */
3199
3393
  coverAndFilterOptionInPDF?: boolean;
3394
+ /**
3395
+ * Sets the gutter space (in pixels) between the visualization tiles of
3396
+ * an embedded Liveboard grid layout and its outer layout padding.
3397
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3398
+ * and removes the outer padding. When omitted, the gutter saved in the
3399
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3400
+ *
3401
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3402
+ * @type {number}
3403
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3404
+ * @example
3405
+ * ```js
3406
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3407
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3408
+ * ... // other embed view config
3409
+ * liveboardGutter: 8,
3410
+ * })
3411
+ * ```
3412
+ */
3413
+ liveboardGutter?: number;
3200
3414
  /**
3201
3415
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3202
3416
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3215,6 +3429,24 @@ export interface LiveboardAppEmbedViewConfig {
3215
3429
  * ```
3216
3430
  */
3217
3431
  isCentralizedLiveboardFilterUXEnabled?: boolean;
3432
+ /**
3433
+ * This flag is used to enable or disable scoped Liveboard filtering.
3434
+ * When enabled, filters and parameters can be scoped to a group of
3435
+ * visualizations on a Liveboard, in addition to the Liveboard and
3436
+ * tab levels.
3437
+ *
3438
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3439
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3440
+ * @example
3441
+ * ```js
3442
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3443
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3444
+ * ... // other embed view config
3445
+ * isScopedLiveboardFilteringEnabled: true,
3446
+ * })
3447
+ * ```
3448
+ */
3449
+ isScopedLiveboardFilteringEnabled?: boolean;
3218
3450
  /**
3219
3451
  * This flag is used to enable or disable the link parameters in liveboard.
3220
3452
  *
@@ -3398,7 +3630,9 @@ export enum RuntimeFilterOp {
3398
3630
  * via `hiddenHomepageModules` and reordered via
3399
3631
  * `reorderedHomepageModules`.
3400
3632
  *
3401
- * **Note**: This option is not supported in the classic (v1) experience.
3633
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
3634
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
3635
+ * V4 (Focused) home page experiences.
3402
3636
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
3403
3637
  */
3404
3638
  export enum HomepageModule {
@@ -3607,7 +3841,7 @@ export enum EmbedEvent {
3607
3841
  * @returns nonFilteredColumns - The columns that were not filtered
3608
3842
  * @example
3609
3843
  * ```js
3610
- * searchEmbed.on(EmbedEvent.DrillDown, {
3844
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3611
3845
  * points: {
3612
3846
  * clickedPoint,
3613
3847
  * selectedPoints: selectedPoint
@@ -3668,7 +3902,7 @@ export enum EmbedEvent {
3668
3902
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3669
3903
  * @example
3670
3904
  * ```js
3671
- * appEmbed.on(EmbedEvent.customAction, payload => {
3905
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3672
3906
  * const data = payload.data;
3673
3907
  * if (data.id === 'insert Custom Action ID here') {
3674
3908
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3934,8 +4168,8 @@ export enum EmbedEvent {
3934
4168
  *
3935
4169
  * **Note**: This event is deprecated in v1.21.0.
3936
4170
  * To fire an event when a download action is initiated on a chart or table,
3937
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3938
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4171
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4172
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3939
4173
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3940
4174
  * @example
3941
4175
  * ```js
@@ -3985,10 +4219,10 @@ export enum EmbedEvent {
3985
4219
  * @example
3986
4220
  * ```js
3987
4221
  * //emit when action starts
3988
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4222
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3989
4223
  * console.log('download CSV', payload)}, {start: true })
3990
4224
  * //emit when action ends
3991
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4225
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3992
4226
  * console.log('download CSV', payload)})
3993
4227
  * ```
3994
4228
  */
@@ -4387,11 +4621,19 @@ export enum EmbedEvent {
4387
4621
  * Emitted when a user changes any filter on a Liveboard.
4388
4622
  * Returns filter type and name, column name and ID, and runtime
4389
4623
  * filter details.
4624
+ * The payload includes an optional `applicability` attribute indicating the
4625
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
4626
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4627
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4628
+ * is no `targetId`, since the filter applies to the whole Liveboard.
4629
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4630
+ * ThoughtSpot: 26.10.0.cl.
4390
4631
  * @example
4391
4632
  *
4392
4633
  * ```js
4393
4634
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
4394
4635
  * console.log('payload', payload);
4636
+ * // payload.data optionally includes applicability: { level, targetId }
4395
4637
  * })
4396
4638
  * ```
4397
4639
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -4583,9 +4825,17 @@ export enum EmbedEvent {
4583
4825
  /**
4584
4826
  * Emitted when parameter changes in an Answer
4585
4827
  * or Liveboard.
4828
+ * The payload includes an optional `applicability` attribute indicating the
4829
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
4830
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4831
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4832
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
4833
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4834
+ * ThoughtSpot: 26.10.0.cl.
4586
4835
  * ```js
4587
4836
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
4588
4837
  * console.log('payload', payload);
4838
+ * // payload.data optionally includes applicability: { level, targetId }
4589
4839
  * })
4590
4840
  * ```
4591
4841
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -4887,6 +5137,158 @@ export enum EmbedEvent {
4887
5137
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4888
5138
  */
4889
5139
  SpotterConversationDeleted = "spotterConversationDeleted",
5140
+ /**
5141
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
5142
+ * to bracket the interaction. App→host counterpart of the
5143
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
5144
+ * @example
5145
+ * ```js
5146
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
5147
+ * // payload: { convId: string }
5148
+ * })
5149
+ * ```
5150
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5151
+ */
5152
+ SpotterShareConversationButtonHeaderClicked = "spotterShareConversationButtonHeaderClicked",
5153
+ /**
5154
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
5155
+ * to bracket the interaction.
5156
+ * @example
5157
+ * ```js
5158
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
5159
+ * // payload: { convId: string }
5160
+ * })
5161
+ * ```
5162
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5163
+ */
5164
+ SpotterShareConversationMenuItemSidebarClicked = "spotterShareConversationMenuItemSidebarClicked",
5165
+ /**
5166
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
5167
+ * share created). The host builds its own link from shareId/convId + its
5168
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
5169
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
5170
+ * the save resolves.
5171
+ * @example
5172
+ * ```js
5173
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
5174
+ * // payload: { convId: string, shareId: string,
5175
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
5176
+ * })
5177
+ * ```
5178
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5179
+ */
5180
+ SpotterConversationShared = "spotterConversationShared",
5181
+ /**
5182
+ * Emitted when access to a shared Spotter conversation is revoked
5183
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
5184
+ * and the share is deleted entirely.
5185
+ * @example
5186
+ * ```js
5187
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
5188
+ * // payload: { convId: string, shareId: string,
5189
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
5190
+ * })
5191
+ * ```
5192
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5193
+ */
5194
+ SpotterConversationShareRevoked = "spotterConversationShareRevoked",
5195
+ /**
5196
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
5197
+ * view). No shareId available viewer-side.
5198
+ * @example
5199
+ * ```js
5200
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
5201
+ * // payload: { convId: string, sourceConvId: string }
5202
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
5203
+ * })
5204
+ * ```
5205
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5206
+ */
5207
+ SpotterSharedConversationViewed = "spotterSharedConversationViewed",
5208
+ /**
5209
+ * Emitted when the user toggles the share-modal "include new messages since
5210
+ * last shared version" checkbox.
5211
+ * @example
5212
+ * ```js
5213
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
5214
+ * // payload: { convId: string, includeNewMessages: boolean }
5215
+ * })
5216
+ * ```
5217
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5218
+ */
5219
+ SpotterShareIncludeNewMessagesCheckboxToggled = "spotterShareIncludeNewMessagesCheckboxToggled",
5220
+ /**
5221
+ * Emitted when the user dismisses the stale-snapshot info banner via its
5222
+ * cross (distinct from the include-new-messages checkbox toggle).
5223
+ * @example
5224
+ * ```js
5225
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
5226
+ * // payload: { convId: string }
5227
+ * })
5228
+ * ```
5229
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5230
+ */
5231
+ SpotterShareStaleInfoBannerDismissed = "spotterShareStaleInfoBannerDismissed",
5232
+ /**
5233
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
5234
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
5235
+ * / `SpotterConversationShareRevoked` result events.
5236
+ * @example
5237
+ * ```js
5238
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
5239
+ * // payload: { convId: string }
5240
+ * })
5241
+ * ```
5242
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5243
+ */
5244
+ SpotterShareModalConfirmButtonClicked = "spotterShareModalConfirmButtonClicked",
5245
+ /**
5246
+ * Emitted when the share modal is dismissed via the Cancel button.
5247
+ * @example
5248
+ * ```js
5249
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
5250
+ * // payload: { convId: string }
5251
+ * })
5252
+ * ```
5253
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5254
+ */
5255
+ SpotterShareModalCancelButtonClicked = "spotterShareModalCancelButtonClicked",
5256
+ /**
5257
+ * Emitted when a recipient leaves the read-only shared view via the Exit
5258
+ * button.
5259
+ * @example
5260
+ * ```js
5261
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
5262
+ * // payload: { convId: string }
5263
+ * })
5264
+ * ```
5265
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5266
+ */
5267
+ SpotterSharedConversationExitButtonClicked = "spotterSharedConversationExitButtonClicked",
5268
+ /**
5269
+ * Emitted when a Spotter conversation is pinned.
5270
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5271
+ * @example
5272
+ * ```js
5273
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
5274
+ * console.log('Conversation pinned', payload);
5275
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
5276
+ * })
5277
+ * ```
5278
+ */
5279
+ SpotterConversationPinned = "spotterConversationPinned",
5280
+ /**
5281
+ * Emitted when a Spotter conversation is unpinned.
5282
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5283
+ * @example
5284
+ * ```js
5285
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
5286
+ * console.log('Conversation unpinned', payload);
5287
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
5288
+ * })
5289
+ * ```
5290
+ */
5291
+ SpotterConversationUnpinned = "spotterConversationUnpinned",
4890
5292
  /**
4891
5293
  * Emitted when a Spotter conversation is selected/clicked.
4892
5294
  * @example
@@ -5276,6 +5678,7 @@ export enum HostEvent {
5276
5678
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5277
5679
  * console.log("iFrameURL", url);
5278
5680
  * ```
5681
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5279
5682
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5280
5683
  */
5281
5684
  GetIframeUrl = "GetIframeUrl",
@@ -5402,6 +5805,17 @@ export enum HostEvent {
5402
5805
  * name: string,
5403
5806
  * type: ATTRIBUTE/MEASURE,
5404
5807
  * dataType: INT64/CHAR/DATE }
5808
+ *
5809
+ * `applicability` - Optional. Scopes the filter to a specific target,
5810
+ * for example, a single Liveboard tab, so the panel for the correct
5811
+ * scoped filter is opened. Available from SDK: 1.53.0 |
5812
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
5813
+ *
5814
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
5815
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5816
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5817
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
5818
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5405
5819
  * @example
5406
5820
  * ```js
5407
5821
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -5414,6 +5828,14 @@ export enum HostEvent {
5414
5828
  * ```
5415
5829
  * @example
5416
5830
  * ```js
5831
+ * // Open a filter scoped to a specific Liveboard tab
5832
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
5833
+ * column: { columnId: '<column-GUID>' },
5834
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
5835
+ * });
5836
+ * ```
5837
+ * @example
5838
+ * ```js
5417
5839
  * // Open filter from search context
5418
5840
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5419
5841
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -5423,6 +5845,73 @@ export enum HostEvent {
5423
5845
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5424
5846
  */
5425
5847
  OpenFilter = "openFilter",
5848
+ /**
5849
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5850
+ * *Add filter* button in the Liveboard edit header opens, so the host
5851
+ * app can start the add-filter flow from its own UI.
5852
+ *
5853
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5854
+ * Hiding the *Add filter* button with `hiddenActions:
5855
+ * [Action.AddFilter]` does not block this event, but disabling it with
5856
+ * `disabledActions` does.
5857
+ *
5858
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5859
+ * existing filter, this event starts the creation of a new filter.
5860
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5861
+ * @example
5862
+ * ```js
5863
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5864
+ * ```
5865
+ */
5866
+ OpenAddFilterModal = "openAddFilterModal",
5867
+ /**
5868
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5869
+ * *Add parameter* button in the Liveboard edit header opens.
5870
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5871
+ *
5872
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5873
+ * Hiding the *Add parameter* button with `hiddenActions:
5874
+ * [Action.AddParameter]` does not block this event, but disabling it
5875
+ * with `disabledActions` does.
5876
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5877
+ * @example
5878
+ * ```js
5879
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5880
+ * ```
5881
+ */
5882
+ OpenAddParameterModal = "openAddParameterModal",
5883
+ /**
5884
+ * Open the parameter panel for a particular parameter on a Liveboard.
5885
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
5886
+ * @param - Includes the following keys:
5887
+ * - `parameter`: An object identifying the parameter to open, for
5888
+ * example, `{ parameterId: '<parameter-GUID>' }`.
5889
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
5890
+ * for example, a single Liveboard tab, so the panel for the correct
5891
+ * scoped parameter is opened. Includes the following attributes:
5892
+ *
5893
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
5894
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5895
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5896
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
5897
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5898
+ * @example
5899
+ * ```js
5900
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5901
+ * parameter: { parameterId: '<parameter-GUID>' }
5902
+ * });
5903
+ * ```
5904
+ * @example
5905
+ * ```js
5906
+ * // Open a parameter scoped to a specific group
5907
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5908
+ * parameter: { parameterId: '<parameter-GUID>' },
5909
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
5910
+ * });
5911
+ * ```
5912
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5913
+ */
5914
+ OpenParameter = "openParameter",
5426
5915
  /**
5427
5916
  * Add columns to the current search query.
5428
5917
  * @param - { columnIds: string[] }
@@ -5472,6 +5961,10 @@ export enum HostEvent {
5472
5961
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5473
5962
  * data=>console.log(data))
5474
5963
  * ```
5964
+ * @returns data - Object with a `v2Content` string: the export request
5965
+ * payload for the current Liveboard.
5966
+ * @returns type - The passthrough event name,
5967
+ * `getExportRequestForCurrentPinboard`.
5475
5968
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5476
5969
  */
5477
5970
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5574,6 +6067,9 @@ export enum HostEvent {
5574
6067
  * }, ContextType.Spotter);
5575
6068
  * ```
5576
6069
  *
6070
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
6071
+ * @returns tabId - GUID of the tab within that Liveboard.
6072
+ * @returns vizId - GUID of the newly created visualization.
5577
6073
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5578
6074
  */
5579
6075
  Pin = "pin",
@@ -5612,13 +6108,13 @@ export enum HostEvent {
5612
6108
  * Trigger the **Manage schedule** action on an embedded Liveboard
5613
6109
  * @example
5614
6110
  * ```js
5615
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6111
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5616
6112
  * ```
5617
6113
  * @example
5618
6114
  * ```js
5619
6115
  * // Manage schedules from liveboard context
5620
6116
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5621
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6117
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5622
6118
  * ```
5623
6119
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5624
6120
  */
@@ -6063,6 +6559,7 @@ export enum HostEvent {
6063
6559
  * console.log(tml.answer);
6064
6560
  * });
6065
6561
  * ```
6562
+ * @returns The TML representation of the current Answer, as an object.
6066
6563
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
6067
6564
  * @important
6068
6565
  */
@@ -6486,13 +6983,13 @@ export enum HostEvent {
6486
6983
  /**
6487
6984
  * Get details of filters applied on the Liveboard.
6488
6985
  * Returns arrays containing Liveboard filter and runtime filter elements.
6489
- * Each Liveboard filter may include an `applicability` attribute
6986
+ * Each Liveboard filter includes an optional `applicability` attribute
6490
6987
  * indicating the scope of the filter. It contains a `level`
6491
6988
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6492
6989
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6493
6990
  * level there is no `targetId`, since the filter applies to the
6494
6991
  * whole Liveboard.
6495
- * The `applicability` attribute is available from SDK: 1.51.0 |
6992
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6496
6993
  * ThoughtSpot: 26.10.0.cl.
6497
6994
  * @example
6498
6995
  * ```js
@@ -6506,6 +7003,8 @@ export enum HostEvent {
6506
7003
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6507
7004
  * console.log('filters', data);
6508
7005
  * ```
7006
+ * @returns liveboardFilters - Filters applied on the Liveboard.
7007
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6509
7008
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6510
7009
  */
6511
7010
  GetFilters = "getFilters",
@@ -6535,7 +7034,7 @@ export enum HostEvent {
6535
7034
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
6536
7035
  *
6537
7036
  * `applicability` - Optional. Scopes the filter to a specific target,
6538
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
7037
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6539
7038
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6540
7039
  *
6541
7040
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6655,9 +7154,37 @@ export enum HostEvent {
6655
7154
  * console.log('tabs', tabDetails);
6656
7155
  * });
6657
7156
  * ```
7157
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7158
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7159
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6658
7160
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6659
7161
  */
6660
7162
  GetTabs = "getTabs",
7163
+ /**
7164
+ * Get group details for the current Liveboard.
7165
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
7166
+ * @example
7167
+ * ```js
7168
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
7169
+ * console.log(
7170
+ * groupDetails // GroupDetails of current Liveboard
7171
+ * );
7172
+ * })
7173
+ * ```
7174
+ * @example
7175
+ * ```js
7176
+ * // Get groups from liveboard context
7177
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
7178
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
7179
+ * console.log('groups', groupDetails);
7180
+ * });
7181
+ * ```
7182
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7183
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7184
+ * @returns Groups - Group details, each with at least `id` and `name`.
7185
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7186
+ */
7187
+ GetGroups = "getGroups",
6661
7188
  /**
6662
7189
  * Set the visible tabs on a Liveboard.
6663
7190
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -6729,6 +7256,9 @@ export enum HostEvent {
6729
7256
  * // Alternative direct usage (not recommended)
6730
7257
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6731
7258
  * ```
7259
+ * @returns session - Session identifier for the Answer, for use with the
7260
+ * `AnswerService`.
7261
+ * @returns embedAnswerData - Data backing the Answer, when available.
6732
7262
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6733
7263
  */
6734
7264
  GetAnswerSession = "getAnswerSession",
@@ -6786,7 +7316,7 @@ export enum HostEvent {
6786
7316
  * - `value`: The value to set for the parameter.
6787
7317
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
6788
7318
  * - `applicability`: Optional. Scopes the parameter to a specific target,
6789
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
7319
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6790
7320
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6791
7321
  *
6792
7322
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6830,13 +7360,13 @@ export enum HostEvent {
6830
7360
  UpdateParameters = "UpdateParameters",
6831
7361
  /**
6832
7362
  * Triggers GetParameters to fetch the runtime Parameters.
6833
- * Each parameter may include an `applicability` attribute
7363
+ * Each parameter includes an optional `applicability` attribute
6834
7364
  * indicating the scope of the parameter. It contains a `level`
6835
7365
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6836
7366
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6837
7367
  * level there is no `targetId`, since the parameter applies to the
6838
7368
  * whole Liveboard.
6839
- * The `applicability` attribute is available from SDK: 1.51.0 |
7369
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6840
7370
  * ThoughtSpot: 26.10.0.cl.
6841
7371
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6842
7372
  * ```js
@@ -6862,12 +7392,16 @@ export enum HostEvent {
6862
7392
  * console.log('parameters', parameters);
6863
7393
  * });
6864
7394
  * ```
7395
+ * @returns parameters - Parameters currently applied on the Liveboard.
6865
7396
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
6866
7397
  */
6867
7398
  GetParameters = "GetParameters",
6868
7399
  /**
6869
7400
  * Triggers an event to update a personalized view of a Liveboard.
6870
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7401
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7402
+ * which additionally accepts a `viewName`, resets to the original view when
7403
+ * called with an empty payload, and reports an error when a named view
7404
+ * cannot be found.
6871
7405
  * ```js
6872
7406
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6873
7407
  * ```
@@ -6885,10 +7419,15 @@ export enum HostEvent {
6885
7419
  UpdatePersonalisedView = "UpdatePersonalisedView",
6886
7420
  /**
6887
7421
  * Triggers an event to update a personalized view of a Liveboard.
7422
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7423
+ * which additionally accepts a `viewName`, resets to the original view when
7424
+ * called with an empty payload, and reports an error when a named view
7425
+ * cannot be found.
6888
7426
  * ```js
6889
7427
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6890
7428
  * ```
6891
7429
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7430
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6892
7431
  */
6893
7432
  UpdatePersonalizedView = "UpdatePersonalisedView",
6894
7433
  /**
@@ -6991,6 +7530,10 @@ export enum HostEvent {
6991
7530
  * description: "Generated from Spotter"
6992
7531
  * }, ContextType.Spotter);
6993
7532
  * ```
7533
+ * @returns answerId - GUID of the saved Answer.
7534
+ * @returns saveResponse - Raw response from the save operation.
7535
+ * @returns shareResponse - Raw response from the share operation, when the
7536
+ * Answer was also made discoverable.
6994
7537
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
6995
7538
  */
6996
7539
  SaveAnswer = "saveAnswer",
@@ -7105,25 +7648,55 @@ export enum HostEvent {
7105
7648
  */
7106
7649
  ResetSpotterConversation = "ResetSpotterConversation",
7107
7650
  /**
7108
- * Deletes the last prompt in spotter embed.
7651
+ * Opens the Spotter share-conversation modal for the given conversation.
7652
+ * `conversationId` is **mandatory** — you must pass the id of the
7653
+ * conversation to share. Also no-op when sharing is disabled
7654
+ * (enableShareConversation off) or when already in the read-only shared view.
7109
7655
  * @example
7110
7656
  * ```js
7111
- * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7657
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
7112
7658
  * ```
7113
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7659
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7114
7660
  */
7115
- DeleteLastPrompt = "DeleteLastPrompt",
7661
+ ShareSpotterConversation = "ShareSpotterConversation",
7116
7662
  /**
7117
- * Toggle the visualization to chart or table view.
7118
- * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7663
+ * Closes the Spotter share-conversation modal. No-op if none is open.
7119
7664
  * @example
7120
7665
  * ```js
7121
- * let latestSpotterVizId = '';
7122
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7123
- * latestSpotterVizId = payload.data.id;
7124
- * });
7125
- *
7126
- * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7666
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
7667
+ * ```
7668
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7669
+ */
7670
+ CloseSpotterShareConversation = "CloseSpotterShareConversation",
7671
+ /**
7672
+ * Exits the read-only shared-conversation view.
7673
+ * @example
7674
+ * ```js
7675
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
7676
+ * ```
7677
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7678
+ */
7679
+ ExitSpotterSharedConversation = "ExitSpotterSharedConversation",
7680
+ /**
7681
+ * Deletes the last prompt in spotter embed.
7682
+ * @example
7683
+ * ```js
7684
+ * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7685
+ * ```
7686
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7687
+ */
7688
+ DeleteLastPrompt = "DeleteLastPrompt",
7689
+ /**
7690
+ * Toggle the visualization to chart or table view.
7691
+ * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7692
+ * @example
7693
+ * ```js
7694
+ * let latestSpotterVizId = '';
7695
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7696
+ * latestSpotterVizId = payload.data.id;
7697
+ * });
7698
+ *
7699
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7127
7700
  * ```
7128
7701
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7129
7702
  */
@@ -7199,6 +7772,41 @@ export enum HostEvent {
7199
7772
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
7200
7773
  */
7201
7774
  StartNewSpotterConversation = "StartNewSpotterConversation",
7775
+ /**
7776
+ * Pins a saved Spotter conversation so it floats to the top of the past
7777
+ * conversations sidebar. The `conversationId` of the conversation to pin is
7778
+ * required.
7779
+ *
7780
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7781
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7782
+ * instance.
7783
+ *
7784
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7785
+ * @example
7786
+ * ```js
7787
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
7788
+ * conversationId: '<conversation-id>',
7789
+ * });
7790
+ * ```
7791
+ */
7792
+ PinSpotterConversation = "PinSpotterConversation",
7793
+ /**
7794
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
7795
+ * conversation to unpin is required.
7796
+ *
7797
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7798
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7799
+ * instance.
7800
+ *
7801
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7802
+ * @example
7803
+ * ```js
7804
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
7805
+ * conversationId: '<conversation-id>',
7806
+ * });
7807
+ * ```
7808
+ */
7809
+ UnpinSpotterConversation = "UnpinSpotterConversation",
7202
7810
  /**
7203
7811
  * @hidden
7204
7812
  * Get the current context of the embedded page.
@@ -7309,9 +7917,10 @@ export type SpotterFileUploadFileTypes = {
7309
7917
  * ThoughtSpot application pages include actions and menu commands
7310
7918
  * for various user-initiated operations. These actions are represented
7311
7919
  * as enumeration members in the SDK. To control actions in the embedded view:
7312
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7313
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7314
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7920
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7921
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7922
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7923
+ * are shown; all others are hidden.
7315
7924
  *
7316
7925
  * Use disabledActions to disable (gray out) an action.
7317
7926
  * Use hiddenActions to hide (fully remove) an action.
@@ -7364,6 +7973,17 @@ export enum Action {
7364
7973
  * ```
7365
7974
  */
7366
7975
  SaveAsView = "saveAsView",
7976
+ /**
7977
+ * The **EditInputTable** action on a Liveboard
7978
+ * page. Allows users to edit an input table used in an Answer directly from
7979
+ * a Liveboard.
7980
+ * @example
7981
+ * ```js
7982
+ * disabledActions: [Action.EditInputTable]
7983
+ * ```
7984
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7985
+ */
7986
+ EditInputTable = "editInputTable",
7367
7987
  /**
7368
7988
  * The **Make a copy** action on a Liveboard or Answer
7369
7989
  * page. Creates a copy of the Liveboard.
@@ -8565,6 +9185,19 @@ export enum Action {
8565
9185
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
8566
9186
  */
8567
9187
  ChangeFilterVisibilityInTab = "changeFilterVisibilityInTab",
9188
+ /**
9189
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
9190
+ * including filter, parameter, and cross-filter chips at the liveboard,
9191
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
9192
+ *
9193
+ * @example
9194
+ * ```js
9195
+ * hiddenActions: [Action.AllLiveboardFilters]
9196
+ * disabledActions: [Action.AllLiveboardFilters]
9197
+ * ```
9198
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
9199
+ */
9200
+ AllLiveboardFilters = "allLiveboardFilters",
8568
9201
  /**
8569
9202
  * The **Data model instructions** button on the Spotter interface.
8570
9203
  * Allows opening the data model instructions modal.
@@ -8666,6 +9299,10 @@ export enum Action {
8666
9299
  * The **Add to Coaching** feature allows adding reference questions and
8667
9300
  * business terms to improve Spotter’s responses. This feature is generally available
8668
9301
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9302
+ *
9303
+ * This action governs both the answer-card **Add to memory** CTA and its
9304
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9305
+ * (they are mutually exclusive).
8669
9306
  * @example
8670
9307
  * ```js
8671
9308
  * hiddenAction: [Action.InConversationTraining]
@@ -8900,6 +9537,89 @@ export enum Action {
8900
9537
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8901
9538
  */
8902
9539
  SpotterChatRename = "spotterChatRename",
9540
+ /**
9541
+ * Controls visibility and disable state of the Spotter conversation Share
9542
+ * button in the chat header. Only takes effect once sharing is enabled
9543
+ * (enableShareConversation on).
9544
+ * @example
9545
+ * ```js
9546
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
9547
+ * ```
9548
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9549
+ */
9550
+ SpotterShareConversationButtonHeader = "spotterShareConversationButtonHeader",
9551
+ /**
9552
+ * Controls visibility and disable state of the Share item in the Spotter
9553
+ * conversation history (sidebar) edit menu. Independent of the header button
9554
+ * above, so a host can show Share in one entry point and hide it in the other.
9555
+ * @example
9556
+ * ```js
9557
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
9558
+ * ```
9559
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9560
+ */
9561
+ SpotterShareConversationMenuItemSidebar = "spotterShareConversationMenuItemSidebar",
9562
+ /**
9563
+ * Controls visibility of the entire read-only shared-conversation data-access
9564
+ * banner shown when a recipient opens a shared view. Hide-only.
9565
+ * @example
9566
+ * ```js
9567
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
9568
+ * ```
9569
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9570
+ */
9571
+ SpotterSharedConversationBanner = "spotterSharedConversationBanner",
9572
+ /**
9573
+ * Controls visibility and disable state of the cross/close button on the
9574
+ * read-only shared-conversation data-access banner (keeps the banner itself).
9575
+ * @example
9576
+ * ```js
9577
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
9578
+ * ```
9579
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9580
+ */
9581
+ SpotterSharedConversationBannerDismissButton = "spotterSharedConversationBannerDismissButton",
9582
+ /**
9583
+ * Controls visibility and disable state of the Exit button in the read-only
9584
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
9585
+ * host event.
9586
+ * @example
9587
+ * ```js
9588
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
9589
+ * ```
9590
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9591
+ */
9592
+ SpotterSharedConversationExitButton = "spotterSharedConversationExitButton",
9593
+ /**
9594
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
9595
+ * to the current moment…"). Hide-only.
9596
+ * @example
9597
+ * ```js
9598
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
9599
+ * ```
9600
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9601
+ */
9602
+ SpotterShareUpToCurrentInfo = "spotterShareUpToCurrentInfo",
9603
+ /**
9604
+ * Controls visibility and disable state of the share-modal "include new
9605
+ * messages since last shared version" checkbox.
9606
+ * @example
9607
+ * ```js
9608
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
9609
+ * ```
9610
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9611
+ */
9612
+ SpotterShareIncludeNewMessagesCheckbox = "spotterShareIncludeNewMessagesCheckbox",
9613
+ /**
9614
+ * Controls visibility and disable state of the cross on the share-modal
9615
+ * stale-snapshot info banner.
9616
+ * @example
9617
+ * ```js
9618
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
9619
+ * ```
9620
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9621
+ */
9622
+ SpotterShareStaleInfoBannerDismissButton = "spotterShareStaleInfoBannerDismissButton",
8903
9623
  /**
8904
9624
  * Controls visibility and disable state of the delete action
8905
9625
  * in the Spotter conversation edit menu.
@@ -8910,6 +9630,16 @@ export enum Action {
8910
9630
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8911
9631
  */
8912
9632
  SpotterChatDelete = "spotterChatDelete",
9633
+ /**
9634
+ * Controls visibility and disable state of the pin/unpin action
9635
+ * in the Spotter conversation edit menu.
9636
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9637
+ * @example
9638
+ * ```js
9639
+ * disabledActions: [Action.SpotterChatPin]
9640
+ * ```
9641
+ */
9642
+ SpotterChatPin = "spotterChatPin",
8913
9643
  /**
8914
9644
  * Controls visibility and disable state of the documentation/best practices
8915
9645
  * link in the Spotter sidebar footer.
@@ -8953,6 +9683,56 @@ export enum Action {
8953
9683
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
8954
9684
  */
8955
9685
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9686
+ /**
9687
+ * The **Basic Search** starter prompt pill.
9688
+ *
9689
+ * Starter prompt pills are the row of category buttons shown above the
9690
+ * Spotter chat input before a conversation starts. They give a new user
9691
+ * ready-made questions to click instead of typing one from scratch, and
9692
+ * disappear once the conversation begins. There are three, one per action
9693
+ * below.
9694
+ *
9695
+ * Clicking this pill opens a card of suggested simple questions; picking one
9696
+ * submits it to Spotter right away. Visible by default, and hidden along
9697
+ * with the other pills when the surface itself is off (see
9698
+ * {@link SpotterChatViewConfig.starterPrompts}).
9699
+ * @example
9700
+ * ```js
9701
+ * hiddenActions: [Action.QuickSearchPill]
9702
+ * ```
9703
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9704
+ */
9705
+ QuickSearchPill = "quickSearchPill",
9706
+ /**
9707
+ * The **Deep Analysis** starter prompt pill, next to
9708
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9709
+ *
9710
+ * Clicking it opens a card of suggested investigative questions ("why did
9711
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9712
+ * rather than submitting immediately, so the user can edit it first.
9713
+ * Visible by default.
9714
+ * @example
9715
+ * ```js
9716
+ * hiddenActions: [Action.DeepAnalysisPill]
9717
+ * ```
9718
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9719
+ */
9720
+ DeepAnalysisPill = "deepAnalysisPill",
9721
+ /**
9722
+ * The **Data Literacy** starter prompt pill, next to
9723
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9724
+ *
9725
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9726
+ * that describes the data the model can answer over, helping a user who does
9727
+ * not yet know what is in the data source. The prompt text always comes from
9728
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9729
+ * @example
9730
+ * ```js
9731
+ * hiddenActions: [Action.DataLiteracyPill]
9732
+ * ```
9733
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9734
+ */
9735
+ DataLiteracyPill = "dataLiteracyPill",
8956
9736
  /**
8957
9737
  * The **Include current period** checkbox for date filters.
8958
9738
  * Controls the visibility and availability of the option to include
@@ -9100,7 +9880,39 @@ export enum Action {
9100
9880
  * disabledActions: [Action.SpotterAnalystSidebar]
9101
9881
  * ```
9102
9882
  */
9103
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9883
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9884
+ /**
9885
+ * Controls visibility and disable state of the analyst list
9886
+ * ("Show all") in the Spotter Analyst interface.
9887
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9888
+ * @example
9889
+ * ```js
9890
+ * hiddenActions: [Action.SpotterAnalystList]
9891
+ * disabledActions: [Action.SpotterAnalystList]
9892
+ * ```
9893
+ */
9894
+ SpotterAnalystList = "spotterAnalystList",
9895
+ /**
9896
+ * Controls visibility and disable state of the default Spotter analyst
9897
+ * entry in the Spotter Analyst interface.
9898
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9899
+ * @example
9900
+ * ```js
9901
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9902
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9903
+ * ```
9904
+ */
9905
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9906
+ /**
9907
+ * The **Spotter** button in the Liveboard header.
9908
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9909
+ * @example
9910
+ * ```js
9911
+ * hiddenActions: [Action.SpotterOnLiveboard]
9912
+ * disabledActions: [Action.SpotterOnLiveboard]
9913
+ * ```
9914
+ */
9915
+ SpotterOnLiveboard = "spotterOnLiveboard"
9104
9916
  }
9105
9917
  export enum PrefetchFeatures {
9106
9918
  FullApp = "FullApp",
@@ -9593,7 +10405,7 @@ export type ApiInterceptFlags = {
9593
10405
  * const embed = new LiveboardEmbed('#embed', {
9594
10406
  * ...viewConfig,
9595
10407
  * enableApiIntercept: true,
9596
- * interceptUrls: [InterceptedApiType.DATA],
10408
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9597
10409
  * })
9598
10410
  * ```
9599
10411
  *
@@ -10086,7 +10898,15 @@ export interface LiveboardTab {
10086
10898
  name: string;
10087
10899
  [key: string]: any;
10088
10900
  }
10089
- enum ApplicabilityLevel {
10901
+ export interface LiveboardGroup {
10902
+ id: string;
10903
+ name: string;
10904
+ [key: string]: any;
10905
+ }
10906
+ /**
10907
+ * Levels at which a filter or parameter can be applied.
10908
+ */
10909
+ export enum ApplicabilityLevel {
10090
10910
  Liveboard = "LIVEBOARD",
10091
10911
  Tab = "TAB",
10092
10912
  Group = "GROUP"
@@ -10131,6 +10951,7 @@ export enum UIPassthroughEvent {
10131
10951
  GetParameters = "getParameters",
10132
10952
  GetTML = "getTML",
10133
10953
  GetTabs = "getTabs",
10954
+ GetGroups = "getGroups",
10134
10955
  GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
10135
10956
  }
10136
10957
  export type UIPassthroughContractBase = {
@@ -10240,6 +11061,14 @@ export type UIPassthroughContractBase = {
10240
11061
  Tabs: LiveboardTab[];
10241
11062
  };
10242
11063
  };
11064
+ [UIPassthroughEvent.GetGroups]: {
11065
+ request: Record<string, never>;
11066
+ response: {
11067
+ orderedGroupIds: string[];
11068
+ numberOfGroups: number;
11069
+ Groups: LiveboardGroup[];
11070
+ };
11071
+ };
10243
11072
  [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
10244
11073
  request: Record<string, never>;
10245
11074
  response: {
@@ -10285,6 +11114,7 @@ export type EmbedApiHostEventMapping = {
10285
11114
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
10286
11115
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
10287
11116
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
11117
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
10288
11118
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
10289
11119
  };
10290
11120
  export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
@@ -10340,7 +11170,7 @@ class HostEventClient {
10340
11170
  * @param payload - Optional payload for the event
10341
11171
  * @param context - Optional context (e.g. vizId) for scoped operations
10342
11172
  */
10343
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11173
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10344
11174
  }
10345
11175
  class TsEmbed {
10346
11176
  /**
@@ -10545,6 +11375,12 @@ class TsEmbed {
10545
11375
  protected getEmbedParamsObject(): Record<any, any>;
10546
11376
  protected getRootIframeSrc(): string;
10547
11377
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11378
+ /**
11379
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11380
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11381
+ * backward compatibility.
11382
+ */
11383
+ protected getPreRenderConfig(): PreRenderConfig;
10548
11384
  /**
10549
11385
  * Returns true if this embed instance is configured for pre-rendering.
10550
11386
  */
@@ -10583,12 +11419,14 @@ class TsEmbed {
10583
11419
  * fresh element; an element passed directly cannot be re-resolved.
10584
11420
  */
10585
11421
  private resolvePreRenderContainerTarget;
11422
+ private inheritPreRenderContainer;
11423
+ private getCustomPreRenderContainer;
10586
11424
  /**
10587
- * Makes the container a positioning context for the absolutely positioned
10588
- * wrapper, stashing the original inline `position` on the element (once) so
10589
- * destroy() can restore it exactly, leaving no trace. Recording it on the
10590
- * element rather than per-instance lets the override be reverted even when
10591
- * embeds share the same container.
11425
+ * Makes the resolved container a positioning context for the absolutely
11426
+ * positioned wrapper, stashing the original inline `position` on the element
11427
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11428
+ * on the element rather than per-instance lets the override be reverted even
11429
+ * when embeds share the same container.
10592
11430
  */
10593
11431
  private applyPreRenderContainerPositioning;
10594
11432
  /**
@@ -10736,7 +11574,7 @@ class TsEmbed {
10736
11574
  * ```
10737
11575
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
10738
11576
  */
10739
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11577
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
10740
11578
  /**
10741
11579
  * Triggers an event to the embedded app, skipping the UI flow.
10742
11580
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -10940,6 +11778,37 @@ export enum SpotterQueryMode {
10940
11778
  FAST_SEARCH = "fastSearch",
10941
11779
  RESEARCH = "research"
10942
11780
  }
11781
+ /**
11782
+ * Configuration for the pin/unpin conversation feature in the Spotter sidebar.
11783
+ * Grouped into one object because pin exposes several related settings
11784
+ * (enable + label overrides), unlike single-item actions like rename or
11785
+ * delete.
11786
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11787
+ */
11788
+ export interface SpotterChatPinConfig {
11789
+ /**
11790
+ * Enables the pin/unpin conversation feature in embedded Spotter. Disabled
11791
+ * by default — hosts must opt in. When off, the Pin/Unpin menu entry and
11792
+ * the pin glyph are hidden and the PinSpotterConversation /
11793
+ * UnpinSpotterConversation host events are no-ops. Native (non-embedded)
11794
+ * Spotter is unaffected and ships pin enabled.
11795
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11796
+ * @default false
11797
+ */
11798
+ enabled?: boolean;
11799
+ /**
11800
+ * Custom label text for the pin action in the conversation edit menu.
11801
+ * Defaults to translated "Pin" text.
11802
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11803
+ */
11804
+ pinLabel?: string;
11805
+ /**
11806
+ * Custom label text for the unpin action in the conversation edit menu.
11807
+ * Defaults to translated "Unpin" text.
11808
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11809
+ */
11810
+ unpinLabel?: string;
11811
+ }
10943
11812
  /**
10944
11813
  * Configuration for the Spotter sidebar.
10945
11814
  * Can be used in SpotterEmbed and AppEmbed.
@@ -10977,6 +11846,12 @@ export interface SpotterSidebarViewConfig {
10977
11846
  * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
10978
11847
  */
10979
11848
  spotterChatDeleteLabel?: string;
11849
+ /**
11850
+ * Pin/unpin conversation feature config (enable + label overrides).
11851
+ * Off by default in embed — hosts opt in via `enabled`.
11852
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11853
+ */
11854
+ spotterChatPinConfig?: SpotterChatPinConfig;
10980
11855
  /**
10981
11856
  * Custom title text for the delete conversation confirmation modal.
10982
11857
  * Defaults to translated "Delete chat" text.
@@ -11027,6 +11902,165 @@ export interface SpotterSidebarViewConfig {
11027
11902
  */
11028
11903
  spotterAnalystsLabel?: string;
11029
11904
  }
11905
+ /**
11906
+ * Configuration for the Spotter conversation sharing feature.
11907
+ * Can be used in SpotterEmbed and AppEmbed.
11908
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11909
+ * @group Embed components
11910
+ */
11911
+ export interface SpotterShareConversationConfig {
11912
+ /**
11913
+ * Enables sharing of the conversation.
11914
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11915
+ * @default false
11916
+ */
11917
+ enableShareConversation?: boolean;
11918
+ /**
11919
+ * Header Share button + sidebar Share item label.
11920
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11921
+ * @default "Share"
11922
+ */
11923
+ spotterShareLabel?: string;
11924
+ /**
11925
+ * Share modal title.
11926
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11927
+ */
11928
+ spotterShareModalTitle?: string;
11929
+ /**
11930
+ * Modal confirm button label.
11931
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11932
+ * @default "Share"
11933
+ */
11934
+ spotterShareConfirmLabel?: string;
11935
+ /**
11936
+ * Modal cancel button label.
11937
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11938
+ * @default "Cancel"
11939
+ */
11940
+ spotterShareCancelLabel?: string;
11941
+ /**
11942
+ * "Add users or groups" label.
11943
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11944
+ */
11945
+ spotterShareAddUsersLabel?: string;
11946
+ /**
11947
+ * Empty-state title ("No users added yet").
11948
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11949
+ */
11950
+ spotterShareEmptyTitle?: string;
11951
+ /**
11952
+ * Empty-state subtitle ("Not shared with any user").
11953
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11954
+ */
11955
+ spotterShareEmptySubtitle?: string;
11956
+ /**
11957
+ * "Include new messages since last shared version" checkbox label.
11958
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11959
+ */
11960
+ spotterShareIncludeNewMessagesLabel?: string;
11961
+ /**
11962
+ * Footer note when the snapshot is current ("…up to the current moment…").
11963
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11964
+ */
11965
+ spotterShareUpToCurrentLabel?: string;
11966
+ /**
11967
+ * Stale-snapshot info banner text ("All added users and groups will receive…").
11968
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11969
+ */
11970
+ spotterShareStaleInfoLabel?: string;
11971
+ /**
11972
+ * Read-only shared-view data-access banner message.
11973
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11974
+ */
11975
+ spotterSharedConversationBannerMessage?: string;
11976
+ /**
11977
+ * Read-only shared-view Exit button label.
11978
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11979
+ * @default "Exit"
11980
+ */
11981
+ spotterSharedConversationExitLabel?: string;
11982
+ }
11983
+ /**
11984
+ * A single starter prompt question shown under a category pill.
11985
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11986
+ * @group Embed components
11987
+ */
11988
+ export interface StarterPromptQuestion {
11989
+ /**
11990
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
11991
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
11992
+ */
11993
+ label?: string;
11994
+ /**
11995
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
11996
+ * 300 characters.
11997
+ */
11998
+ prompt: string;
11999
+ }
12000
+ /**
12001
+ * Configuration for a starter prompt category with questions
12002
+ * (`quick` and `research`).
12003
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12004
+ * @group Embed components
12005
+ */
12006
+ export interface StarterPromptCategory {
12007
+ /**
12008
+ * Overrides the default category pill label. ThoughtSpot truncates it
12009
+ * beyond 30 characters.
12010
+ */
12011
+ label?: string;
12012
+ /**
12013
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12014
+ * and drops any entry without a `prompt`.
12015
+ */
12016
+ questions?: StarterPromptQuestion[];
12017
+ }
12018
+ /**
12019
+ * Configuration for the Data Literacy starter prompt category.
12020
+ * Only the label is customizable; the prompt text comes from the backend.
12021
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12022
+ * @group Embed components
12023
+ */
12024
+ export interface StarterPreviewDataCategory {
12025
+ /**
12026
+ * Overrides the default category pill label. ThoughtSpot truncates it
12027
+ * beyond 30 characters.
12028
+ */
12029
+ label?: string;
12030
+ }
12031
+ /**
12032
+ * Content configuration for the Spotter starter prompts.
12033
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12034
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12035
+ *
12036
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12037
+ * the Liveboard SpotterViz surface are configured separately through
12038
+ * {@link SpotterVizConfig.customStarterPrompts}.
12039
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12040
+ * @group Embed components
12041
+ */
12042
+ export interface StarterPromptsConfig {
12043
+ /**
12044
+ * Turns the starter prompts surface on. Must be set explicitly, an
12045
+ * unset flag leaves the surface off.
12046
+ *
12047
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12048
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12049
+ * @default false
12050
+ */
12051
+ enable?: boolean;
12052
+ /** Basic Search category configuration. */
12053
+ quick?: StarterPromptCategory;
12054
+ /** Deep Analysis category configuration. */
12055
+ research?: StarterPromptCategory;
12056
+ /** Data Literacy category configuration. */
12057
+ previewData?: StarterPreviewDataCategory;
12058
+ /**
12059
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12060
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12061
+ */
12062
+ liveboard?: StarterPromptQuestion[];
12063
+ }
11030
12064
  /**
11031
12065
  * Configuration for customizing Spotter chat UI branding.
11032
12066
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -11067,11 +12101,83 @@ export interface SpotterChatViewConfig {
11067
12101
  /**
11068
12102
  * Enables starter prompts in the Spotter chat interface.
11069
12103
  *
11070
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12104
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12105
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12106
+ *
12107
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
11071
12108
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
11072
12109
  * @default false
11073
12110
  */
11074
12111
  enableStarterPrompts?: boolean;
12112
+ /**
12113
+ * Customizes the labels and questions of the Spotter starter prompts.
12114
+ * Individual pills are hidden or shown with `hiddenActions` /
12115
+ * `visibleActions` using `Action.QuickSearchPill`,
12116
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12117
+ *
12118
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12119
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12120
+ * @example
12121
+ * ```js
12122
+ * const embed = new SpotterEmbed('#tsEmbed', {
12123
+ * worksheetId: 'worksheet-id',
12124
+ * hiddenActions: [Action.DeepAnalysisPill],
12125
+ * spotterChatConfig: {
12126
+ * starterPrompts: {
12127
+ * enable: true,
12128
+ * quick: {
12129
+ * label: 'Quick questions',
12130
+ * questions: [
12131
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12132
+ * ],
12133
+ * },
12134
+ * previewData: { label: 'Explore your data' },
12135
+ * },
12136
+ * },
12137
+ * })
12138
+ * ```
12139
+ */
12140
+ starterPrompts?: StarterPromptsConfig;
12141
+ /**
12142
+ * Opens the Spotter chat panel when the Liveboard loads.
12143
+ *
12144
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12145
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12146
+ * @default true
12147
+ * @example
12148
+ * ```js
12149
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12150
+ * liveboardId: 'liveboard-id',
12151
+ * spotterChatConfig: {
12152
+ * openSpotterOnLiveboardByDefault: false,
12153
+ * },
12154
+ * })
12155
+ * ```
12156
+ */
12157
+ openSpotterOnLiveboardByDefault?: boolean;
12158
+ }
12159
+ /**
12160
+ * Configuration for the Spotter Analyst experience.
12161
+ * Can be used in SpotterEmbed.
12162
+ * @group Embed components
12163
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12164
+ * @example
12165
+ * ```js
12166
+ * const embed = new SpotterEmbed('#tsEmbed', {
12167
+ * ... //other embed view config
12168
+ * spotterAnalystConfig: {
12169
+ * analystId: 'analyst-id-1234',
12170
+ * },
12171
+ * })
12172
+ * ```
12173
+ */
12174
+ export interface SpotterAnalystConfig {
12175
+ /**
12176
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12177
+ * and no "Show all".
12178
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12179
+ */
12180
+ analystId?: string;
11075
12181
  }
11076
12182
  /**
11077
12183
  * The configuration for the embedded spotterEmbed options.
@@ -11081,8 +12187,43 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11081
12187
  /**
11082
12188
  * The ID of the data source object. For example, Model, View, or Table. Spotter uses
11083
12189
  * this object to query data and generate Answers.
12190
+ * This field is optional. If not provided, Spotter loads using the
12191
+ * previously selected user data source.
11084
12192
  */
11085
- worksheetId: string;
12193
+ worksheetId?: string;
12194
+ /**
12195
+ * The array of data source GUIDs to set on load. Spotter uses
12196
+ * these GUIDs to query data and generate Answers.
12197
+ * dataSources is preferred over worksheetId if both are provided.
12198
+ * The feature is currently behind a feature flag.
12199
+ *
12200
+ * Supported embed types: `SpotterEmbed`
12201
+ * @example
12202
+ * ```js
12203
+ * const embed = new SpotterEmbed('#tsEmbed', {
12204
+ * // ...other embed view config
12205
+ * dataSources: ['id-2345', 'id-2345'],
12206
+ * });
12207
+ * ```
12208
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12209
+ */
12210
+ dataSources?: string[];
12211
+ /**
12212
+ * Configuration for the Spotter Analyst experience.
12213
+ *
12214
+ * Supported embed types: `SpotterEmbed`
12215
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12216
+ * @example
12217
+ * ```js
12218
+ * const embed = new SpotterEmbed('#tsEmbed', {
12219
+ * ... //other embed view config
12220
+ * spotterAnalystConfig: {
12221
+ * analystId: 'analyst-id-1234',
12222
+ * },
12223
+ * })
12224
+ * ```
12225
+ */
12226
+ spotterAnalystConfig?: SpotterAnalystConfig;
11086
12227
  /**
11087
12228
  * Ability to pass a starting search query to the conversation.
11088
12229
  */
@@ -11242,6 +12383,21 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11242
12383
  * ```
11243
12384
  */
11244
12385
  updatedSpotterChatPrompt?: boolean;
12386
+ /**
12387
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
12388
+ *
12389
+ * Supported embed types: `SpotterEmbed`
12390
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12391
+ * @default false
12392
+ * @example
12393
+ * ```js
12394
+ * const embed = new SpotterEmbed('#tsEmbed', {
12395
+ * ... //other embed view config
12396
+ * showSpotterRadiance : true,
12397
+ * })
12398
+ * ```
12399
+ */
12400
+ showSpotterRadiance?: boolean;
11245
12401
  /**
11246
12402
  * Sets the default query mode when Spotter loads — Fast Search or
11247
12403
  * Research Mode. Applies fresh on every new session for this embed
@@ -11318,6 +12474,59 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11318
12474
  * ```
11319
12475
  */
11320
12476
  spotterChatConfig?: SpotterChatViewConfig;
12477
+ /**
12478
+ * Configuration for the Spotter conversation sharing feature.
12479
+ *
12480
+ * Supported embed types: `SpotterEmbed`, `AppEmbed`
12481
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12482
+ * @example
12483
+ * ```js
12484
+ * const embed = new SpotterEmbed('#tsEmbed', {
12485
+ * ... //other embed view config
12486
+ * spotterShareConversationConfig: {
12487
+ * enableShareConversation: true,
12488
+ * },
12489
+ * })
12490
+ * ```
12491
+ */
12492
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
12493
+ /**
12494
+ * The ID of a shared Spotter conversation to open directly in the read-only
12495
+ * reader view. Use this to land a share recipient in the shared conversation
12496
+ * when they open a host-configured `CONVERSATION_URL` share link: read the
12497
+ * `{conversation-id}` from your page URL and pass it here.
12498
+ *
12499
+ * Requires the Spotter conversation-sharing feature to be enabled
12500
+ * (`spotterShareConversationConfig.enableShareConversation`). The recipient
12501
+ * must be an authorized sharee — the server returns access-denied otherwise.
12502
+ *
12503
+ * Supported embed types: `SpotterEmbed`
12504
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12505
+ * @example
12506
+ * ```js
12507
+ * const convId = new URLSearchParams(window.location.search).get('conversation-id');
12508
+ * const embed = new SpotterEmbed('#tsEmbed', {
12509
+ * ... //other embed view config
12510
+ * sharedConversationId: convId,
12511
+ * })
12512
+ * ```
12513
+ */
12514
+ sharedConversationId?: string;
12515
+ /**
12516
+ * updatedSpotterExperience : Controls the updated Spotter experience.
12517
+ *
12518
+ * Supported embed types: `SpotterEmbed`
12519
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12520
+ * @default false
12521
+ * @example
12522
+ * ```js
12523
+ * const embed = new SpotterEmbed('#tsEmbed', {
12524
+ * ... //other embed view config
12525
+ * updatedSpotterExperience : true,
12526
+ * })
12527
+ * ```
12528
+ */
12529
+ updatedSpotterExperience?: boolean;
11321
12530
  }
11322
12531
  /**
11323
12532
  * The configuration for the embedded spotterEmbed options.
@@ -11334,7 +12543,9 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
11334
12543
  export interface SpotterAppInitData extends DefaultAppInitData {
11335
12544
  embedParams?: {
11336
12545
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12546
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
11337
12547
  visualOverridesParams?: VisualizationOverrides | null;
12548
+ starterPrompts?: StarterPromptsConfig;
11338
12549
  };
11339
12550
  }
11340
12551
  /**
@@ -11424,13 +12635,12 @@ export interface SpotterVizStarterPrompt {
11424
12635
  * customStarterPrompts: [
11425
12636
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
11426
12637
  * ],
11427
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12638
+ * // The options below require SDK: 1.51.0
11428
12639
  * loaderHeadline: 'Crunching the numbers...',
11429
12640
  * loaderTips: [
11430
12641
  * { label: 'Tip', text: 'try asking about revenue by region' },
11431
12642
  * { label: 'Tip', text: 'use natural language' },
11432
12643
  * ],
11433
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11434
12644
  * liveboardBrandName: 'Reports',
11435
12645
  * spotterBrandName: 'Analyst',
11436
12646
  * insightTileBrandName: 'Insight card',
@@ -11483,47 +12693,47 @@ export interface SpotterVizConfig {
11483
12693
  /**
11484
12694
  * Custom headline text shown in the SpotterViz loading state.
11485
12695
  * Replaces the default loading headline.
11486
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12696
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11487
12697
  */
11488
12698
  loaderHeadline?: string;
11489
12699
  /**
11490
12700
  * Custom tips shown in the SpotterViz loading state.
11491
12701
  * Replaces the default loading tips with the provided list.
11492
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12702
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11493
12703
  */
11494
12704
  loaderTips?: SpotterVizLoaderTip[];
11495
12705
  /**
11496
12706
  * Custom term used to replace "Liveboard" in the agent's responses.
11497
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12707
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11498
12708
  * @default ''
11499
12709
  */
11500
12710
  liveboardBrandName?: string;
11501
12711
  /**
11502
12712
  * Custom term used to replace "Spotter" in the agent's responses.
11503
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12713
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11504
12714
  * @default ''
11505
12715
  */
11506
12716
  spotterBrandName?: string;
11507
12717
  /**
11508
12718
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
11509
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12719
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11510
12720
  * @default ''
11511
12721
  */
11512
12722
  insightTileBrandName?: string;
11513
12723
  /**
11514
12724
  * Custom term used to replace "View plan" in the insight tile menu.
11515
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12725
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11516
12726
  */
11517
12727
  insightTileViewPlanLabel?: string;
11518
12728
  /**
11519
12729
  * Custom loader text shown on the insight tile.
11520
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12730
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11521
12731
  */
11522
12732
  insightTileLoaderText?: string;
11523
12733
  }
11524
12734
  /**
11525
12735
  * A single tip shown in the SpotterViz loading state.
11526
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12736
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11527
12737
  * @group Embed components
11528
12738
  */
11529
12739
  export interface SpotterVizLoaderTip {
@@ -11571,7 +12781,11 @@ export enum Page {
11571
12781
  /**
11572
12782
  * Collections listing page
11573
12783
  */
11574
- Collections = "collections"
12784
+ Collections = "collections",
12785
+ /**
12786
+ * Liveboard schedules listing page
12787
+ */
12788
+ LiveboardSchedules = "liveboard-schedules"
11575
12789
  }
11576
12790
  /**
11577
12791
  * Define the initial state of column custom group accordions
@@ -11616,6 +12830,9 @@ export enum HomePage {
11616
12830
  /**
11617
12831
  * Modular (v2) introduces the updated Modular Home Experience.
11618
12832
  * It serves as the foundational version of the home page.
12833
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
12834
+ * {@link HomePage.Focused} (V4) instead.
12835
+ * @deprecated V1 and V2 home page experiences are deprecated.
11619
12836
  */
11620
12837
  Modular = "v2",
11621
12838
  /**
@@ -11689,13 +12906,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11689
12906
  showPrimaryNavbar?: boolean;
11690
12907
  /**
11691
12908
  * Control the visibility of the left navigation panel on the home page
11692
- * in the V2 and V3 navigation and home page experience.
12909
+ * in the V3 and V4 navigation and home page experience.
11693
12910
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
11694
12911
  * navigation bars are visible, this flag will only hide the left navigation bar
11695
12912
  * on the home page.
11696
12913
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
11697
12914
  *
11698
- * **Note**: This attribute is not supported in the classic (V1) experience.
12915
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
12916
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
11699
12917
  *
11700
12918
  * Supported embed types: `AppEmbed`
11701
12919
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11761,11 +12979,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11761
12979
  hideHamburger?: boolean;
11762
12980
  /**
11763
12981
  * Control the visibility of the object search
11764
- * on the top navigation bar in the
11765
- * V2 and V3 navigation experience.
12982
+ * on the top navigation bar in the V3 navigation experience.
11766
12983
  *
11767
- * **Note**: This attribute is not supported
11768
- * in the classic (V1) experience.
12984
+ * **Note**: The classic (V1) and V2 navigation experiences are
12985
+ * deprecated. This attribute applies to the V3 navigation experience.
11769
12986
  *
11770
12987
  * Supported embed types: `AppEmbed`
11771
12988
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -11783,8 +13000,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11783
13000
  * Control the visibility of the notification icon
11784
13001
  * on the top navigation bar in V3 navigation experience.
11785
13002
  *
11786
- * **Note**: This attribute is not supported
11787
- * in the classic (V1) and V2 experience modes.
13003
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
13004
+ * This attribute applies to the V3 experience.
11788
13005
  *
11789
13006
  * Supported embed types: `AppEmbed`
11790
13007
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -11799,14 +13016,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11799
13016
  */
11800
13017
  hideNotification?: boolean;
11801
13018
  /**
11802
- * Control the visibility of the application selection menu
11803
- * in the top navigation bar in the V2 experience.
13019
+ * Control the visibility of the application selection menu.
11804
13020
  * In the V3 experience, it shows or hides application selection
11805
13021
  * icons on the left navigation panel.
11806
13022
  * By default, the application selection menu and icons are
11807
13023
  * shown in the UI.
11808
13024
  *
11809
- * **Note**: This attribute is not supported in the classic (V1) experience.
13025
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
13026
+ * This attribute applies to the V3 experience.
11810
13027
  *
11811
13028
  * Supported embed types: `AppEmbed`
11812
13029
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11824,7 +13041,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11824
13041
  * Control the visibility of the Org switcher button on the nav-bar.
11825
13042
  * By default, the Org switcher button is shown.
11826
13043
  *
11827
- * **Note**: This attribute is not supported in the classic (V1) experience.
13044
+ * **Note**: The classic (V1) experience is deprecated. This attribute
13045
+ * applies to V2 (deprecated), V3 and V4 experiences.
11828
13046
  *
11829
13047
  * Supported embed types: `AppEmbed`
11830
13048
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11965,6 +13183,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11965
13183
  * `false` fetches visualizations incrementally as
11966
13184
  * users scroll the page to view the charts and tables.
11967
13185
  *
13186
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13187
+ * {@link lazyLoadingForFullHeight} and
13188
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13189
+ * they scroll into view. Set either flag to `false` to opt out.
13190
+ *
11968
13191
  * Supported embed types: `AppEmbed`
11969
13192
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
11970
13193
  * @example
@@ -11983,6 +13206,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11983
13206
  * Supported embed types: `AppEmbed`
11984
13207
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
11985
13208
  * @default false
13209
+ * Use the discoveryExperience.homePage option with
13210
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
13211
+ * {@link HomePage.Focused} (V4) instead.
13212
+ * @deprecated The V1 and V2 home page experiences are deprecated.
11986
13213
  * @example
11987
13214
  * ```js
11988
13215
  * const embed = new AppEmbed('#tsEmbed', {
@@ -12114,11 +13341,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12114
13341
  /**
12115
13342
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
12116
13343
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
12117
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
13344
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
12118
13345
  *
12119
13346
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12120
13347
  * @type {boolean}
12121
13348
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
13349
+ * @default true
12122
13350
  * @example
12123
13351
  * ```js
12124
13352
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12131,10 +13359,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12131
13359
  isContinuousLiveboardPDFEnabled?: boolean;
12132
13360
  /**
12133
13361
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
13362
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12134
13363
  *
12135
13364
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12136
13365
  * @type {boolean}
12137
13366
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13367
+ * @default true
12138
13368
  * @example
12139
13369
  * ```js
12140
13370
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12147,10 +13377,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12147
13377
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
12148
13378
  /**
12149
13379
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
13380
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12150
13381
  *
12151
13382
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12152
13383
  * @type {boolean}
12153
13384
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13385
+ * @default true
12154
13386
  * @example
12155
13387
  * ```js
12156
13388
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12162,11 +13394,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12162
13394
  */
12163
13395
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12164
13396
  /**
12165
- * This flag is used to enable the full height lazy load data.
13397
+ * Loads visualizations only as they scroll into the viewport, instead of
13398
+ * loading the whole full-height Liveboard at once.
13399
+ *
13400
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13401
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13402
+ * set explicitly. Set it to `false` to load every visualization upfront.
13403
+ * The flag has no effect unless `fullHeight` is enabled.
12166
13404
  *
12167
13405
  * @type {boolean}
12168
13406
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12169
- * @default false
13407
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12170
13408
  * @example
12171
13409
  * ```js
12172
13410
  * const embed = new AppEmbed('#embed-container', {
@@ -12178,27 +13416,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12178
13416
  */
12179
13417
  lazyLoadingForFullHeight?: boolean;
12180
13418
  /**
12181
- * This flag is used to enable container-aware full height lazy loading.
13419
+ * Computes the visible region of the embed against its scrollable and
13420
+ * clipping ancestors, instead of treating the browser window as the only
13421
+ * viewport, and tracks scroll and resize on those ancestors.
12182
13422
  *
12183
- * Use this when the embed is rendered inside a scrollable or clipping
12184
- * container instead of relying on the browser window as the only viewport.
13423
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13424
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13425
+ * set explicitly. Set it to `false` when the page scrolls with the window
13426
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13427
+ * tracking.
12185
13428
  *
12186
13429
  * @type {boolean}
12187
- * @default false
13430
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12188
13431
  * @hidden
12189
13432
  */
12190
13433
  enableScrollableContainerLazyLoading?: boolean;
12191
13434
  /**
12192
- * The margin to be used for lazy loading.
13435
+ * How far outside the viewport a visualization starts loading, when
13436
+ * {@link lazyLoadingForFullHeight} is enabled.
12193
13437
  *
12194
13438
  * For example, if the margin is set to '10px',
12195
13439
  * the visualization will be loaded 10px before its top edge is visible in the
12196
13440
  * viewport.
12197
13441
  *
12198
- * The format is similar to CSS margin.
13442
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13443
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13444
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13445
+ * `auto`; an invalid value is logged and ignored.
13446
+ *
13447
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13448
+ * visualization ahead of the scroll position, so a chart has usually
13449
+ * finished loading by the time it scrolls into view. Use a smaller margin
13450
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13451
+ * only once it is actually visible.
12199
13452
  *
12200
13453
  * @type {string}
12201
13454
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13455
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12202
13456
  * @example
12203
13457
  * ```js
12204
13458
  * const embed = new AppEmbed('#embed-container', {
@@ -12226,6 +13480,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12226
13480
  * ```
12227
13481
  */
12228
13482
  updatedSpotterChatPrompt?: boolean;
13483
+ /**
13484
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
13485
+ *
13486
+ * Supported embed types: `AppEmbed`
13487
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13488
+ * @default false
13489
+ * @example
13490
+ * ```js
13491
+ * const embed = new AppEmbed('#tsEmbed', {
13492
+ * ... //other embed view config
13493
+ * showSpotterRadiance : true,
13494
+ * })
13495
+ * ```
13496
+ */
13497
+ showSpotterRadiance?: boolean;
12229
13498
  /**
12230
13499
  * Sets the default query mode when Spotter loads — Fast Search or
12231
13500
  * Research Mode. Applies fresh on every new session for this embed
@@ -12270,6 +13539,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12270
13539
  * spotterSidebarConfig: {
12271
13540
  * enablePastConversationsSidebar: true,
12272
13541
  * spotterSidebarTitle: 'My Conversations',
13542
+ * // Opt in to pin/unpin conversations in embedded Spotter
13543
+ * spotterChatPinConfig: {
13544
+ * enabled: true,
13545
+ * },
12273
13546
  * },
12274
13547
  * })
12275
13548
  * ```
@@ -12293,6 +13566,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12293
13566
  * ```
12294
13567
  */
12295
13568
  spotterChatConfig?: SpotterChatViewConfig;
13569
+ /**
13570
+ * Configuration for the Spotter conversation sharing feature.
13571
+ *
13572
+ * Supported embed types: `AppEmbed`
13573
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13574
+ * @example
13575
+ * ```js
13576
+ * const embed = new AppEmbed('#tsEmbed', {
13577
+ * ... //other embed view config
13578
+ * spotterShareConversationConfig: {
13579
+ * enableShareConversation: true,
13580
+ * },
13581
+ * })
13582
+ * ```
13583
+ */
13584
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13585
+ /**
13586
+ * Sets the default data sources (Models) for the Spotter experience shown on
13587
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
13588
+ * preselect the data sources available to Spotter, or the literal
13589
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
13590
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
13591
+ * Auto mode in `SpotterEmbed`.
13592
+ *
13593
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
13594
+ * `'auto_mode'` takes precedence and is selected by default.
13595
+ *
13596
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
13597
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
13598
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
13599
+ *
13600
+ * Supported embed types: `AppEmbed`
13601
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
13602
+ * @example
13603
+ * ```js
13604
+ * const embed = new AppEmbed('#tsEmbed', {
13605
+ * ... // other embed view config
13606
+ * discoveryExperience: { homePage: HomePage.Focused },
13607
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
13608
+ * })
13609
+ * ```
13610
+ */
13611
+ spotterDataSources?: string[];
12296
13612
  /**
12297
13613
  * Configuration for the SpotterViz interface shown on the Liveboard.
12298
13614
  * Customize the brand name, description, chat input placeholder,
@@ -12311,13 +13627,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12311
13627
  * inputChatPlaceholder: 'Ask a question...',
12312
13628
  * hideStarterPrompts: false,
12313
13629
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
12314
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13630
+ * // The options below require SDK: 1.51.0
12315
13631
  * loaderHeadline: 'Crunching the numbers...',
12316
13632
  * loaderTips: [
12317
13633
  * { label: 'Tip', text: 'try asking about revenue by region' },
12318
13634
  * { label: 'Tip', text: 'use natural language' },
12319
13635
  * ],
12320
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12321
13636
  * liveboardBrandName: 'Reports',
12322
13637
  * spotterBrandName: 'Analyst',
12323
13638
  * insightTileBrandName: 'Insight card',
@@ -12388,6 +13703,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12388
13703
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12389
13704
  */
12390
13705
  visualOverrides?: VisualizationOverrides;
13706
+ /**
13707
+ * updatedSpotterExperience : Controls the updated Spotter experience.
13708
+ *
13709
+ * Supported embed types: `AppEmbed`
13710
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13711
+ * @default false
13712
+ * @example
13713
+ * ```js
13714
+ * const embed = new AppEmbed('#tsEmbed', {
13715
+ * ... //other embed view config
13716
+ * updatedSpotterExperience : true,
13717
+ * })
13718
+ * ```
13719
+ */
13720
+ updatedSpotterExperience?: boolean;
12391
13721
  }
12392
13722
  /**
12393
13723
  * APP_INIT data shape for AppEmbed.
@@ -12397,6 +13727,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
12397
13727
  embedParams?: {
12398
13728
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12399
13729
  spotterVizConfig?: SpotterVizConfig;
13730
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13731
+ starterPrompts?: StarterPromptsConfig;
12400
13732
  };
12401
13733
  }
12402
13734
  /**
@@ -12427,6 +13759,7 @@ export class AppEmbed extends V1Embed {
12427
13759
  * embedded Liveboard or visualization.
12428
13760
  */
12429
13761
  protected getEmbedParams(): string;
13762
+ protected getEmbedParamsObject(): any;
12430
13763
  private sendFullHeightLazyLoadData;
12431
13764
  /**
12432
13765
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -12678,7 +14011,7 @@ export const prefetch: (url?: string, prefetchFeatures?: PrefetchFeatures[], add
12678
14011
  /**
12679
14012
  * Initializes the Visual Embed SDK globally and perform
12680
14013
  * authentication if applicable. This function needs to be called before any ThoughtSpot
12681
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
14014
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
12682
14015
  * to actually embed. That is handled internally.
12683
14016
  * @param embedConfig The configuration object containing ThoughtSpot host,
12684
14017
  * authentication mechanism and so on.
@@ -12777,6 +14110,7 @@ export const reloadIframe: (iFrame: HTMLIFrameElement) => void;
12777
14110
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
12778
14111
  embedParams?: {
12779
14112
  spotterVizConfig?: SpotterVizConfig;
14113
+ starterPrompts?: StarterPromptsConfig;
12780
14114
  };
12781
14115
  }
12782
14116
  /**
@@ -12795,6 +14129,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12795
14129
  * Setting `fullHeight` to `false` fetches visualizations
12796
14130
  * incrementally as users scroll the page to view the charts and tables.
12797
14131
  *
14132
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14133
+ * {@link lazyLoadingForFullHeight} and
14134
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14135
+ * they scroll into view. Set either flag to `false` to opt out.
14136
+ *
12798
14137
  *
12799
14138
  * Supported embed types: `LiveboardEmbed`
12800
14139
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -13134,11 +14473,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13134
14473
  /**
13135
14474
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
13136
14475
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
13137
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
14476
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
13138
14477
  *
13139
14478
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13140
14479
  * @type {boolean}
13141
14480
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
14481
+ * @default true
13142
14482
  * @example
13143
14483
  * ```js
13144
14484
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13151,10 +14491,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13151
14491
  isContinuousLiveboardPDFEnabled?: boolean;
13152
14492
  /**
13153
14493
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
14494
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13154
14495
  *
13155
14496
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13156
14497
  * @type {boolean}
13157
14498
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14499
+ * @default true
13158
14500
  * @example
13159
14501
  * ```js
13160
14502
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13167,10 +14509,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13167
14509
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
13168
14510
  /**
13169
14511
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
14512
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13170
14513
  *
13171
14514
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13172
14515
  * @type {boolean}
13173
14516
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14517
+ * @default true
13174
14518
  * @example
13175
14519
  * ```js
13176
14520
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13182,11 +14526,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13182
14526
  */
13183
14527
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13184
14528
  /**
13185
- * This flag is used to enable the full height lazy load data.
14529
+ * Loads visualizations only as they scroll into the viewport, instead of
14530
+ * loading the whole full-height Liveboard at once.
14531
+ *
14532
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14533
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14534
+ * set explicitly. Set it to `false` to load every visualization upfront.
14535
+ * The flag has no effect unless `fullHeight` is enabled.
13186
14536
  *
13187
14537
  * @type {boolean}
13188
14538
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13189
- * @default false
14539
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13190
14540
  * @example
13191
14541
  * ```js
13192
14542
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13198,26 +14548,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13198
14548
  */
13199
14549
  lazyLoadingForFullHeight?: boolean;
13200
14550
  /**
13201
- * This flag is used to enable container-aware full height lazy loading.
14551
+ * Computes the visible region of the embed against its scrollable and
14552
+ * clipping ancestors, instead of treating the browser window as the only
14553
+ * viewport, and tracks scroll and resize on those ancestors.
13202
14554
  *
13203
- * Use this when the embed is rendered inside a scrollable or clipping
13204
- * container instead of relying on the browser window as the only viewport.
14555
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14556
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14557
+ * set explicitly. Set it to `false` when the page scrolls with the window
14558
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14559
+ * tracking.
13205
14560
  *
13206
14561
  * @type {boolean}
13207
- * @default false
14562
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13208
14563
  */
13209
14564
  enableScrollableContainerLazyLoading?: boolean;
13210
14565
  /**
13211
- * The margin to be used for lazy loading.
14566
+ * How far outside the viewport a visualization starts loading, when
14567
+ * {@link lazyLoadingForFullHeight} is enabled.
13212
14568
  *
13213
14569
  * For example, if the margin is set to '10px',
13214
14570
  * the visualization will be loaded 10px before its top edge is visible in the
13215
14571
  * viewport.
13216
14572
  *
13217
- * The format is similar to CSS margin.
14573
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14574
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14575
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14576
+ * `auto`; an invalid value is logged and ignored.
14577
+ *
14578
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14579
+ * visualization ahead of the scroll position, so a chart has usually
14580
+ * finished loading by the time it scrolls into view. Use a smaller margin
14581
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14582
+ * only once it is actually visible.
13218
14583
  *
13219
14584
  * @type {string}
13220
14585
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14586
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13221
14587
  * @example
13222
14588
  * ```js
13223
14589
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13261,6 +14627,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13261
14627
  * ```
13262
14628
  */
13263
14629
  updatedSpotterChatPrompt?: boolean;
14630
+ /**
14631
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
14632
+ *
14633
+ * Supported embed types: `LiveboardEmbed`
14634
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14635
+ * @default false
14636
+ * @example
14637
+ * ```js
14638
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14639
+ * ... //other embed view config
14640
+ * showSpotterRadiance : true,
14641
+ * })
14642
+ * ```
14643
+ */
14644
+ showSpotterRadiance?: boolean;
13264
14645
  /**
13265
14646
  * Enables the stop answer generation button in the Spotter embed UI,
13266
14647
  * allowing users to interrupt an ongoing answer generation.
@@ -13306,13 +14687,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13306
14687
  * inputChatPlaceholder: 'Ask a question...',
13307
14688
  * hideStarterPrompts: false,
13308
14689
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13309
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14690
+ * // The options below require SDK: 1.51.0
13310
14691
  * loaderHeadline: 'Crunching the numbers...',
13311
14692
  * loaderTips: [
13312
14693
  * { label: 'Tip', text: 'try asking about revenue by region' },
13313
14694
  * { label: 'Tip', text: 'use natural language' },
13314
14695
  * ],
13315
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13316
14696
  * liveboardBrandName: 'Reports',
13317
14697
  * spotterBrandName: 'Analyst',
13318
14698
  * insightTileBrandName: 'Insight card',
@@ -13336,6 +14716,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13336
14716
  * ```
13337
14717
  */
13338
14718
  enableLiveboardDataCache?: boolean;
14719
+ /**
14720
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14721
+ *
14722
+ * Supported embed types: `LiveboardEmbed`
14723
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14724
+ * @default false
14725
+ * @example
14726
+ * ```js
14727
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14728
+ * ... //other embed view config
14729
+ * updatedSpotterExperience : true,
14730
+ * })
14731
+ * ```
14732
+ */
14733
+ updatedSpotterExperience?: boolean;
13339
14734
  }
13340
14735
  /**
13341
14736
  * Embed a ThoughtSpot Liveboard or visualization. When rendered it already
@@ -13408,7 +14803,7 @@ export class LiveboardEmbed extends V1Embed {
13408
14803
  * @param {any} data The payload to send with the message
13409
14804
  * @returns A promise that resolves with the response from the embedded app
13410
14805
  */
13411
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14806
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
13412
14807
  /**
13413
14808
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
13414
14809
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -14096,6 +15491,10 @@ export const MIXPANEL_EVENT: {
14096
15491
  VISUAL_SDK_IFRAME_LOAD_PERFORMANCE: string;
14097
15492
  VISUAL_SDK_EMBED_CREATE: string;
14098
15493
  VERCEL_INTEGRATION_COMPLETED: string;
15494
+ VISUAL_SDK_RENDER_CALLED: string;
15495
+ VISUAL_SDK_PRE_RENDER: string;
15496
+ VISUAL_SDK_SHOW_PRE_RENDER: string;
15497
+ VISUAL_SDK_HIDE_PRE_RENDER: string;
14099
15498
  };
14100
15499
  /**
14101
15500
  * Pushes the event with its Property key-value map to mixpanel.