@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.1

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 (212) 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/spotter-utils.d.ts +8 -1
  37. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  38. package/cjs/src/embed/spotter-utils.js +15 -1
  39. package/cjs/src/embed/spotter-utils.js.map +1 -1
  40. package/cjs/src/embed/spotter-utils.spec.js +68 -0
  41. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  43. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  45. package/cjs/src/embed/ts-embed.d.ts +16 -8
  46. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  47. package/cjs/src/embed/ts-embed.js +69 -32
  48. package/cjs/src/embed/ts-embed.js.map +1 -1
  49. package/cjs/src/embed/ts-embed.spec.js +537 -3
  50. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  51. package/cjs/src/index.d.ts +3 -3
  52. package/cjs/src/index.d.ts.map +1 -1
  53. package/cjs/src/index.js +3 -2
  54. package/cjs/src/index.js.map +1 -1
  55. package/cjs/src/react/all-types-export.d.ts +1 -1
  56. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  57. package/cjs/src/react/all-types-export.js +2 -1
  58. package/cjs/src/react/all-types-export.js.map +1 -1
  59. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  60. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  61. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  62. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  63. package/cjs/src/react/index.d.ts +66 -32
  64. package/cjs/src/react/index.d.ts.map +1 -1
  65. package/cjs/src/react/index.js +5 -3
  66. package/cjs/src/react/index.js.map +1 -1
  67. package/cjs/src/react/index.spec.js +101 -0
  68. package/cjs/src/react/index.spec.js.map +1 -1
  69. package/cjs/src/types.d.ts +330 -18
  70. package/cjs/src/types.d.ts.map +1 -1
  71. package/cjs/src/types.js +182 -12
  72. package/cjs/src/types.js.map +1 -1
  73. package/cjs/src/utils.spec.js +4 -0
  74. package/cjs/src/utils.spec.js.map +1 -1
  75. package/dist/{index-aBzH5ZwF.js → index-DxLfQxoT.js} +1 -1
  76. package/dist/src/config.d.ts +1 -0
  77. package/dist/src/config.d.ts.map +1 -1
  78. package/dist/src/css-variables.d.ts +27 -0
  79. package/dist/src/css-variables.d.ts.map +1 -1
  80. package/dist/src/embed/app.d.ts +43 -12
  81. package/dist/src/embed/app.d.ts.map +1 -1
  82. package/dist/src/embed/base.d.ts +1 -1
  83. package/dist/src/embed/conversation.d.ts +171 -1
  84. package/dist/src/embed/conversation.d.ts.map +1 -1
  85. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  86. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  87. package/dist/src/embed/liveboard.d.ts +40 -13
  88. package/dist/src/embed/liveboard.d.ts.map +1 -1
  89. package/dist/src/embed/spotter-utils.d.ts +8 -1
  90. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  91. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  92. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  93. package/dist/src/embed/ts-embed.d.ts +16 -8
  94. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  95. package/dist/src/index.d.ts +3 -3
  96. package/dist/src/index.d.ts.map +1 -1
  97. package/dist/src/react/all-types-export.d.ts +1 -1
  98. package/dist/src/react/all-types-export.d.ts.map +1 -1
  99. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  100. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  101. package/dist/src/react/index.d.ts +66 -32
  102. package/dist/src/react/index.d.ts.map +1 -1
  103. package/dist/src/types.d.ts +330 -18
  104. package/dist/src/types.d.ts.map +1 -1
  105. package/dist/tsembed-react.es.js +330 -61
  106. package/dist/tsembed-react.js +329 -60
  107. package/dist/tsembed.es.js +390 -123
  108. package/dist/tsembed.js +392 -125
  109. package/dist/visual-embed-sdk-react-full.d.ts +696 -89
  110. package/dist/visual-embed-sdk-react.d.ts +692 -88
  111. package/dist/visual-embed-sdk.d.ts +632 -59
  112. package/lib/package.json +1 -1
  113. package/lib/src/config.d.ts +1 -0
  114. package/lib/src/config.d.ts.map +1 -1
  115. package/lib/src/config.js +1 -0
  116. package/lib/src/config.js.map +1 -1
  117. package/lib/src/css-variables.d.ts +27 -0
  118. package/lib/src/css-variables.d.ts.map +1 -1
  119. package/lib/src/embed/app.d.ts +43 -12
  120. package/lib/src/embed/app.d.ts.map +1 -1
  121. package/lib/src/embed/app.js +30 -4
  122. package/lib/src/embed/app.js.map +1 -1
  123. package/lib/src/embed/app.spec.js +253 -1
  124. package/lib/src/embed/app.spec.js.map +1 -1
  125. package/lib/src/embed/base.d.ts +1 -1
  126. package/lib/src/embed/base.js +1 -1
  127. package/lib/src/embed/conversation.d.ts +171 -1
  128. package/lib/src/embed/conversation.d.ts.map +1 -1
  129. package/lib/src/embed/conversation.js +5 -3
  130. package/lib/src/embed/conversation.js.map +1 -1
  131. package/lib/src/embed/conversation.spec.js +125 -0
  132. package/lib/src/embed/conversation.spec.js.map +1 -1
  133. package/lib/src/embed/events.spec.js +3 -0
  134. package/lib/src/embed/events.spec.js.map +1 -1
  135. package/lib/src/embed/host-events.spec.js +36 -0
  136. package/lib/src/embed/host-events.spec.js.map +1 -1
  137. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  138. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  139. package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  140. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  141. package/lib/src/embed/liveboard.d.ts +40 -13
  142. package/lib/src/embed/liveboard.d.ts.map +1 -1
  143. package/lib/src/embed/liveboard.js +25 -4
  144. package/lib/src/embed/liveboard.js.map +1 -1
  145. package/lib/src/embed/liveboard.spec.js +349 -2
  146. package/lib/src/embed/liveboard.spec.js.map +1 -1
  147. package/lib/src/embed/spotter-utils.d.ts +8 -1
  148. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  149. package/lib/src/embed/spotter-utils.js +13 -0
  150. package/lib/src/embed/spotter-utils.js.map +1 -1
  151. package/lib/src/embed/spotter-utils.spec.js +69 -1
  152. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  153. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  154. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  155. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  156. package/lib/src/embed/ts-embed.d.ts +16 -8
  157. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  158. package/lib/src/embed/ts-embed.js +69 -32
  159. package/lib/src/embed/ts-embed.js.map +1 -1
  160. package/lib/src/embed/ts-embed.spec.js +537 -3
  161. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  162. package/lib/src/index.d.ts +3 -3
  163. package/lib/src/index.d.ts.map +1 -1
  164. package/lib/src/index.js +2 -2
  165. package/lib/src/index.js.map +1 -1
  166. package/lib/src/react/all-types-export.d.ts +1 -1
  167. package/lib/src/react/all-types-export.d.ts.map +1 -1
  168. package/lib/src/react/all-types-export.js +1 -1
  169. package/lib/src/react/all-types-export.js.map +1 -1
  170. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  171. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  172. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  173. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  174. package/lib/src/react/index.d.ts +66 -32
  175. package/lib/src/react/index.d.ts.map +1 -1
  176. package/lib/src/react/index.js +5 -3
  177. package/lib/src/react/index.js.map +1 -1
  178. package/lib/src/react/index.spec.js +102 -1
  179. package/lib/src/react/index.spec.js.map +1 -1
  180. package/lib/src/types.d.ts +330 -18
  181. package/lib/src/types.d.ts.map +1 -1
  182. package/lib/src/types.js +182 -12
  183. package/lib/src/types.js.map +1 -1
  184. package/lib/src/utils.spec.js +4 -0
  185. package/lib/src/utils.spec.js.map +1 -1
  186. package/lib/src/visual-embed-sdk.d.ts +632 -59
  187. package/package.json +1 -1
  188. package/src/config.ts +1 -0
  189. package/src/css-variables.ts +32 -0
  190. package/src/embed/app.spec.ts +335 -1
  191. package/src/embed/app.ts +71 -13
  192. package/src/embed/base.ts +1 -1
  193. package/src/embed/conversation.spec.ts +136 -0
  194. package/src/embed/conversation.ts +181 -3
  195. package/src/embed/events.spec.ts +4 -0
  196. package/src/embed/host-events.spec.ts +48 -0
  197. package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
  198. package/src/embed/hostEventClient/host-event-client.ts +2 -2
  199. package/src/embed/liveboard.spec.ts +457 -2
  200. package/src/embed/liveboard.ts +74 -15
  201. package/src/embed/spotter-utils.spec.ts +72 -0
  202. package/src/embed/spotter-utils.ts +21 -1
  203. package/src/embed/spotter-viz-utils.ts +9 -10
  204. package/src/embed/ts-embed.spec.ts +699 -3
  205. package/src/embed/ts-embed.ts +83 -37
  206. package/src/index.ts +43 -2
  207. package/src/react/all-types-export.parity.spec.ts +208 -0
  208. package/src/react/all-types-export.ts +22 -0
  209. package/src/react/index.spec.tsx +158 -0
  210. package/src/react/index.tsx +70 -33
  211. package/src/types.ts +329 -16
  212. package/src/utils.spec.ts +5 -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
  /**
@@ -11036,6 +11374,12 @@ declare class TsEmbed {
11036
11374
  protected getEmbedParamsObject(): Record<any, any>;
11037
11375
  protected getRootIframeSrc(): string;
11038
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;
11039
11383
  /**
11040
11384
  * Returns true if this embed instance is configured for pre-rendering.
11041
11385
  */
@@ -11074,12 +11418,14 @@ declare class TsEmbed {
11074
11418
  * fresh element; an element passed directly cannot be re-resolved.
11075
11419
  */
11076
11420
  private resolvePreRenderContainerTarget;
11421
+ private inheritPreRenderContainer;
11422
+ private getCustomPreRenderContainer;
11077
11423
  /**
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.
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.
11083
11429
  */
11084
11430
  private applyPreRenderContainerPositioning;
11085
11431
  /**
@@ -11227,7 +11573,7 @@ declare class TsEmbed {
11227
11573
  * ```
11228
11574
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11229
11575
  */
11230
- 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>>;
11231
11577
  /**
11232
11578
  * Triggers an event to the embedded app, skipping the UI flow.
11233
11579
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11633,6 +11979,87 @@ export interface SpotterShareConversationConfig {
11633
11979
  */
11634
11980
  spotterSharedConversationExitLabel?: string;
11635
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
+ }
11636
12063
  /**
11637
12064
  * Configuration for customizing Spotter chat UI branding.
11638
12065
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -11673,11 +12100,83 @@ export interface SpotterChatViewConfig {
11673
12100
  /**
11674
12101
  * Enables starter prompts in the Spotter chat interface.
11675
12102
  *
11676
- * 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`
11677
12107
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
11678
12108
  * @default false
11679
12109
  */
11680
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;
11681
12180
  }
11682
12181
  /**
11683
12182
  * The configuration for the embedded spotterEmbed options.
@@ -11708,6 +12207,22 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11708
12207
  * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11709
12208
  */
11710
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;
11711
12226
  /**
11712
12227
  * Ability to pass a starting search query to the conversation.
11713
12228
  */
@@ -12029,6 +12544,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
12029
12544
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12030
12545
  spotterShareConversationConfig?: SpotterShareConversationConfig;
12031
12546
  visualOverridesParams?: VisualizationOverrides | null;
12547
+ starterPrompts?: StarterPromptsConfig;
12032
12548
  };
12033
12549
  }
12034
12550
  /**
@@ -12118,13 +12634,12 @@ export interface SpotterVizStarterPrompt {
12118
12634
  * customStarterPrompts: [
12119
12635
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
12120
12636
  * ],
12121
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12637
+ * // The options below require SDK: 1.51.0
12122
12638
  * loaderHeadline: 'Crunching the numbers...',
12123
12639
  * loaderTips: [
12124
12640
  * { label: 'Tip', text: 'try asking about revenue by region' },
12125
12641
  * { label: 'Tip', text: 'use natural language' },
12126
12642
  * ],
12127
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12128
12643
  * liveboardBrandName: 'Reports',
12129
12644
  * spotterBrandName: 'Analyst',
12130
12645
  * insightTileBrandName: 'Insight card',
@@ -12177,47 +12692,47 @@ export interface SpotterVizConfig {
12177
12692
  /**
12178
12693
  * Custom headline text shown in the SpotterViz loading state.
12179
12694
  * Replaces the default loading headline.
12180
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12695
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12181
12696
  */
12182
12697
  loaderHeadline?: string;
12183
12698
  /**
12184
12699
  * Custom tips shown in the SpotterViz loading state.
12185
12700
  * Replaces the default loading tips with the provided list.
12186
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12701
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12187
12702
  */
12188
12703
  loaderTips?: SpotterVizLoaderTip[];
12189
12704
  /**
12190
12705
  * Custom term used to replace "Liveboard" in the agent's responses.
12191
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12706
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12192
12707
  * @default ''
12193
12708
  */
12194
12709
  liveboardBrandName?: string;
12195
12710
  /**
12196
12711
  * Custom term used to replace "Spotter" in the agent's responses.
12197
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12712
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12198
12713
  * @default ''
12199
12714
  */
12200
12715
  spotterBrandName?: string;
12201
12716
  /**
12202
12717
  * 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
12718
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12204
12719
  * @default ''
12205
12720
  */
12206
12721
  insightTileBrandName?: string;
12207
12722
  /**
12208
12723
  * Custom term used to replace "View plan" in the insight tile menu.
12209
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12724
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12210
12725
  */
12211
12726
  insightTileViewPlanLabel?: string;
12212
12727
  /**
12213
12728
  * Custom loader text shown on the insight tile.
12214
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12729
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12215
12730
  */
12216
12731
  insightTileLoaderText?: string;
12217
12732
  }
12218
12733
  /**
12219
12734
  * A single tip shown in the SpotterViz loading state.
12220
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12735
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12221
12736
  * @group Embed components
12222
12737
  */
12223
12738
  export interface SpotterVizLoaderTip {
@@ -12265,7 +12780,11 @@ export declare enum Page {
12265
12780
  /**
12266
12781
  * Collections listing page
12267
12782
  */
12268
- Collections = "collections"
12783
+ Collections = "collections",
12784
+ /**
12785
+ * Liveboard schedules listing page
12786
+ */
12787
+ LiveboardSchedules = "liveboard-schedules"
12269
12788
  }
12270
12789
  /**
12271
12790
  * Define the initial state of column custom group accordions
@@ -12663,6 +13182,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12663
13182
  * `false` fetches visualizations incrementally as
12664
13183
  * users scroll the page to view the charts and tables.
12665
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
+ *
12666
13190
  * Supported embed types: `AppEmbed`
12667
13191
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12668
13192
  * @example
@@ -12869,11 +13393,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12869
13393
  */
12870
13394
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12871
13395
  /**
12872
- * 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.
12873
13403
  *
12874
13404
  * @type {boolean}
12875
13405
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12876
- * @default false
13406
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12877
13407
  * @example
12878
13408
  * ```js
12879
13409
  * const embed = new AppEmbed('#embed-container', {
@@ -12885,27 +13415,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12885
13415
  */
12886
13416
  lazyLoadingForFullHeight?: boolean;
12887
13417
  /**
12888
- * 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.
12889
13421
  *
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.
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.
12892
13427
  *
12893
13428
  * @type {boolean}
12894
- * @default false
13429
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12895
13430
  * @hidden
12896
13431
  */
12897
13432
  enableScrollableContainerLazyLoading?: boolean;
12898
13433
  /**
12899
- * The margin to be used for lazy loading.
13434
+ * How far outside the viewport a visualization starts loading, when
13435
+ * {@link lazyLoadingForFullHeight} is enabled.
12900
13436
  *
12901
13437
  * For example, if the margin is set to '10px',
12902
13438
  * the visualization will be loaded 10px before its top edge is visible in the
12903
13439
  * viewport.
12904
13440
  *
12905
- * 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.
12906
13451
  *
12907
13452
  * @type {string}
12908
13453
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13454
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12909
13455
  * @example
12910
13456
  * ```js
12911
13457
  * const embed = new AppEmbed('#embed-container', {
@@ -13080,13 +13626,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13080
13626
  * inputChatPlaceholder: 'Ask a question...',
13081
13627
  * hideStarterPrompts: false,
13082
13628
  * 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
13629
+ * // The options below require SDK: 1.51.0
13084
13630
  * loaderHeadline: 'Crunching the numbers...',
13085
13631
  * loaderTips: [
13086
13632
  * { label: 'Tip', text: 'try asking about revenue by region' },
13087
13633
  * { label: 'Tip', text: 'use natural language' },
13088
13634
  * ],
13089
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13090
13635
  * liveboardBrandName: 'Reports',
13091
13636
  * spotterBrandName: 'Analyst',
13092
13637
  * insightTileBrandName: 'Insight card',
@@ -13182,6 +13727,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13182
13727
  spotterSidebarConfig?: SpotterSidebarViewConfig;
13183
13728
  spotterVizConfig?: SpotterVizConfig;
13184
13729
  spotterShareConversationConfig?: SpotterShareConversationConfig;
13730
+ starterPrompts?: StarterPromptsConfig;
13185
13731
  };
13186
13732
  }
13187
13733
  /**
@@ -13464,7 +14010,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
13464
14010
  /**
13465
14011
  * Initializes the Visual Embed SDK globally and perform
13466
14012
  * 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
14013
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
13468
14014
  * to actually embed. That is handled internally.
13469
14015
  * @param embedConfig The configuration object containing ThoughtSpot host,
13470
14016
  * authentication mechanism and so on.
@@ -13563,6 +14109,7 @@ export declare const reloadIframe: (iFrame: HTMLIFrameElement) => void;
13563
14109
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
13564
14110
  embedParams?: {
13565
14111
  spotterVizConfig?: SpotterVizConfig;
14112
+ starterPrompts?: StarterPromptsConfig;
13566
14113
  };
13567
14114
  }
13568
14115
  /**
@@ -13581,6 +14128,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13581
14128
  * Setting `fullHeight` to `false` fetches visualizations
13582
14129
  * incrementally as users scroll the page to view the charts and tables.
13583
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
+ *
13584
14136
  *
13585
14137
  * Supported embed types: `LiveboardEmbed`
13586
14138
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -13973,11 +14525,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13973
14525
  */
13974
14526
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13975
14527
  /**
13976
- * 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.
13977
14535
  *
13978
14536
  * @type {boolean}
13979
14537
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13980
- * @default false
14538
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13981
14539
  * @example
13982
14540
  * ```js
13983
14541
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13989,26 +14547,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13989
14547
  */
13990
14548
  lazyLoadingForFullHeight?: boolean;
13991
14549
  /**
13992
- * 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.
13993
14553
  *
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.
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.
13996
14559
  *
13997
14560
  * @type {boolean}
13998
- * @default false
14561
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13999
14562
  */
14000
14563
  enableScrollableContainerLazyLoading?: boolean;
14001
14564
  /**
14002
- * The margin to be used for lazy loading.
14565
+ * How far outside the viewport a visualization starts loading, when
14566
+ * {@link lazyLoadingForFullHeight} is enabled.
14003
14567
  *
14004
14568
  * For example, if the margin is set to '10px',
14005
14569
  * the visualization will be loaded 10px before its top edge is visible in the
14006
14570
  * viewport.
14007
14571
  *
14008
- * 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.
14009
14582
  *
14010
14583
  * @type {string}
14011
14584
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14585
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14012
14586
  * @example
14013
14587
  * ```js
14014
14588
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14112,13 +14686,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14112
14686
  * inputChatPlaceholder: 'Ask a question...',
14113
14687
  * hideStarterPrompts: false,
14114
14688
  * 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
14689
+ * // The options below require SDK: 1.51.0
14116
14690
  * loaderHeadline: 'Crunching the numbers...',
14117
14691
  * loaderTips: [
14118
14692
  * { label: 'Tip', text: 'try asking about revenue by region' },
14119
14693
  * { label: 'Tip', text: 'use natural language' },
14120
14694
  * ],
14121
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14122
14695
  * liveboardBrandName: 'Reports',
14123
14696
  * spotterBrandName: 'Analyst',
14124
14697
  * insightTileBrandName: 'Insight card',
@@ -14229,7 +14802,7 @@ export declare class LiveboardEmbed extends V1Embed {
14229
14802
  * @param {any} data The payload to send with the message
14230
14803
  * @returns A promise that resolves with the response from the embedded app
14231
14804
  */
14232
- 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>>;
14233
14806
  /**
14234
14807
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14235
14808
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl