@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) 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 +27 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +43 -12
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +29 -3
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +253 -1
  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 +171 -1
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +4 -2
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +125 -0
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +3 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +36 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  27. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/liveboard.d.ts +40 -13
  31. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  32. package/cjs/src/embed/liveboard.js +25 -4
  33. package/cjs/src/embed/liveboard.js.map +1 -1
  34. package/cjs/src/embed/liveboard.spec.js +349 -2
  35. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  36. package/cjs/src/embed/search.spec.js +28 -0
  37. package/cjs/src/embed/search.spec.js.map +1 -1
  38. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  39. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  40. package/cjs/src/embed/spotter-utils.js +15 -1
  41. package/cjs/src/embed/spotter-utils.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.spec.js +68 -0
  43. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  44. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  45. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  46. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  47. package/cjs/src/embed/ts-embed.d.ts +97 -9
  48. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  49. package/cjs/src/embed/ts-embed.js +76 -35
  50. package/cjs/src/embed/ts-embed.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.spec.js +537 -3
  52. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  53. package/cjs/src/index.d.ts +3 -3
  54. package/cjs/src/index.d.ts.map +1 -1
  55. package/cjs/src/index.js +3 -2
  56. package/cjs/src/index.js.map +1 -1
  57. package/cjs/src/react/all-types-export.d.ts +1 -1
  58. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  59. package/cjs/src/react/all-types-export.js +2 -1
  60. package/cjs/src/react/all-types-export.js.map +1 -1
  61. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  62. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  63. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  64. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  65. package/cjs/src/react/index.d.ts +66 -32
  66. package/cjs/src/react/index.d.ts.map +1 -1
  67. package/cjs/src/react/index.js +5 -3
  68. package/cjs/src/react/index.js.map +1 -1
  69. package/cjs/src/react/index.spec.js +101 -0
  70. package/cjs/src/react/index.spec.js.map +1 -1
  71. package/cjs/src/types.d.ts +330 -18
  72. package/cjs/src/types.d.ts.map +1 -1
  73. package/cjs/src/types.js +182 -12
  74. package/cjs/src/types.js.map +1 -1
  75. package/cjs/src/utils.d.ts +5 -0
  76. package/cjs/src/utils.d.ts.map +1 -1
  77. package/cjs/src/utils.js +19 -1
  78. package/cjs/src/utils.js.map +1 -1
  79. package/cjs/src/utils.spec.js +37 -0
  80. package/cjs/src/utils.spec.js.map +1 -1
  81. package/dist/{index-aBzH5ZwF.js → index-D8_Zs-Nr.js} +1 -1
  82. package/dist/src/config.d.ts +1 -0
  83. package/dist/src/config.d.ts.map +1 -1
  84. package/dist/src/css-variables.d.ts +27 -0
  85. package/dist/src/css-variables.d.ts.map +1 -1
  86. package/dist/src/embed/app.d.ts +43 -12
  87. package/dist/src/embed/app.d.ts.map +1 -1
  88. package/dist/src/embed/base.d.ts +1 -1
  89. package/dist/src/embed/conversation.d.ts +171 -1
  90. package/dist/src/embed/conversation.d.ts.map +1 -1
  91. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  92. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +40 -13
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +8 -1
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  97. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  98. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  99. package/dist/src/embed/ts-embed.d.ts +97 -9
  100. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  101. package/dist/src/index.d.ts +3 -3
  102. package/dist/src/index.d.ts.map +1 -1
  103. package/dist/src/react/all-types-export.d.ts +1 -1
  104. package/dist/src/react/all-types-export.d.ts.map +1 -1
  105. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  106. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  107. package/dist/src/react/index.d.ts +66 -32
  108. package/dist/src/react/index.d.ts.map +1 -1
  109. package/dist/src/types.d.ts +330 -18
  110. package/dist/src/types.d.ts.map +1 -1
  111. package/dist/src/utils.d.ts +5 -0
  112. package/dist/src/utils.d.ts.map +1 -1
  113. package/dist/tsembed-react.es.js +354 -64
  114. package/dist/tsembed-react.js +353 -63
  115. package/dist/tsembed.es.js +414 -126
  116. package/dist/tsembed.js +416 -128
  117. package/dist/visual-embed-sdk-react-full.d.ts +777 -90
  118. package/dist/visual-embed-sdk-react.d.ts +773 -89
  119. package/dist/visual-embed-sdk.d.ts +713 -60
  120. package/lib/package.json +1 -1
  121. package/lib/src/config.d.ts +1 -0
  122. package/lib/src/config.d.ts.map +1 -1
  123. package/lib/src/config.js +1 -0
  124. package/lib/src/config.js.map +1 -1
  125. package/lib/src/css-variables.d.ts +27 -0
  126. package/lib/src/css-variables.d.ts.map +1 -1
  127. package/lib/src/embed/app.d.ts +43 -12
  128. package/lib/src/embed/app.d.ts.map +1 -1
  129. package/lib/src/embed/app.js +30 -4
  130. package/lib/src/embed/app.js.map +1 -1
  131. package/lib/src/embed/app.spec.js +253 -1
  132. package/lib/src/embed/app.spec.js.map +1 -1
  133. package/lib/src/embed/base.d.ts +1 -1
  134. package/lib/src/embed/base.js +1 -1
  135. package/lib/src/embed/conversation.d.ts +171 -1
  136. package/lib/src/embed/conversation.d.ts.map +1 -1
  137. package/lib/src/embed/conversation.js +5 -3
  138. package/lib/src/embed/conversation.js.map +1 -1
  139. package/lib/src/embed/conversation.spec.js +125 -0
  140. package/lib/src/embed/conversation.spec.js.map +1 -1
  141. package/lib/src/embed/events.spec.js +3 -0
  142. package/lib/src/embed/events.spec.js.map +1 -1
  143. package/lib/src/embed/host-events.spec.js +36 -0
  144. package/lib/src/embed/host-events.spec.js.map +1 -1
  145. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  146. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  147. package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  148. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  149. package/lib/src/embed/liveboard.d.ts +40 -13
  150. package/lib/src/embed/liveboard.d.ts.map +1 -1
  151. package/lib/src/embed/liveboard.js +25 -4
  152. package/lib/src/embed/liveboard.js.map +1 -1
  153. package/lib/src/embed/liveboard.spec.js +349 -2
  154. package/lib/src/embed/liveboard.spec.js.map +1 -1
  155. package/lib/src/embed/search.spec.js +28 -0
  156. package/lib/src/embed/search.spec.js.map +1 -1
  157. package/lib/src/embed/spotter-utils.d.ts +8 -1
  158. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  159. package/lib/src/embed/spotter-utils.js +13 -0
  160. package/lib/src/embed/spotter-utils.js.map +1 -1
  161. package/lib/src/embed/spotter-utils.spec.js +69 -1
  162. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  163. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  164. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  165. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  166. package/lib/src/embed/ts-embed.d.ts +97 -9
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +77 -36
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.js +537 -3
  171. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  172. package/lib/src/index.d.ts +3 -3
  173. package/lib/src/index.d.ts.map +1 -1
  174. package/lib/src/index.js +2 -2
  175. package/lib/src/index.js.map +1 -1
  176. package/lib/src/react/all-types-export.d.ts +1 -1
  177. package/lib/src/react/all-types-export.d.ts.map +1 -1
  178. package/lib/src/react/all-types-export.js +1 -1
  179. package/lib/src/react/all-types-export.js.map +1 -1
  180. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  181. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  182. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  183. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  184. package/lib/src/react/index.d.ts +66 -32
  185. package/lib/src/react/index.d.ts.map +1 -1
  186. package/lib/src/react/index.js +5 -3
  187. package/lib/src/react/index.js.map +1 -1
  188. package/lib/src/react/index.spec.js +102 -1
  189. package/lib/src/react/index.spec.js.map +1 -1
  190. package/lib/src/types.d.ts +330 -18
  191. package/lib/src/types.d.ts.map +1 -1
  192. package/lib/src/types.js +182 -12
  193. package/lib/src/types.js.map +1 -1
  194. package/lib/src/utils.d.ts +5 -0
  195. package/lib/src/utils.d.ts.map +1 -1
  196. package/lib/src/utils.js +17 -0
  197. package/lib/src/utils.js.map +1 -1
  198. package/lib/src/utils.spec.js +38 -1
  199. package/lib/src/utils.spec.js.map +1 -1
  200. package/lib/src/visual-embed-sdk.d.ts +713 -60
  201. package/package.json +1 -1
  202. package/src/config.ts +1 -0
  203. package/src/css-variables.ts +32 -0
  204. package/src/embed/app.spec.ts +335 -1
  205. package/src/embed/app.ts +71 -13
  206. package/src/embed/base.ts +1 -1
  207. package/src/embed/conversation.spec.ts +136 -0
  208. package/src/embed/conversation.ts +181 -3
  209. package/src/embed/events.spec.ts +4 -0
  210. package/src/embed/host-events.spec.ts +48 -0
  211. package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
  212. package/src/embed/hostEventClient/host-event-client.ts +2 -2
  213. package/src/embed/liveboard.spec.ts +457 -2
  214. package/src/embed/liveboard.ts +74 -15
  215. package/src/embed/search.spec.ts +31 -0
  216. package/src/embed/spotter-utils.spec.ts +72 -0
  217. package/src/embed/spotter-utils.ts +21 -1
  218. package/src/embed/spotter-viz-utils.ts +9 -10
  219. package/src/embed/ts-embed.spec.ts +699 -3
  220. package/src/embed/ts-embed.ts +91 -41
  221. package/src/index.ts +43 -2
  222. package/src/react/all-types-export.parity.spec.ts +208 -0
  223. package/src/react/all-types-export.ts +22 -0
  224. package/src/react/index.spec.tsx +158 -0
  225. package/src/react/index.tsx +70 -33
  226. package/src/types.ts +329 -16
  227. package/src/utils.spec.ts +49 -0
  228. package/src/utils.ts +16 -0
@@ -439,6 +439,13 @@ export interface CustomCssVariables {
439
439
  * Font color of the header in the Liveboard.
440
440
  */
441
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;
442
449
  /**
443
450
  * Border color of the tiles in the Liveboard.
444
451
  */
@@ -455,6 +462,18 @@ export interface CustomCssVariables {
455
462
  * Background color of the insight tiles in the Liveboard.
456
463
  */
457
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;
458
477
  /**
459
478
  * Border radius of the tiles in the Liveboard.
460
479
  */
@@ -675,6 +694,14 @@ export interface CustomCssVariables {
675
694
  * Font color of the parameter chips in the Liveboard on active.
676
695
  */
677
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;
678
705
  /**
679
706
  * Background color of the action button in the Liveboard header.
680
707
  */
@@ -2125,6 +2152,85 @@ export interface FrameParams {
2125
2152
  */
2126
2153
  [key: string]: string | number | boolean | undefined;
2127
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
+ }
2128
2234
  /**
2129
2235
  * The common configuration object for an embedded view.
2130
2236
  */
@@ -2209,7 +2315,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2209
2315
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2210
2316
  * const embed = new <EmbedComponent>('#tsEmbed', {
2211
2317
  * ... // other embed view config
2212
- * hiddenActions: [Action.Download, Action.Export],
2318
+ * hiddenActions: [Action.Download, Action.ExportTML],
2213
2319
  * });
2214
2320
  * ```
2215
2321
  * @important
@@ -2231,7 +2337,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2231
2337
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2232
2338
  * const embed = new <EmbedComponent>('#tsEmbed', {
2233
2339
  * ... // other embed view config
2234
- * visibleActions: [Action.Download, Action.Export],
2340
+ * visibleActions: [Action.Download, Action.ExportTML],
2235
2341
  * });
2236
2342
  * ```
2237
2343
  */
@@ -2316,6 +2422,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2316
2422
  *
2317
2423
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2318
2424
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2425
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2319
2426
  * @example
2320
2427
  * ```js
2321
2428
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2335,6 +2442,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2335
2442
  * @type {boolean}
2336
2443
  * @default false
2337
2444
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2445
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2338
2446
  * @example
2339
2447
  * ```js
2340
2448
  * // Disable tracking PreRender size in the configuration
@@ -2376,6 +2484,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2376
2484
  *
2377
2485
  * @type {string | HTMLElement}
2378
2486
  * @version SDK: 1.49.2 | ThoughtSpot: *
2487
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2379
2488
  * @example
2380
2489
  * ```js
2381
2490
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2386,6 +2495,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2386
2495
  * ```
2387
2496
  */
2388
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;
2389
2519
  /**
2390
2520
  * Enable the V2 shell. This can provide performance benefits
2391
2521
  * due to a lighter-weight shell.
@@ -2824,7 +2954,7 @@ export interface HomePageConfig {
2824
2954
  *
2825
2955
  * const embed = new AppEmbed('#tsEmbed', {
2826
2956
  * ... //other embed view config
2827
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2957
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2828
2958
  * })
2829
2959
  * ```
2830
2960
  */
@@ -3137,6 +3267,25 @@ export interface LiveboardAppEmbedViewConfig {
3137
3267
  * ```
3138
3268
  */
3139
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;
3140
3289
  /**
3141
3290
  * This flag can be used to enable the compact header in Liveboard
3142
3291
  *
@@ -3241,6 +3390,26 @@ export interface LiveboardAppEmbedViewConfig {
3241
3390
  * ```
3242
3391
  */
3243
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;
3244
3413
  /**
3245
3414
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3246
3415
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3671,7 +3840,7 @@ export declare enum EmbedEvent {
3671
3840
  * @returns nonFilteredColumns - The columns that were not filtered
3672
3841
  * @example
3673
3842
  * ```js
3674
- * searchEmbed.on(EmbedEvent.DrillDown, {
3843
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3675
3844
  * points: {
3676
3845
  * clickedPoint,
3677
3846
  * selectedPoints: selectedPoint
@@ -3732,7 +3901,7 @@ export declare enum EmbedEvent {
3732
3901
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3733
3902
  * @example
3734
3903
  * ```js
3735
- * appEmbed.on(EmbedEvent.customAction, payload => {
3904
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3736
3905
  * const data = payload.data;
3737
3906
  * if (data.id === 'insert Custom Action ID here') {
3738
3907
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3998,8 +4167,8 @@ export declare enum EmbedEvent {
3998
4167
  *
3999
4168
  * **Note**: This event is deprecated in v1.21.0.
4000
4169
  * To fire an event when a download action is initiated on a chart or table,
4001
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
4002
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4170
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4171
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
4003
4172
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
4004
4173
  * @example
4005
4174
  * ```js
@@ -4049,10 +4218,10 @@ export declare enum EmbedEvent {
4049
4218
  * @example
4050
4219
  * ```js
4051
4220
  * //emit when action starts
4052
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4221
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
4053
4222
  * console.log('download CSV', payload)}, {start: true })
4054
4223
  * //emit when action ends
4055
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4224
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
4056
4225
  * console.log('download CSV', payload)})
4057
4226
  * ```
4058
4227
  */
@@ -5508,6 +5677,7 @@ export declare enum HostEvent {
5508
5677
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5509
5678
  * console.log("iFrameURL", url);
5510
5679
  * ```
5680
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5511
5681
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5512
5682
  */
5513
5683
  GetIframeUrl = "GetIframeUrl",
@@ -5674,6 +5844,41 @@ export declare enum HostEvent {
5674
5844
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5675
5845
  */
5676
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",
5677
5882
  /**
5678
5883
  * Open the parameter panel for a particular parameter on a Liveboard.
5679
5884
  * Mirrors {@link HostEvent.OpenFilter} for parameters.
@@ -5755,6 +5960,10 @@ export declare enum HostEvent {
5755
5960
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5756
5961
  * data=>console.log(data))
5757
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`.
5758
5967
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5759
5968
  */
5760
5969
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5857,6 +6066,9 @@ export declare enum HostEvent {
5857
6066
  * }, ContextType.Spotter);
5858
6067
  * ```
5859
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.
5860
6072
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5861
6073
  */
5862
6074
  Pin = "pin",
@@ -5895,13 +6107,13 @@ export declare enum HostEvent {
5895
6107
  * Trigger the **Manage schedule** action on an embedded Liveboard
5896
6108
  * @example
5897
6109
  * ```js
5898
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6110
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5899
6111
  * ```
5900
6112
  * @example
5901
6113
  * ```js
5902
6114
  * // Manage schedules from liveboard context
5903
6115
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5904
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6116
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5905
6117
  * ```
5906
6118
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5907
6119
  */
@@ -6346,6 +6558,7 @@ export declare enum HostEvent {
6346
6558
  * console.log(tml.answer);
6347
6559
  * });
6348
6560
  * ```
6561
+ * @returns The TML representation of the current Answer, as an object.
6349
6562
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
6350
6563
  * @important
6351
6564
  */
@@ -6789,6 +7002,8 @@ export declare enum HostEvent {
6789
7002
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6790
7003
  * console.log('filters', data);
6791
7004
  * ```
7005
+ * @returns liveboardFilters - Filters applied on the Liveboard.
7006
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6792
7007
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6793
7008
  */
6794
7009
  GetFilters = "getFilters",
@@ -6938,6 +7153,9 @@ export declare enum HostEvent {
6938
7153
  * console.log('tabs', tabDetails);
6939
7154
  * });
6940
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`.
6941
7159
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6942
7160
  */
6943
7161
  GetTabs = "getTabs",
@@ -6960,6 +7178,9 @@ export declare enum HostEvent {
6960
7178
  * console.log('groups', groupDetails);
6961
7179
  * });
6962
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`.
6963
7184
  * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6964
7185
  */
6965
7186
  GetGroups = "getGroups",
@@ -7034,6 +7255,9 @@ export declare enum HostEvent {
7034
7255
  * // Alternative direct usage (not recommended)
7035
7256
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
7036
7257
  * ```
7258
+ * @returns session - Session identifier for the Answer, for use with the
7259
+ * `AnswerService`.
7260
+ * @returns embedAnswerData - Data backing the Answer, when available.
7037
7261
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
7038
7262
  */
7039
7263
  GetAnswerSession = "getAnswerSession",
@@ -7167,12 +7391,16 @@ export declare enum HostEvent {
7167
7391
  * console.log('parameters', parameters);
7168
7392
  * });
7169
7393
  * ```
7394
+ * @returns parameters - Parameters currently applied on the Liveboard.
7170
7395
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
7171
7396
  */
7172
7397
  GetParameters = "GetParameters",
7173
7398
  /**
7174
7399
  * Triggers an event to update a personalized view of a Liveboard.
7175
- * 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.
7176
7404
  * ```js
7177
7405
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7178
7406
  * ```
@@ -7190,10 +7418,15 @@ export declare enum HostEvent {
7190
7418
  UpdatePersonalisedView = "UpdatePersonalisedView",
7191
7419
  /**
7192
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.
7193
7425
  * ```js
7194
7426
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7195
7427
  * ```
7196
7428
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7429
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7197
7430
  */
7198
7431
  UpdatePersonalizedView = "UpdatePersonalisedView",
7199
7432
  /**
@@ -7296,6 +7529,10 @@ export declare enum HostEvent {
7296
7529
  * description: "Generated from Spotter"
7297
7530
  * }, ContextType.Spotter);
7298
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.
7299
7536
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
7300
7537
  */
7301
7538
  SaveAnswer = "saveAnswer",
@@ -7679,9 +7916,10 @@ export type SpotterFileUploadFileTypes = {
7679
7916
  * ThoughtSpot application pages include actions and menu commands
7680
7917
  * for various user-initiated operations. These actions are represented
7681
7918
  * as enumeration members in the SDK. To control actions in the embedded view:
7682
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7683
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7684
- * - 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.
7685
7923
  *
7686
7924
  * Use disabledActions to disable (gray out) an action.
7687
7925
  * Use hiddenActions to hide (fully remove) an action.
@@ -7734,6 +7972,17 @@ export declare enum Action {
7734
7972
  * ```
7735
7973
  */
7736
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",
7737
7986
  /**
7738
7987
  * The **Make a copy** action on a Liveboard or Answer
7739
7988
  * page. Creates a copy of the Liveboard.
@@ -9049,6 +9298,10 @@ export declare enum Action {
9049
9298
  * The **Add to Coaching** feature allows adding reference questions and
9050
9299
  * business terms to improve Spotter’s responses. This feature is generally available
9051
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).
9052
9305
  * @example
9053
9306
  * ```js
9054
9307
  * hiddenAction: [Action.InConversationTraining]
@@ -9429,6 +9682,56 @@ export declare enum Action {
9429
9682
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
9430
9683
  */
9431
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",
9432
9735
  /**
9433
9736
  * The **Include current period** checkbox for date filters.
9434
9737
  * Controls the visibility and availability of the option to include
@@ -9576,7 +9879,39 @@ export declare enum Action {
9576
9879
  * disabledActions: [Action.SpotterAnalystSidebar]
9577
9880
  * ```
9578
9881
  */
9579
- 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"
9580
9915
  }
9581
9916
  export declare enum PrefetchFeatures {
9582
9917
  FullApp = "FullApp",
@@ -10069,7 +10404,7 @@ export type ApiInterceptFlags = {
10069
10404
  * const embed = new LiveboardEmbed('#embed', {
10070
10405
  * ...viewConfig,
10071
10406
  * enableApiIntercept: true,
10072
- * interceptUrls: [InterceptedApiType.DATA],
10407
+ * interceptUrls: [InterceptedApiType.LiveboardData],
10073
10408
  * })
10074
10409
  * ```
10075
10410
  *
@@ -10567,7 +10902,10 @@ export interface LiveboardGroup {
10567
10902
  name: string;
10568
10903
  [key: string]: any;
10569
10904
  }
10570
- declare enum ApplicabilityLevel {
10905
+ /**
10906
+ * Levels at which a filter or parameter can be applied.
10907
+ */
10908
+ export declare enum ApplicabilityLevel {
10571
10909
  Liveboard = "LIVEBOARD",
10572
10910
  Tab = "TAB",
10573
10911
  Group = "GROUP"
@@ -10831,7 +11169,7 @@ declare class HostEventClient {
10831
11169
  * @param payload - Optional payload for the event
10832
11170
  * @param context - Optional context (e.g. vizId) for scoped operations
10833
11171
  */
10834
- 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>>;
10835
11173
  }
10836
11174
  declare class TsEmbed {
10837
11175
  /**
@@ -11017,7 +11355,87 @@ declare class TsEmbed {
11017
11355
  * @param query
11018
11356
  */
11019
11357
  protected getEmbedBasePath(query: string): string;
11020
- protected getUpdateEmbedParamsObject(): Promise<Record<any, any>>;
11358
+ protected getUpdateEmbedParamsObject(): Promise<{
11359
+ customisations: CustomisationsInterface;
11360
+ authToken: string;
11361
+ runtimeFilterParams: string;
11362
+ runtimeParameterParams: string;
11363
+ hiddenHomepageModules: HomepageModule[];
11364
+ reorderedHomepageModules: string[];
11365
+ hostConfig: Record<string, any>;
11366
+ hiddenHomeLeftNavItems: string[];
11367
+ customVariablesForThirdPartyTools: Record<string, any>;
11368
+ hiddenListColumns: ListPageColumns[];
11369
+ customActions: CustomAction[];
11370
+ interceptTimeout: number;
11371
+ interceptUrls: string[];
11372
+ embedExpiryInAuthToken: boolean;
11373
+ shouldBypassPayloadValidation?: boolean;
11374
+ useHostEventsV2?: boolean;
11375
+ layoutConfig?: LayoutConfig;
11376
+ frameParams?: FrameParams;
11377
+ theme?: string;
11378
+ styleSheet__unstable?: string;
11379
+ disabledActions?: Action[];
11380
+ disabledActionReason?: string;
11381
+ hiddenActions?: Action[];
11382
+ visibleActions?: Action[];
11383
+ locale?: string;
11384
+ additionalFlags?: {
11385
+ [key: string]: string | number | boolean;
11386
+ };
11387
+ customizations?: CustomisationsInterface;
11388
+ insertAsSibling?: boolean;
11389
+ usePrerenderedIfAvailable?: boolean;
11390
+ preRenderId?: string;
11391
+ doNotTrackPreRenderSize?: boolean;
11392
+ preRenderContainer?: string | HTMLElement;
11393
+ preRenderConfig?: PreRenderConfig;
11394
+ enableV2Shell_experimental?: boolean;
11395
+ embedComponentType?: string;
11396
+ exposeTranslationIDs?: boolean;
11397
+ disableRedirectionLinksInNewTab?: boolean;
11398
+ overrideOrgId?: number;
11399
+ overrideHistoryState?: boolean;
11400
+ linkOverride?: boolean;
11401
+ enableLinkOverridesV2?: boolean;
11402
+ primaryAction?: string;
11403
+ insertInToSlide?: boolean;
11404
+ showAlerts?: boolean;
11405
+ refreshAuthTokenOnNearExpiry?: boolean;
11406
+ isOnBeforeGetVizDataInterceptEnabled?: boolean;
11407
+ runtimeFilters?: RuntimeFilter[];
11408
+ runtimeParameters?: RuntimeParameter[];
11409
+ contextMenuTrigger?: ContextMenuTriggerOptions;
11410
+ excludeRuntimeFiltersfromURL?: boolean;
11411
+ excludeRuntimeParametersfromURL?: boolean;
11412
+ collapseSearchBar?: boolean;
11413
+ dataPanelV2?: boolean;
11414
+ enableCustomColumnGroups?: boolean;
11415
+ isThisPeriodInDateFiltersEnabled?: boolean;
11416
+ hideLiveboardHeader?: boolean;
11417
+ showLiveboardTitle?: boolean;
11418
+ showLiveboardDescription?: boolean;
11419
+ isLiveboardHeaderSticky?: boolean;
11420
+ enable2ColumnLayout?: boolean;
11421
+ isLiveboardAlwaysOn12ColLayout?: boolean;
11422
+ isLiveboardCompactHeaderEnabled?: boolean;
11423
+ showLiveboardVerifiedBadge?: boolean;
11424
+ hideIrrelevantChipsInLiveboardTabs?: boolean;
11425
+ showLiveboardReverifyBanner?: boolean;
11426
+ enableAskSage?: boolean;
11427
+ coverAndFilterOptionInPDF?: boolean;
11428
+ liveboardGutter?: number;
11429
+ isCentralizedLiveboardFilterUXEnabled?: boolean;
11430
+ isScopedLiveboardFilteringEnabled?: boolean;
11431
+ isLinkParametersEnabled?: boolean;
11432
+ isEnhancedFilterInteractivityEnabled?: boolean;
11433
+ showMaskedFilterChip?: boolean;
11434
+ isLiveboardMasterpiecesEnabled?: boolean;
11435
+ newChartsLibrary?: boolean;
11436
+ visibleTabs?: string[];
11437
+ hiddenTabs?: string[];
11438
+ }>;
11021
11439
  /**
11022
11440
  * Common query params set for all the embed modes.
11023
11441
  * @param queryParams
@@ -11036,6 +11454,12 @@ declare class TsEmbed {
11036
11454
  protected getEmbedParamsObject(): Record<any, any>;
11037
11455
  protected getRootIframeSrc(): string;
11038
11456
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11457
+ /**
11458
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11459
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11460
+ * backward compatibility.
11461
+ */
11462
+ protected getPreRenderConfig(): PreRenderConfig;
11039
11463
  /**
11040
11464
  * Returns true if this embed instance is configured for pre-rendering.
11041
11465
  */
@@ -11074,12 +11498,14 @@ declare class TsEmbed {
11074
11498
  * fresh element; an element passed directly cannot be re-resolved.
11075
11499
  */
11076
11500
  private resolvePreRenderContainerTarget;
11501
+ private inheritPreRenderContainer;
11502
+ private getCustomPreRenderContainer;
11077
11503
  /**
11078
- * Makes the container a positioning context for the absolutely positioned
11079
- * wrapper, stashing the original inline `position` on the element (once) so
11080
- * destroy() can restore it exactly, leaving no trace. Recording it on the
11081
- * element rather than per-instance lets the override be reverted even when
11082
- * embeds share the same container.
11504
+ * Makes the resolved container a positioning context for the absolutely
11505
+ * positioned wrapper, stashing the original inline `position` on the element
11506
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11507
+ * on the element rather than per-instance lets the override be reverted even
11508
+ * when embeds share the same container.
11083
11509
  */
11084
11510
  private applyPreRenderContainerPositioning;
11085
11511
  /**
@@ -11227,7 +11653,7 @@ declare class TsEmbed {
11227
11653
  * ```
11228
11654
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11229
11655
  */
11230
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11656
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11231
11657
  /**
11232
11658
  * Triggers an event to the embedded app, skipping the UI flow.
11233
11659
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11633,6 +12059,87 @@ export interface SpotterShareConversationConfig {
11633
12059
  */
11634
12060
  spotterSharedConversationExitLabel?: string;
11635
12061
  }
12062
+ /**
12063
+ * A single starter prompt question shown under a category pill.
12064
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12065
+ * @group Embed components
12066
+ */
12067
+ export interface StarterPromptQuestion {
12068
+ /**
12069
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12070
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12071
+ */
12072
+ label?: string;
12073
+ /**
12074
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12075
+ * 300 characters.
12076
+ */
12077
+ prompt: string;
12078
+ }
12079
+ /**
12080
+ * Configuration for a starter prompt category with questions
12081
+ * (`quick` and `research`).
12082
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12083
+ * @group Embed components
12084
+ */
12085
+ export interface StarterPromptCategory {
12086
+ /**
12087
+ * Overrides the default category pill label. ThoughtSpot truncates it
12088
+ * beyond 30 characters.
12089
+ */
12090
+ label?: string;
12091
+ /**
12092
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12093
+ * and drops any entry without a `prompt`.
12094
+ */
12095
+ questions?: StarterPromptQuestion[];
12096
+ }
12097
+ /**
12098
+ * Configuration for the Data Literacy starter prompt category.
12099
+ * Only the label is customizable; the prompt text comes from the backend.
12100
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12101
+ * @group Embed components
12102
+ */
12103
+ export interface StarterPreviewDataCategory {
12104
+ /**
12105
+ * Overrides the default category pill label. ThoughtSpot truncates it
12106
+ * beyond 30 characters.
12107
+ */
12108
+ label?: string;
12109
+ }
12110
+ /**
12111
+ * Content configuration for the Spotter starter prompts.
12112
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12113
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12114
+ *
12115
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12116
+ * the Liveboard SpotterViz surface are configured separately through
12117
+ * {@link SpotterVizConfig.customStarterPrompts}.
12118
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12119
+ * @group Embed components
12120
+ */
12121
+ export interface StarterPromptsConfig {
12122
+ /**
12123
+ * Turns the starter prompts surface on. Must be set explicitly, an
12124
+ * unset flag leaves the surface off.
12125
+ *
12126
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12127
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12128
+ * @default false
12129
+ */
12130
+ enable?: boolean;
12131
+ /** Basic Search category configuration. */
12132
+ quick?: StarterPromptCategory;
12133
+ /** Deep Analysis category configuration. */
12134
+ research?: StarterPromptCategory;
12135
+ /** Data Literacy category configuration. */
12136
+ previewData?: StarterPreviewDataCategory;
12137
+ /**
12138
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12139
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12140
+ */
12141
+ liveboard?: StarterPromptQuestion[];
12142
+ }
11636
12143
  /**
11637
12144
  * Configuration for customizing Spotter chat UI branding.
11638
12145
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -11673,11 +12180,83 @@ export interface SpotterChatViewConfig {
11673
12180
  /**
11674
12181
  * Enables starter prompts in the Spotter chat interface.
11675
12182
  *
11676
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12183
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12184
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12185
+ *
12186
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
11677
12187
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
11678
12188
  * @default false
11679
12189
  */
11680
12190
  enableStarterPrompts?: boolean;
12191
+ /**
12192
+ * Customizes the labels and questions of the Spotter starter prompts.
12193
+ * Individual pills are hidden or shown with `hiddenActions` /
12194
+ * `visibleActions` using `Action.QuickSearchPill`,
12195
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12196
+ *
12197
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12198
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12199
+ * @example
12200
+ * ```js
12201
+ * const embed = new SpotterEmbed('#tsEmbed', {
12202
+ * worksheetId: 'worksheet-id',
12203
+ * hiddenActions: [Action.DeepAnalysisPill],
12204
+ * spotterChatConfig: {
12205
+ * starterPrompts: {
12206
+ * enable: true,
12207
+ * quick: {
12208
+ * label: 'Quick questions',
12209
+ * questions: [
12210
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12211
+ * ],
12212
+ * },
12213
+ * previewData: { label: 'Explore your data' },
12214
+ * },
12215
+ * },
12216
+ * })
12217
+ * ```
12218
+ */
12219
+ starterPrompts?: StarterPromptsConfig;
12220
+ /**
12221
+ * Opens the Spotter chat panel when the Liveboard loads.
12222
+ *
12223
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12224
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12225
+ * @default true
12226
+ * @example
12227
+ * ```js
12228
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12229
+ * liveboardId: 'liveboard-id',
12230
+ * spotterChatConfig: {
12231
+ * openSpotterOnLiveboardByDefault: false,
12232
+ * },
12233
+ * })
12234
+ * ```
12235
+ */
12236
+ openSpotterOnLiveboardByDefault?: boolean;
12237
+ }
12238
+ /**
12239
+ * Configuration for the Spotter Analyst experience.
12240
+ * Can be used in SpotterEmbed.
12241
+ * @group Embed components
12242
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12243
+ * @example
12244
+ * ```js
12245
+ * const embed = new SpotterEmbed('#tsEmbed', {
12246
+ * ... //other embed view config
12247
+ * spotterAnalystConfig: {
12248
+ * analystId: 'analyst-id-1234',
12249
+ * },
12250
+ * })
12251
+ * ```
12252
+ */
12253
+ export interface SpotterAnalystConfig {
12254
+ /**
12255
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12256
+ * and no "Show all".
12257
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12258
+ */
12259
+ analystId?: string;
11681
12260
  }
11682
12261
  /**
11683
12262
  * The configuration for the embedded spotterEmbed options.
@@ -11708,6 +12287,22 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11708
12287
  * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11709
12288
  */
11710
12289
  dataSources?: string[];
12290
+ /**
12291
+ * Configuration for the Spotter Analyst experience.
12292
+ *
12293
+ * Supported embed types: `SpotterEmbed`
12294
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12295
+ * @example
12296
+ * ```js
12297
+ * const embed = new SpotterEmbed('#tsEmbed', {
12298
+ * ... //other embed view config
12299
+ * spotterAnalystConfig: {
12300
+ * analystId: 'analyst-id-1234',
12301
+ * },
12302
+ * })
12303
+ * ```
12304
+ */
12305
+ spotterAnalystConfig?: SpotterAnalystConfig;
11711
12306
  /**
11712
12307
  * Ability to pass a starting search query to the conversation.
11713
12308
  */
@@ -12029,6 +12624,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
12029
12624
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12030
12625
  spotterShareConversationConfig?: SpotterShareConversationConfig;
12031
12626
  visualOverridesParams?: VisualizationOverrides | null;
12627
+ starterPrompts?: StarterPromptsConfig;
12032
12628
  };
12033
12629
  }
12034
12630
  /**
@@ -12118,13 +12714,12 @@ export interface SpotterVizStarterPrompt {
12118
12714
  * customStarterPrompts: [
12119
12715
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
12120
12716
  * ],
12121
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12717
+ * // The options below require SDK: 1.51.0
12122
12718
  * loaderHeadline: 'Crunching the numbers...',
12123
12719
  * loaderTips: [
12124
12720
  * { label: 'Tip', text: 'try asking about revenue by region' },
12125
12721
  * { label: 'Tip', text: 'use natural language' },
12126
12722
  * ],
12127
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12128
12723
  * liveboardBrandName: 'Reports',
12129
12724
  * spotterBrandName: 'Analyst',
12130
12725
  * insightTileBrandName: 'Insight card',
@@ -12177,47 +12772,47 @@ export interface SpotterVizConfig {
12177
12772
  /**
12178
12773
  * Custom headline text shown in the SpotterViz loading state.
12179
12774
  * Replaces the default loading headline.
12180
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12775
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12181
12776
  */
12182
12777
  loaderHeadline?: string;
12183
12778
  /**
12184
12779
  * Custom tips shown in the SpotterViz loading state.
12185
12780
  * Replaces the default loading tips with the provided list.
12186
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12781
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12187
12782
  */
12188
12783
  loaderTips?: SpotterVizLoaderTip[];
