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