12189
12784
  /**
12190
12785
  * Custom term used to replace "Liveboard" in the agent's responses.
12191
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12786
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12192
12787
  * @default ''
12193
12788
  */
12194
12789
  liveboardBrandName?: string;
12195
12790
  /**
12196
12791
  * Custom term used to replace "Spotter" in the agent's responses.
12197
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12792
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12198
12793
  * @default ''
12199
12794
  */
12200
12795
  spotterBrandName?: string;
12201
12796
  /**
12202
12797
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
12203
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12798
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12204
12799
  * @default ''
12205
12800
  */
12206
12801
  insightTileBrandName?: string;
12207
12802
  /**
12208
12803
  * Custom term used to replace "View plan" in the insight tile menu.
12209
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12804
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12210
12805
  */
12211
12806
  insightTileViewPlanLabel?: string;
12212
12807
  /**
12213
12808
  * Custom loader text shown on the insight tile.
12214
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12809
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12215
12810
  */
12216
12811
  insightTileLoaderText?: string;
12217
12812
  }
12218
12813
  /**
12219
12814
  * A single tip shown in the SpotterViz loading state.
12220
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12815
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12221
12816
  * @group Embed components
12222
12817
  */
12223
12818
  export interface SpotterVizLoaderTip {
@@ -12265,7 +12860,11 @@ export declare enum Page {
12265
12860
  /**
12266
12861
  * Collections listing page
12267
12862
  */
12268
- Collections = "collections"
12863
+ Collections = "collections",
12864
+ /**
12865
+ * Liveboard schedules listing page
12866
+ */
12867
+ LiveboardSchedules = "liveboard-schedules"
12269
12868
  }
12270
12869
  /**
12271
12870
  * Define the initial state of column custom group accordions
@@ -12663,6 +13262,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12663
13262
  * `false` fetches visualizations incrementally as
12664
13263
  * users scroll the page to view the charts and tables.
12665
13264
  *
13265
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13266
+ * {@link lazyLoadingForFullHeight} and
13267
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13268
+ * they scroll into view. Set either flag to `false` to opt out.
13269
+ *
12666
13270
  * Supported embed types: `AppEmbed`
12667
13271
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12668
13272
  * @example
@@ -12869,11 +13473,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12869
13473
  */
12870
13474
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12871
13475
  /**
12872
- * This flag is used to enable the full height lazy load data.
13476
+ * Loads visualizations only as they scroll into the viewport, instead of
13477
+ * loading the whole full-height Liveboard at once.
13478
+ *
13479
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13480
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13481
+ * set explicitly. Set it to `false` to load every visualization upfront.
13482
+ * The flag has no effect unless `fullHeight` is enabled.
12873
13483
  *
12874
13484
  * @type {boolean}
12875
13485
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12876
- * @default false
13486
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12877
13487
  * @example
12878
13488
  * ```js
12879
13489
  * const embed = new AppEmbed('#embed-container', {
@@ -12885,27 +13495,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12885
13495
  */
12886
13496
  lazyLoadingForFullHeight?: boolean;
12887
13497
  /**
12888
- * This flag is used to enable container-aware full height lazy loading.
13498
+ * Computes the visible region of the embed against its scrollable and
13499
+ * clipping ancestors, instead of treating the browser window as the only
13500
+ * viewport, and tracks scroll and resize on those ancestors.
12889
13501
  *
12890
- * Use this when the embed is rendered inside a scrollable or clipping
12891
- * container instead of relying on the browser window as the only viewport.
13502
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13503
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13504
+ * set explicitly. Set it to `false` when the page scrolls with the window
13505
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13506
+ * tracking.
12892
13507
  *
12893
13508
  * @type {boolean}
12894
- * @default false
13509
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12895
13510
  * @hidden
12896
13511
  */
12897
13512
  enableScrollableContainerLazyLoading?: boolean;
12898
13513
  /**
12899
- * The margin to be used for lazy loading.
13514
+ * How far outside the viewport a visualization starts loading, when
13515
+ * {@link lazyLoadingForFullHeight} is enabled.
12900
13516
  *
12901
13517
  * For example, if the margin is set to '10px',
12902
13518
  * the visualization will be loaded 10px before its top edge is visible in the
12903
13519
  * viewport.
12904
13520
  *
12905
- * The format is similar to CSS margin.
13521
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13522
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13523
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13524
+ * `auto`; an invalid value is logged and ignored.
13525
+ *
13526
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13527
+ * visualization ahead of the scroll position, so a chart has usually
13528
+ * finished loading by the time it scrolls into view. Use a smaller margin
13529
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13530
+ * only once it is actually visible.
12906
13531
  *
12907
13532
  * @type {string}
12908
13533
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13534
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12909
13535
  * @example
12910
13536
  * ```js
12911
13537
  * const embed = new AppEmbed('#embed-container', {
@@ -13080,13 +13706,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13080
13706
  * inputChatPlaceholder: 'Ask a question...',
13081
13707
  * hideStarterPrompts: false,
13082
13708
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13083
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13709
+ * // The options below require SDK: 1.51.0
13084
13710
  * loaderHeadline: 'Crunching the numbers...',
13085
13711
  * loaderTips: [
13086
13712
  * { label: 'Tip', text: 'try asking about revenue by region' },
13087
13713
  * { label: 'Tip', text: 'use natural language' },
13088
13714
  * ],
13089
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13090
13715
  * liveboardBrandName: 'Reports',
13091
13716
  * spotterBrandName: 'Analyst',
13092
13717
  * insightTileBrandName: 'Insight card',
@@ -13182,6 +13807,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13182
13807
  spotterSidebarConfig?: SpotterSidebarViewConfig;
13183
13808
  spotterVizConfig?: SpotterVizConfig;
13184
13809
  spotterShareConversationConfig?: SpotterShareConversationConfig;
13810
+ starterPrompts?: StarterPromptsConfig;
13185
13811
  };
13186
13812
  }
13187
13813
  /**
@@ -13464,7 +14090,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
13464
14090
  /**
13465
14091
  * Initializes the Visual Embed SDK globally and perform
13466
14092
  * authentication if applicable. This function needs to be called before any ThoughtSpot
13467
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
14093
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
13468
14094
  * to actually embed. That is handled internally.
13469
14095
  * @param embedConfig The configuration object containing ThoughtSpot host,
13470
14096
  * authentication mechanism and so on.
@@ -13563,6 +14189,7 @@ export declare const reloadIframe: (iFrame: HTMLIFrameElement) => void;
13563
14189
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
13564
14190
  embedParams?: {
13565
14191
  spotterVizConfig?: SpotterVizConfig;
14192
+ starterPrompts?: StarterPromptsConfig;
13566
14193
  };
13567
14194
  }
13568
14195
  /**
@@ -13581,6 +14208,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13581
14208
  * Setting `fullHeight` to `false` fetches visualizations
13582
14209
  * incrementally as users scroll the page to view the charts and tables.
13583
14210
  *
14211
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14212
+ * {@link lazyLoadingForFullHeight} and
14213
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14214
+ * they scroll into view. Set either flag to `false` to opt out.
14215
+ *
13584
14216
  *
13585
14217
  * Supported embed types: `LiveboardEmbed`
13586
14218
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -13973,11 +14605,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13973
14605
  */
13974
14606
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13975
14607
  /**
13976
- * This flag is used to enable the full height lazy load data.
14608
+ * Loads visualizations only as they scroll into the viewport, instead of
14609
+ * loading the whole full-height Liveboard at once.
14610
+ *
14611
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14612
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14613
+ * set explicitly. Set it to `false` to load every visualization upfront.
14614
+ * The flag has no effect unless `fullHeight` is enabled.
13977
14615
  *
13978
14616
  * @type {boolean}
13979
14617
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13980
- * @default false
14618
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13981
14619
  * @example
13982
14620
  * ```js
13983
14621
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13989,26 +14627,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13989
14627
  */
13990
14628
  lazyLoadingForFullHeight?: boolean;
13991
14629
  /**
13992
- * This flag is used to enable container-aware full height lazy loading.
14630
+ * Computes the visible region of the embed against its scrollable and
14631
+ * clipping ancestors, instead of treating the browser window as the only
14632
+ * viewport, and tracks scroll and resize on those ancestors.
13993
14633
  *
13994
- * Use this when the embed is rendered inside a scrollable or clipping
13995
- * container instead of relying on the browser window as the only viewport.
14634
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14635
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14636
+ * set explicitly. Set it to `false` when the page scrolls with the window
14637
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14638
+ * tracking.
13996
14639
  *
13997
14640
  * @type {boolean}
13998
- * @default false
14641
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13999
14642
  */
14000
14643
  enableScrollableContainerLazyLoading?: boolean;
14001
14644
  /**
14002
- * The margin to be used for lazy loading.
14645
+ * How far outside the viewport a visualization starts loading, when
14646
+ * {@link lazyLoadingForFullHeight} is enabled.
14003
14647
  *
14004
14648
  * For example, if the margin is set to '10px',
14005
14649
  * the visualization will be loaded 10px before its top edge is visible in the
14006
14650
  * viewport.
14007
14651
  *
14008
- * The format is similar to CSS margin.
14652
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14653
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14654
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14655
+ * `auto`; an invalid value is logged and ignored.
14656
+ *
14657
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14658
+ * visualization ahead of the scroll position, so a chart has usually
14659
+ * finished loading by the time it scrolls into view. Use a smaller margin
14660
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14661
+ * only once it is actually visible.
14009
14662
  *
14010
14663
  * @type {string}
14011
14664
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14665
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14012
14666
  * @example
14013
14667
  * ```js
14014
14668
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14112,13 +14766,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14112
14766
  * inputChatPlaceholder: 'Ask a question...',
14113
14767
  * hideStarterPrompts: false,
14114
14768
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
14115
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14769
+ * // The options below require SDK: 1.51.0
14116
14770
  * loaderHeadline: 'Crunching the numbers...',
14117
14771
  * loaderTips: [
14118
14772
  * { label: 'Tip', text: 'try asking about revenue by region' },
14119
14773
  * { label: 'Tip', text: 'use natural language' },
14120
14774
  * ],
14121
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14122
14775
  * liveboardBrandName: 'Reports',
14123
14776
  * spotterBrandName: 'Analyst',
14124
14777
  * insightTileBrandName: 'Insight card',
@@ -14229,7 +14882,7 @@ export declare class LiveboardEmbed extends V1Embed {
14229
14882
  * @param {any} data The payload to send with the message
14230
14883
  * @returns A promise that resolves with the response from the embedded app
14231
14884
  */
14232
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14885
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14233
14886
  /**
14234
14887
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14235
14888
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl