@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
@@ -441,6 +441,13 @@ export interface CustomCssVariables {
441
441
  * Font color of the header in the Liveboard.
442
442
  */
443
443
  "--ts-var-liveboard-header-font-color"?: string;
444
+ /**
445
+ * Left and right margin of the header and the tab/filter section of an
446
+ * embedded Liveboard. Use alongside the `liveboardGutter` view config to
447
+ * keep the header aligned with a custom tile-grid gutter.
448
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
449
+ */
450
+ "--ts-var-liveboard-header-horizontal-margin"?: string;
444
451
  /**
445
452
  * Border color of the tiles in the Liveboard.
446
453
  */
@@ -457,6 +464,18 @@ export interface CustomCssVariables {
457
464
  * Background color of the insight tiles in the Liveboard.
458
465
  */
459
466
  "--ts-var-liveboard-insight-tile-background"?: string;
467
+ /**
468
+ * Icon color of the insight tiles in the Liveboard.
469
+ */
470
+ "--ts-var-liveboard-insight-tile-icon-color"?: string;
471
+ /**
472
+ * Font color of the success text in the insight tiles in the Liveboard.
473
+ */
474
+ "--ts-var-liveboard-insight-tile-success-color"?: string;
475
+ /**
476
+ * Font color of the failure text in the insight tiles in the Liveboard.
477
+ */
478
+ "--ts-var-liveboard-insight-tile-failure-color"?: string;
460
479
  /**
461
480
  * Border radius of the tiles in the Liveboard.
462
481
  */
@@ -677,6 +696,14 @@ export interface CustomCssVariables {
677
696
  * Font color of the parameter chips in the Liveboard on active.
678
697
  */
679
698
  "--ts-var-parameter-chip-active-text-color"?: string;
699
+ /**
700
+ * Color of the dot indicator shown on a filter or parameter chip in the
701
+ * centralized filter modal on a Liveboard. The dot appears when the
702
+ * filter or parameter value has been modified but the changes are not
703
+ * yet applied to the Liveboard.
704
+ * @version SDK: 1.52.0 | ThoughtSpot: 26.10.0.cl
705
+ */
706
+ "--ts-var-unsaved-filter-indicator-color"?: string;
680
707
  /**
681
708
  * Background color of the action button in the Liveboard header.
682
709
  */
@@ -2071,6 +2098,85 @@ export interface FrameParams {
2071
2098
  */
2072
2099
  [key: string]: string | number | boolean | undefined;
2073
2100
  }
2101
+ /**
2102
+ * Configuration for the pre-render wrapper element.
2103
+ * All properties here mirror the top-level preRender properties on
2104
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2105
+ * so existing top-level usage continues to work without any changes.
2106
+ *
2107
+ * @version SDK: 1.52.0
2108
+ * @example
2109
+ * ```js
2110
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2111
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2112
+ * preRenderConfig: {
2113
+ * preRenderId: 'my-liveboard',
2114
+ * preRenderContainer: '#my-scroll-container',
2115
+ * doNotTrackPreRenderSize: false,
2116
+ * zIndex: -10,
2117
+ * },
2118
+ * });
2119
+ * embed.preRender();
2120
+ * embed.showPreRender();
2121
+ * ```
2122
+ */
2123
+ export interface PreRenderConfig {
2124
+ /**
2125
+ * Pre-render ID to identify the pre-render instance.
2126
+ * Takes precedence over the top-level `preRenderId` when both are set.
2127
+ *
2128
+ * Matches the embed warmed by `preRender()` to the one revealed by
2129
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2130
+ * the same view, and give unrelated views their own or they will collide.
2131
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2132
+ * and do nothing without it.
2133
+ *
2134
+ * @default undefined
2135
+ */
2136
+ preRenderId?: string;
2137
+ /**
2138
+ * The DOM element or CSS selector string specifying the container into
2139
+ * which the pre-rendered wrapper is inserted.
2140
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2141
+ *
2142
+ * Set this when your app scrolls inside an element rather than the page (for
2143
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2144
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2145
+ * selector string — it is re-resolved on reposition and so survives a remount,
2146
+ * while a detached element reference cannot be recovered. An invalid selector is
2147
+ * logged and falls back to `document.body`.
2148
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2149
+ *
2150
+ * @default document.body
2151
+ */
2152
+ preRenderContainer?: string | HTMLElement;
2153
+ /**
2154
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2155
+ * placeholder element.
2156
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2157
+ *
2158
+ * Set this only when you size the embed yourself; you then own alignment and must
2159
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2160
+ * already pauses while hidden, so this is not needed to avoid work then.
2161
+ *
2162
+ * @default false
2163
+ */
2164
+ doNotTrackPreRenderSize?: boolean;
2165
+ /**
2166
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2167
+ * Override this when the host page's stacking context does not reach `-1000`
2168
+ * and the hidden wrapper still appears above other elements.
2169
+ *
2170
+ * A page that creates its own stacking context — a positioned app shell, a
2171
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2172
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2173
+ * see a faint panel behind your content, or clicks landing on nothing in the
2174
+ * region where the embed will eventually appear.
2175
+ *
2176
+ * @default -1000
2177
+ */
2178
+ zIndex?: number;
2179
+ }
2074
2180
  /**
2075
2181
  * The common configuration object for an embedded view.
2076
2182
  */
@@ -2155,7 +2261,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2155
2261
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2156
2262
  * const embed = new <EmbedComponent>('#tsEmbed', {
2157
2263
  * ... // other embed view config
2158
- * hiddenActions: [Action.Download, Action.Export],
2264
+ * hiddenActions: [Action.Download, Action.ExportTML],
2159
2265
  * });
2160
2266
  * ```
2161
2267
  * @important
@@ -2177,7 +2283,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2177
2283
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2178
2284
  * const embed = new <EmbedComponent>('#tsEmbed', {
2179
2285
  * ... // other embed view config
2180
- * visibleActions: [Action.Download, Action.Export],
2286
+ * visibleActions: [Action.Download, Action.ExportTML],
2181
2287
  * });
2182
2288
  * ```
2183
2289
  */
@@ -2262,6 +2368,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2262
2368
  *
2263
2369
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2264
2370
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2371
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2265
2372
  * @example
2266
2373
  * ```js
2267
2374
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2281,6 +2388,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2281
2388
  * @type {boolean}
2282
2389
  * @default false
2283
2390
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2391
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2284
2392
  * @example
2285
2393
  * ```js
2286
2394
  * // Disable tracking PreRender size in the configuration
@@ -2322,6 +2430,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2322
2430
  *
2323
2431
  * @type {string | HTMLElement}
2324
2432
  * @version SDK: 1.49.2 | ThoughtSpot: *
2433
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2325
2434
  * @example
2326
2435
  * ```js
2327
2436
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2332,6 +2441,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2332
2441
  * ```
2333
2442
  */
2334
2443
  preRenderContainer?: string | HTMLElement;
2444
+ /**
2445
+ * Configuration for the pre-render wrapper element.
2446
+ * All properties here mirror the top-level preRender properties on
2447
+ * `BaseViewConfig` and take precedence over them when both are set,
2448
+ * so existing top-level usage continues to work without any changes.
2449
+ * See {@link PreRenderConfig} for available options.
2450
+ *
2451
+ * @version SDK: 1.52.0
2452
+ * @example
2453
+ * ```js
2454
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2455
+ * preRenderConfig: {
2456
+ * preRenderId: 'my-liveboard',
2457
+ * zIndex: -10,
2458
+ * },
2459
+ * });
2460
+ * embed.preRender();
2461
+ * embed.showPreRender();
2462
+ * ```
2463
+ */
2464
+ preRenderConfig?: PreRenderConfig;
2335
2465
  /**
2336
2466
  * Enable the V2 shell. This can provide performance benefits
2337
2467
  * due to a lighter-weight shell.
@@ -2755,7 +2885,7 @@ export interface HomePageConfig {
2755
2885
  *
2756
2886
  * const embed = new AppEmbed('#tsEmbed', {
2757
2887
  * ... //other embed view config
2758
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2888
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2759
2889
  * })
2760
2890
  * ```
2761
2891
  */
@@ -3068,6 +3198,25 @@ export interface LiveboardAppEmbedViewConfig {
3068
3198
  * ```
3069
3199
  */
3070
3200
  enable2ColumnLayout?: boolean;
3201
+ /**
3202
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3203
+ * every width, instead of switching to the two-column or single-column
3204
+ * layout as the container narrows.
3205
+ *
3206
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3207
+ * @type {boolean}
3208
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3209
+ * @default false
3210
+ * @example
3211
+ * ```js
3212
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3213
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3214
+ * ... // other embed view config
3215
+ * isLiveboardAlwaysOn12ColLayout: true,
3216
+ * })
3217
+ * ```
3218
+ */
3219
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3071
3220
  /**
3072
3221
  * This flag can be used to enable the compact header in Liveboard
3073
3222
  *
@@ -3172,6 +3321,26 @@ export interface LiveboardAppEmbedViewConfig {
3172
3321
  * ```
3173
3322
  */
3174
3323
  coverAndFilterOptionInPDF?: boolean;
3324
+ /**
3325
+ * Sets the gutter space (in pixels) between the visualization tiles of
3326
+ * an embedded Liveboard grid layout and its outer layout padding.
3327
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3328
+ * and removes the outer padding. When omitted, the gutter saved in the
3329
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3330
+ *
3331
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3332
+ * @type {number}
3333
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3334
+ * @example
3335
+ * ```js
3336
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3337
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3338
+ * ... // other embed view config
3339
+ * liveboardGutter: 8,
3340
+ * })
3341
+ * ```
3342
+ */
3343
+ liveboardGutter?: number;
3175
3344
  /**
3176
3345
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3177
3346
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3602,7 +3771,7 @@ export declare enum EmbedEvent {
3602
3771
  * @returns nonFilteredColumns - The columns that were not filtered
3603
3772
  * @example
3604
3773
  * ```js
3605
- * searchEmbed.on(EmbedEvent.DrillDown, {
3774
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3606
3775
  * points: {
3607
3776
  * clickedPoint,
3608
3777
  * selectedPoints: selectedPoint
@@ -3663,7 +3832,7 @@ export declare enum EmbedEvent {
3663
3832
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3664
3833
  * @example
3665
3834
  * ```js
3666
- * appEmbed.on(EmbedEvent.customAction, payload => {
3835
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3667
3836
  * const data = payload.data;
3668
3837
  * if (data.id === 'insert Custom Action ID here') {
3669
3838
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3929,8 +4098,8 @@ export declare enum EmbedEvent {
3929
4098
  *
3930
4099
  * **Note**: This event is deprecated in v1.21.0.
3931
4100
  * To fire an event when a download action is initiated on a chart or table,
3932
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3933
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4101
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4102
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3934
4103
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3935
4104
  * @example
3936
4105
  * ```js
@@ -3980,10 +4149,10 @@ export declare enum EmbedEvent {
3980
4149
  * @example
3981
4150
  * ```js
3982
4151
  * //emit when action starts
3983
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4152
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3984
4153
  * console.log('download CSV', payload)}, {start: true })
3985
4154
  * //emit when action ends
3986
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4155
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3987
4156
  * console.log('download CSV', payload)})
3988
4157
  * ```
3989
4158
  */
@@ -5439,6 +5608,7 @@ export declare enum HostEvent {
5439
5608
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5440
5609
  * console.log("iFrameURL", url);
5441
5610
  * ```
5611
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5442
5612
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5443
5613
  */
5444
5614
  GetIframeUrl = "GetIframeUrl",
@@ -5605,6 +5775,41 @@ export declare enum HostEvent {
5605
5775
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5606
5776
  */
5607
5777
  OpenFilter = "openFilter",
5778
+ /**
5779
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5780
+ * *Add filter* button in the Liveboard edit header opens, so the host
5781
+ * app can start the add-filter flow from its own UI.
5782
+ *
5783
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5784
+ * Hiding the *Add filter* button with `hiddenActions:
5785
+ * [Action.AddFilter]` does not block this event, but disabling it with
5786
+ * `disabledActions` does.
5787
+ *
5788
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5789
+ * existing filter, this event starts the creation of a new filter.
5790
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5791
+ * @example
5792
+ * ```js
5793
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5794
+ * ```
5795
+ */
5796
+ OpenAddFilterModal = "openAddFilterModal",
5797
+ /**
5798
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5799
+ * *Add parameter* button in the Liveboard edit header opens.
5800
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5801
+ *
5802
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5803
+ * Hiding the *Add parameter* button with `hiddenActions:
5804
+ * [Action.AddParameter]` does not block this event, but disabling it
5805
+ * with `disabledActions` does.
5806
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5807
+ * @example
5808
+ * ```js
5809
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5810
+ * ```
5811
+ */
5812
+ OpenAddParameterModal = "openAddParameterModal",
5608
5813
  /**
5609
5814
  * Open the parameter panel for a particular parameter on a Liveboard.
5610
5815
  * Mirrors {@link HostEvent.OpenFilter} for parameters.
@@ -5686,6 +5891,10 @@ export declare enum HostEvent {
5686
5891
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5687
5892
  * data=>console.log(data))
5688
5893
  * ```
5894
+ * @returns data - Object with a `v2Content` string: the export request
5895
+ * payload for the current Liveboard.
5896
+ * @returns type - The passthrough event name,
5897
+ * `getExportRequestForCurrentPinboard`.
5689
5898
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5690
5899
  */
5691
5900
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5788,6 +5997,9 @@ export declare enum HostEvent {
5788
5997
  * }, ContextType.Spotter);
5789
5998
  * ```
5790
5999
  *
6000
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
6001
+ * @returns tabId - GUID of the tab within that Liveboard.
6002
+ * @returns vizId - GUID of the newly created visualization.
5791
6003
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5792
6004
  */
5793
6005
  Pin = "pin",
@@ -5826,13 +6038,13 @@ export declare enum HostEvent {
5826
6038
  * Trigger the **Manage schedule** action on an embedded Liveboard
5827
6039
  * @example
5828
6040
  * ```js
5829
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6041
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5830
6042
  * ```
5831
6043
  * @example
5832
6044
  * ```js
5833
6045
  * // Manage schedules from liveboard context
5834
6046
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5835
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6047
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5836
6048
  * ```
5837
6049
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5838
6050
  */
@@ -6277,6 +6489,7 @@ export declare enum HostEvent {
6277
6489
  * console.log(tml.answer);
6278
6490
  * });
6279
6491
  * ```
6492
+ * @returns The TML representation of the current Answer, as an object.
6280
6493
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
6281
6494
  * @important
6282
6495
  */
@@ -6720,6 +6933,8 @@ export declare enum HostEvent {
6720
6933
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6721
6934
  * console.log('filters', data);
6722
6935
  * ```
6936
+ * @returns liveboardFilters - Filters applied on the Liveboard.
6937
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6723
6938
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6724
6939
  */
6725
6940
  GetFilters = "getFilters",
@@ -6869,6 +7084,9 @@ export declare enum HostEvent {
6869
7084
  * console.log('tabs', tabDetails);
6870
7085
  * });
6871
7086
  * ```
7087
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7088
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7089
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6872
7090
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6873
7091
  */
6874
7092
  GetTabs = "getTabs",
@@ -6891,6 +7109,9 @@ export declare enum HostEvent {
6891
7109
  * console.log('groups', groupDetails);
6892
7110
  * });
6893
7111
  * ```
7112
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7113
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7114
+ * @returns Groups - Group details, each with at least `id` and `name`.
6894
7115
  * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6895
7116
  */
6896
7117
  GetGroups = "getGroups",
@@ -6965,6 +7186,9 @@ export declare enum HostEvent {
6965
7186
  * // Alternative direct usage (not recommended)
6966
7187
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6967
7188
  * ```
7189
+ * @returns session - Session identifier for the Answer, for use with the
7190
+ * `AnswerService`.
7191
+ * @returns embedAnswerData - Data backing the Answer, when available.
6968
7192
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6969
7193
  */
6970
7194
  GetAnswerSession = "getAnswerSession",
@@ -7098,12 +7322,16 @@ export declare enum HostEvent {
7098
7322
  * console.log('parameters', parameters);
7099
7323
  * });
7100
7324
  * ```
7325
+ * @returns parameters - Parameters currently applied on the Liveboard.
7101
7326
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
7102
7327
  */
7103
7328
  GetParameters = "GetParameters",
7104
7329
  /**
7105
7330
  * Triggers an event to update a personalized view of a Liveboard.
7106
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7331
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7332
+ * which additionally accepts a `viewName`, resets to the original view when
7333
+ * called with an empty payload, and reports an error when a named view
7334
+ * cannot be found.
7107
7335
  * ```js
7108
7336
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7109
7337
  * ```
@@ -7121,10 +7349,15 @@ export declare enum HostEvent {
7121
7349
  UpdatePersonalisedView = "UpdatePersonalisedView",
7122
7350
  /**
7123
7351
  * Triggers an event to update a personalized view of a Liveboard.
7352
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7353
+ * which additionally accepts a `viewName`, resets to the original view when
7354
+ * called with an empty payload, and reports an error when a named view
7355
+ * cannot be found.
7124
7356
  * ```js
7125
7357
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7126
7358
  * ```
7127
7359
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7360
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7128
7361
  */
7129
7362
  UpdatePersonalizedView = "UpdatePersonalisedView",
7130
7363
  /**
@@ -7227,6 +7460,10 @@ export declare enum HostEvent {
7227
7460
  * description: "Generated from Spotter"
7228
7461
  * }, ContextType.Spotter);
7229
7462
  * ```
7463
+ * @returns answerId - GUID of the saved Answer.
7464
+ * @returns saveResponse - Raw response from the save operation.
7465
+ * @returns shareResponse - Raw response from the share operation, when the
7466
+ * Answer was also made discoverable.
7230
7467
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
7231
7468
  */
7232
7469
  SaveAnswer = "saveAnswer",
@@ -7592,9 +7829,10 @@ export type SpotterFileUploadFileTypes = {
7592
7829
  * ThoughtSpot application pages include actions and menu commands
7593
7830
  * for various user-initiated operations. These actions are represented
7594
7831
  * as enumeration members in the SDK. To control actions in the embedded view:
7595
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7596
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7597
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7832
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7833
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7834
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7835
+ * are shown; all others are hidden.
7598
7836
  *
7599
7837
  * Use disabledActions to disable (gray out) an action.
7600
7838
  * Use hiddenActions to hide (fully remove) an action.
@@ -7647,6 +7885,17 @@ export declare enum Action {
7647
7885
  * ```
7648
7886
  */
7649
7887
  SaveAsView = "saveAsView",
7888
+ /**
7889
+ * The **EditInputTable** action on a Liveboard
7890
+ * page. Allows users to edit an input table used in an Answer directly from
7891
+ * a Liveboard.
7892
+ * @example
7893
+ * ```js
7894
+ * disabledActions: [Action.EditInputTable]
7895
+ * ```
7896
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7897
+ */
7898
+ EditInputTable = "editInputTable",
7650
7899
  /**
7651
7900
  * The **Make a copy** action on a Liveboard or Answer
7652
7901
  * page. Creates a copy of the Liveboard.
@@ -8962,6 +9211,10 @@ export declare enum Action {
8962
9211
  * The **Add to Coaching** feature allows adding reference questions and
8963
9212
  * business terms to improve Spotter’s responses. This feature is generally available
8964
9213
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9214
+ *
9215
+ * This action governs both the answer-card **Add to memory** CTA and its
9216
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9217
+ * (they are mutually exclusive).
8965
9218
  * @example
8966
9219
  * ```js
8967
9220
  * hiddenAction: [Action.InConversationTraining]
@@ -9342,6 +9595,56 @@ export declare enum Action {
9342
9595
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
9343
9596
  */
9344
9597
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9598
+ /**
9599
+ * The **Basic Search** starter prompt pill.
9600
+ *
9601
+ * Starter prompt pills are the row of category buttons shown above the
9602
+ * Spotter chat input before a conversation starts. They give a new user
9603
+ * ready-made questions to click instead of typing one from scratch, and
9604
+ * disappear once the conversation begins. There are three, one per action
9605
+ * below.
9606
+ *
9607
+ * Clicking this pill opens a card of suggested simple questions; picking one
9608
+ * submits it to Spotter right away. Visible by default, and hidden along
9609
+ * with the other pills when the surface itself is off (see
9610
+ * {@link SpotterChatViewConfig.starterPrompts}).
9611
+ * @example
9612
+ * ```js
9613
+ * hiddenActions: [Action.QuickSearchPill]
9614
+ * ```
9615
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9616
+ */
9617
+ QuickSearchPill = "quickSearchPill",
9618
+ /**
9619
+ * The **Deep Analysis** starter prompt pill, next to
9620
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9621
+ *
9622
+ * Clicking it opens a card of suggested investigative questions ("why did
9623
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9624
+ * rather than submitting immediately, so the user can edit it first.
9625
+ * Visible by default.
9626
+ * @example
9627
+ * ```js
9628
+ * hiddenActions: [Action.DeepAnalysisPill]
9629
+ * ```
9630
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9631
+ */
9632
+ DeepAnalysisPill = "deepAnalysisPill",
9633
+ /**
9634
+ * The **Data Literacy** starter prompt pill, next to
9635
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9636
+ *
9637
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9638
+ * that describes the data the model can answer over, helping a user who does
9639
+ * not yet know what is in the data source. The prompt text always comes from
9640
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9641
+ * @example
9642
+ * ```js
9643
+ * hiddenActions: [Action.DataLiteracyPill]
9644
+ * ```
9645
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9646
+ */
9647
+ DataLiteracyPill = "dataLiteracyPill",
9345
9648
  /**
9346
9649
  * The **Include current period** checkbox for date filters.
9347
9650
  * Controls the visibility and availability of the option to include
@@ -9489,7 +9792,39 @@ export declare enum Action {
9489
9792
  * disabledActions: [Action.SpotterAnalystSidebar]
9490
9793
  * ```
9491
9794
  */
9492
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9795
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9796
+ /**
9797
+ * Controls visibility and disable state of the analyst list
9798
+ * ("Show all") in the Spotter Analyst interface.
9799
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9800
+ * @example
9801
+ * ```js
9802
+ * hiddenActions: [Action.SpotterAnalystList]
9803
+ * disabledActions: [Action.SpotterAnalystList]
9804
+ * ```
9805
+ */
9806
+ SpotterAnalystList = "spotterAnalystList",
9807
+ /**
9808
+ * Controls visibility and disable state of the default Spotter analyst
9809
+ * entry in the Spotter Analyst interface.
9810
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9811
+ * @example
9812
+ * ```js
9813
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9814
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9815
+ * ```
9816
+ */
9817
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9818
+ /**
9819
+ * The **Spotter** button in the Liveboard header.
9820
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9821
+ * @example
9822
+ * ```js
9823
+ * hiddenActions: [Action.SpotterOnLiveboard]
9824
+ * disabledActions: [Action.SpotterOnLiveboard]
9825
+ * ```
9826
+ */
9827
+ SpotterOnLiveboard = "spotterOnLiveboard"
9493
9828
  }
9494
9829
  declare enum ContextMenuTriggerOptions {
9495
9830
  LEFT_CLICK = "left-click",
@@ -9864,7 +10199,7 @@ export type ApiInterceptFlags = {
9864
10199
  * const embed = new LiveboardEmbed('#embed', {
9865
10200
  * ...viewConfig,
9866
10201
  * enableApiIntercept: true,
9867
- * interceptUrls: [InterceptedApiType.DATA],
10202
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9868
10203
  * })
9869
10204
  * ```
9870
10205
  *
@@ -10746,7 +11081,7 @@ declare class HostEventClient {
10746
11081
  * @param payload - Optional payload for the event
10747
11082
  * @param context - Optional context (e.g. vizId) for scoped operations
10748
11083
  */
10749
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11084
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10750
11085
  }
10751
11086
  declare class TsEmbed {
10752
11087
  /**
@@ -10951,6 +11286,12 @@ declare class TsEmbed {
10951
11286
  protected getEmbedParamsObject(): Record<any, any>;
10952
11287
  protected getRootIframeSrc(): string;
10953
11288
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11289
+ /**
11290
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11291
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11292
+ * backward compatibility.
11293
+ */
11294
+ protected getPreRenderConfig(): PreRenderConfig;
10954
11295
  /**
10955
11296
  * Returns true if this embed instance is configured for pre-rendering.
10956
11297
  */
@@ -10989,12 +11330,14 @@ declare class TsEmbed {
10989
11330
  * fresh element; an element passed directly cannot be re-resolved.
10990
11331
  */
10991
11332
  private resolvePreRenderContainerTarget;
11333
+ private inheritPreRenderContainer;
11334
+ private getCustomPreRenderContainer;
10992
11335
  /**
10993
- * Makes the container a positioning context for the absolutely positioned
10994
- * wrapper, stashing the original inline `position` on the element (once) so
10995
- * destroy() can restore it exactly, leaving no trace. Recording it on the
10996
- * element rather than per-instance lets the override be reverted even when
10997
- * embeds share the same container.
11336
+ * Makes the resolved container a positioning context for the absolutely
11337
+ * positioned wrapper, stashing the original inline `position` on the element
11338
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11339
+ * on the element rather than per-instance lets the override be reverted even
11340
+ * when embeds share the same container.
10998
11341
  */
10999
11342
  private applyPreRenderContainerPositioning;
11000
11343
  /**
@@ -11142,7 +11485,7 @@ declare class TsEmbed {
11142
11485
  * ```
11143
11486
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11144
11487
  */
11145
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11488
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11146
11489
  /**
11147
11490
  * Triggers an event to the embedded app, skipping the UI flow.
11148
11491
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11998,6 +12341,87 @@ export interface SpotterShareConversationConfig {
11998
12341
  */
11999
12342
  spotterSharedConversationExitLabel?: string;
12000
12343
  }
12344
+ /**
12345
+ * A single starter prompt question shown under a category pill.
12346
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12347
+ * @group Embed components
12348
+ */
12349
+ export interface StarterPromptQuestion {
12350
+ /**
12351
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12352
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12353
+ */
12354
+ label?: string;
12355
+ /**
12356
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12357
+ * 300 characters.
12358
+ */
12359
+ prompt: string;
12360
+ }
12361
+ /**
12362
+ * Configuration for a starter prompt category with questions
12363
+ * (`quick` and `research`).
12364
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12365
+ * @group Embed components
12366
+ */
12367
+ export interface StarterPromptCategory {
12368
+ /**
12369
+ * Overrides the default category pill label. ThoughtSpot truncates it
12370
+ * beyond 30 characters.
12371
+ */
12372
+ label?: string;
12373
+ /**
12374
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12375
+ * and drops any entry without a `prompt`.
12376
+ */
12377
+ questions?: StarterPromptQuestion[];
12378
+ }
12379
+ /**
12380
+ * Configuration for the Data Literacy starter prompt category.
12381
+ * Only the label is customizable; the prompt text comes from the backend.
12382
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12383
+ * @group Embed components
12384
+ */
12385
+ export interface StarterPreviewDataCategory {
12386
+ /**
12387
+ * Overrides the default category pill label. ThoughtSpot truncates it
12388
+ * beyond 30 characters.
12389
+ */
12390
+ label?: string;
12391
+ }
12392
+ /**
12393
+ * Content configuration for the Spotter starter prompts.
12394
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12395
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12396
+ *
12397
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12398
+ * the Liveboard SpotterViz surface are configured separately through
12399
+ * {@link SpotterVizConfig.customStarterPrompts}.
12400
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12401
+ * @group Embed components
12402
+ */
12403
+ export interface StarterPromptsConfig {
12404
+ /**
12405
+ * Turns the starter prompts surface on. Must be set explicitly, an
12406
+ * unset flag leaves the surface off.
12407
+ *
12408
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12409
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12410
+ * @default false
12411
+ */
12412
+ enable?: boolean;
12413
+ /** Basic Search category configuration. */
12414
+ quick?: StarterPromptCategory;
12415
+ /** Deep Analysis category configuration. */
12416
+ research?: StarterPromptCategory;
12417
+ /** Data Literacy category configuration. */
12418
+ previewData?: StarterPreviewDataCategory;
12419
+ /**
12420
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12421
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12422
+ */
12423
+ liveboard?: StarterPromptQuestion[];
12424
+ }
12001
12425
  /**
12002
12426
  * Configuration for customizing Spotter chat UI branding.
12003
12427
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -12038,11 +12462,83 @@ export interface SpotterChatViewConfig {
12038
12462
  /**
12039
12463
  * Enables starter prompts in the Spotter chat interface.
12040
12464
  *
12041
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12465
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12466
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12467
+ *
12468
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12042
12469
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
12043
12470
  * @default false
12044
12471
  */
12045
12472
  enableStarterPrompts?: boolean;
12473
+ /**
12474
+ * Customizes the labels and questions of the Spotter starter prompts.
12475
+ * Individual pills are hidden or shown with `hiddenActions` /
12476
+ * `visibleActions` using `Action.QuickSearchPill`,
12477
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12478
+ *
12479
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12480
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12481
+ * @example
12482
+ * ```js
12483
+ * const embed = new SpotterEmbed('#tsEmbed', {
12484
+ * worksheetId: 'worksheet-id',
12485
+ * hiddenActions: [Action.DeepAnalysisPill],
12486
+ * spotterChatConfig: {
12487
+ * starterPrompts: {
12488
+ * enable: true,
12489
+ * quick: {
12490
+ * label: 'Quick questions',
12491
+ * questions: [
12492
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12493
+ * ],
12494
+ * },
12495
+ * previewData: { label: 'Explore your data' },
12496
+ * },
12497
+ * },
12498
+ * })
12499
+ * ```
12500
+ */
12501
+ starterPrompts?: StarterPromptsConfig;
12502
+ /**
12503
+ * Opens the Spotter chat panel when the Liveboard loads.
12504
+ *
12505
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12506
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12507
+ * @default true
12508
+ * @example
12509
+ * ```js
12510
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12511
+ * liveboardId: 'liveboard-id',
12512
+ * spotterChatConfig: {
12513
+ * openSpotterOnLiveboardByDefault: false,
12514
+ * },
12515
+ * })
12516
+ * ```
12517
+ */
12518
+ openSpotterOnLiveboardByDefault?: boolean;
12519
+ }
12520
+ /**
12521
+ * Configuration for the Spotter Analyst experience.
12522
+ * Can be used in SpotterEmbed.
12523
+ * @group Embed components
12524
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12525
+ * @example
12526
+ * ```js
12527
+ * const embed = new SpotterEmbed('#tsEmbed', {
12528
+ * ... //other embed view config
12529
+ * spotterAnalystConfig: {
12530
+ * analystId: 'analyst-id-1234',
12531
+ * },
12532
+ * })
12533
+ * ```
12534
+ */
12535
+ export interface SpotterAnalystConfig {
12536
+ /**
12537
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12538
+ * and no "Show all".
12539
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12540
+ */
12541
+ analystId?: string;
12046
12542
  }
12047
12543
  /**
12048
12544
  * The configuration for the embedded spotterEmbed options.
@@ -12073,6 +12569,22 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
12073
12569
  * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12074
12570
  */
12075
12571
  dataSources?: string[];
12572
+ /**
12573
+ * Configuration for the Spotter Analyst experience.
12574
+ *
12575
+ * Supported embed types: `SpotterEmbed`
12576
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12577
+ * @example
12578
+ * ```js
12579
+ * const embed = new SpotterEmbed('#tsEmbed', {
12580
+ * ... //other embed view config
12581
+ * spotterAnalystConfig: {
12582
+ * analystId: 'analyst-id-1234',
12583
+ * },
12584
+ * })
12585
+ * ```
12586
+ */
12587
+ spotterAnalystConfig?: SpotterAnalystConfig;
12076
12588
  /**
12077
12589
  * Ability to pass a starting search query to the conversation.
12078
12590
  */
@@ -12394,6 +12906,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
12394
12906
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12395
12907
  spotterShareConversationConfig?: SpotterShareConversationConfig;
12396
12908
  visualOverridesParams?: VisualizationOverrides | null;
12909
+ starterPrompts?: StarterPromptsConfig;
12397
12910
  };
12398
12911
  }
12399
12912
  declare class SpotterEmbed extends TsEmbed {
@@ -12451,13 +12964,12 @@ export interface SpotterVizStarterPrompt {
12451
12964
  * customStarterPrompts: [
12452
12965
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
12453
12966
  * ],
12454
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12967
+ * // The options below require SDK: 1.51.0
12455
12968
  * loaderHeadline: 'Crunching the numbers...',
12456
12969
  * loaderTips: [
12457
12970
  * { label: 'Tip', text: 'try asking about revenue by region' },
12458
12971
  * { label: 'Tip', text: 'use natural language' },
12459
12972
  * ],
12460
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12461
12973
  * liveboardBrandName: 'Reports',
12462
12974
  * spotterBrandName: 'Analyst',
12463
12975
  * insightTileBrandName: 'Insight card',
@@ -12510,47 +13022,47 @@ export interface SpotterVizConfig {
12510
13022
  /**
12511
13023
  * Custom headline text shown in the SpotterViz loading state.
12512
13024
  * Replaces the default loading headline.
12513
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13025
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12514
13026
  */
12515
13027
  loaderHeadline?: string;
12516
13028
  /**
12517
13029
  * Custom tips shown in the SpotterViz loading state.
12518
13030
  * Replaces the default loading tips with the provided list.
12519
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13031
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12520
13032
  */
12521
13033
  loaderTips?: SpotterVizLoaderTip[];
12522
13034
  /**
12523
13035
  * Custom term used to replace "Liveboard" in the agent's responses.
12524
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13036
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12525
13037
  * @default ''
12526
13038
  */
12527
13039
  liveboardBrandName?: string;
12528
13040
  /**
12529
13041
  * Custom term used to replace "Spotter" in the agent's responses.
12530
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13042
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12531
13043
  * @default ''
12532
13044
  */
12533
13045
  spotterBrandName?: string;
12534
13046
  /**
12535
13047
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
12536
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13048
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12537
13049
  * @default ''
12538
13050
  */
12539
13051
  insightTileBrandName?: string;
12540
13052
  /**
12541
13053
  * Custom term used to replace "View plan" in the insight tile menu.
12542
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13054
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12543
13055
  */
12544
13056
  insightTileViewPlanLabel?: string;
12545
13057
  /**
12546
13058
  * Custom loader text shown on the insight tile.
12547
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13059
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12548
13060
  */
12549
13061
  insightTileLoaderText?: string;
12550
13062
  }
12551
13063
  /**
12552
13064
  * A single tip shown in the SpotterViz loading state.
12553
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13065
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12554
13066
  * @group Embed components
12555
13067
  */
12556
13068
  export interface SpotterVizLoaderTip {
@@ -12598,7 +13110,11 @@ export declare enum Page {
12598
13110
  /**
12599
13111
  * Collections listing page
12600
13112
  */
12601
- Collections = "collections"
13113
+ Collections = "collections",
13114
+ /**
13115
+ * Liveboard schedules listing page
13116
+ */
13117
+ LiveboardSchedules = "liveboard-schedules"
12602
13118
  }
12603
13119
  declare enum DataPanelCustomColumnGroupsAccordionState$1 {
12604
13120
  /**
@@ -12980,6 +13496,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12980
13496
  * `false` fetches visualizations incrementally as
12981
13497
  * users scroll the page to view the charts and tables.
12982
13498
  *
13499
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13500
+ * {@link lazyLoadingForFullHeight} and
13501
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13502
+ * they scroll into view. Set either flag to `false` to opt out.
13503
+ *
12983
13504
  * Supported embed types: `AppEmbed`
12984
13505
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12985
13506
  * @example
@@ -13186,11 +13707,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13186
13707
  */
13187
13708
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13188
13709
  /**
13189
- * This flag is used to enable the full height lazy load data.
13710
+ * Loads visualizations only as they scroll into the viewport, instead of
13711
+ * loading the whole full-height Liveboard at once.
13712
+ *
13713
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13714
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13715
+ * set explicitly. Set it to `false` to load every visualization upfront.
13716
+ * The flag has no effect unless `fullHeight` is enabled.
13190
13717
  *
13191
13718
  * @type {boolean}
13192
13719
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13193
- * @default false
13720
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13194
13721
  * @example
13195
13722
  * ```js
13196
13723
  * const embed = new AppEmbed('#embed-container', {
@@ -13202,27 +13729,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13202
13729
  */
13203
13730
  lazyLoadingForFullHeight?: boolean;
13204
13731
  /**
13205
- * This flag is used to enable container-aware full height lazy loading.
13732
+ * Computes the visible region of the embed against its scrollable and
13733
+ * clipping ancestors, instead of treating the browser window as the only
13734
+ * viewport, and tracks scroll and resize on those ancestors.
13206
13735
  *
13207
- * Use this when the embed is rendered inside a scrollable or clipping
13208
- * container instead of relying on the browser window as the only viewport.
13736
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13737
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13738
+ * set explicitly. Set it to `false` when the page scrolls with the window
13739
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13740
+ * tracking.
13209
13741
  *
13210
13742
  * @type {boolean}
13211
- * @default false
13743
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13212
13744
  * @hidden
13213
13745
  */
13214
13746
  enableScrollableContainerLazyLoading?: boolean;
13215
13747
  /**
13216
- * The margin to be used for lazy loading.
13748
+ * How far outside the viewport a visualization starts loading, when
13749
+ * {@link lazyLoadingForFullHeight} is enabled.
13217
13750
  *
13218
13751
  * For example, if the margin is set to '10px',
13219
13752
  * the visualization will be loaded 10px before its top edge is visible in the
13220
13753
  * viewport.
13221
13754
  *
13222
- * The format is similar to CSS margin.
13755
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13756
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13757
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13758
+ * `auto`; an invalid value is logged and ignored.
13759
+ *
13760
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13761
+ * visualization ahead of the scroll position, so a chart has usually
13762
+ * finished loading by the time it scrolls into view. Use a smaller margin
13763
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13764
+ * only once it is actually visible.
13223
13765
  *
13224
13766
  * @type {string}
13225
13767
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13768
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13226
13769
  * @example
13227
13770
  * ```js
13228
13771
  * const embed = new AppEmbed('#embed-container', {
@@ -13397,13 +13940,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13397
13940
  * inputChatPlaceholder: 'Ask a question...',
13398
13941
  * hideStarterPrompts: false,
13399
13942
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13400
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13943
+ * // The options below require SDK: 1.51.0
13401
13944
  * loaderHeadline: 'Crunching the numbers...',
13402
13945
  * loaderTips: [
13403
13946
  * { label: 'Tip', text: 'try asking about revenue by region' },
13404
13947
  * { label: 'Tip', text: 'use natural language' },
13405
13948
  * ],
13406
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13407
13949
  * liveboardBrandName: 'Reports',
13408
13950
  * spotterBrandName: 'Analyst',
13409
13951
  * insightTileBrandName: 'Insight card',
@@ -13499,6 +14041,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13499
14041
  spotterSidebarConfig?: SpotterSidebarViewConfig;
13500
14042
  spotterVizConfig?: SpotterVizConfig;
13501
14043
  spotterShareConversationConfig?: SpotterShareConversationConfig;
14044
+ starterPrompts?: StarterPromptsConfig;
13502
14045
  };
13503
14046
  }
13504
14047
  declare class AppEmbed extends V1Embed {
@@ -13593,6 +14136,7 @@ declare class AppEmbed extends V1Embed {
13593
14136
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
13594
14137
  embedParams?: {
13595
14138
  spotterVizConfig?: SpotterVizConfig;
14139
+ starterPrompts?: StarterPromptsConfig;
13596
14140
  };
13597
14141
  }
13598
14142
  /**
@@ -13611,6 +14155,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13611
14155
  * Setting `fullHeight` to `false` fetches visualizations
13612
14156
  * incrementally as users scroll the page to view the charts and tables.
13613
14157
  *
14158
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14159
+ * {@link lazyLoadingForFullHeight} and
14160
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14161
+ * they scroll into view. Set either flag to `false` to opt out.
14162
+ *
13614
14163
  *
13615
14164
  * Supported embed types: `LiveboardEmbed`
13616
14165
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -14003,11 +14552,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14003
14552
  */
14004
14553
  isGranularXLSXCSVSchedulesEnabled?: boolean;
14005
14554
  /**
14006
- * This flag is used to enable the full height lazy load data.
14555
+ * Loads visualizations only as they scroll into the viewport, instead of
14556
+ * loading the whole full-height Liveboard at once.
14557
+ *
14558
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14559
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14560
+ * set explicitly. Set it to `false` to load every visualization upfront.
14561
+ * The flag has no effect unless `fullHeight` is enabled.
14007
14562
  *
14008
14563
  * @type {boolean}
14009
14564
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14010
- * @default false
14565
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14011
14566
  * @example
14012
14567
  * ```js
14013
14568
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14019,26 +14574,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14019
14574
  */
14020
14575
  lazyLoadingForFullHeight?: boolean;
14021
14576
  /**
14022
- * This flag is used to enable container-aware full height lazy loading.
14577
+ * Computes the visible region of the embed against its scrollable and
14578
+ * clipping ancestors, instead of treating the browser window as the only
14579
+ * viewport, and tracks scroll and resize on those ancestors.
14023
14580
  *
14024
- * Use this when the embed is rendered inside a scrollable or clipping
14025
- * container instead of relying on the browser window as the only viewport.
14581
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14582
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14583
+ * set explicitly. Set it to `false` when the page scrolls with the window
14584
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14585
+ * tracking.
14026
14586
  *
14027
14587
  * @type {boolean}
14028
- * @default false
14588
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14029
14589
  */
14030
14590
  enableScrollableContainerLazyLoading?: boolean;
14031
14591
  /**
14032
- * The margin to be used for lazy loading.
14592
+ * How far outside the viewport a visualization starts loading, when
14593
+ * {@link lazyLoadingForFullHeight} is enabled.
14033
14594
  *
14034
14595
  * For example, if the margin is set to '10px',
14035
14596
  * the visualization will be loaded 10px before its top edge is visible in the
14036
14597
  * viewport.
14037
14598
  *
14038
- * The format is similar to CSS margin.
14599
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14600
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14601
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14602
+ * `auto`; an invalid value is logged and ignored.
14603
+ *
14604
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14605
+ * visualization ahead of the scroll position, so a chart has usually
14606
+ * finished loading by the time it scrolls into view. Use a smaller margin
14607
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14608
+ * only once it is actually visible.
14039
14609
  *
14040
14610
  * @type {string}
14041
14611
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14612
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14042
14613
  * @example
14043
14614
  * ```js
14044
14615
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14142,13 +14713,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14142
14713
  * inputChatPlaceholder: 'Ask a question...',
14143
14714
  * hideStarterPrompts: false,
14144
14715
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
14145
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14716
+ * // The options below require SDK: 1.51.0
14146
14717
  * loaderHeadline: 'Crunching the numbers...',
14147
14718
  * loaderTips: [
14148
14719
  * { label: 'Tip', text: 'try asking about revenue by region' },
14149
14720
  * { label: 'Tip', text: 'use natural language' },
14150
14721
  * ],
14151
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14152
14722
  * liveboardBrandName: 'Reports',
14153
14723
  * spotterBrandName: 'Analyst',
14154
14724
  * insightTileBrandName: 'Insight card',
@@ -14244,7 +14814,7 @@ declare class LiveboardEmbed extends V1Embed {
14244
14814
  * @param {any} data The payload to send with the message
14245
14815
  * @returns A promise that resolves with the response from the embedded app
14246
14816
  */
14247
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14817
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14248
14818
  /**
14249
14819
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14250
14820
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -14327,35 +14897,69 @@ export type SessionInfo = {
14327
14897
  export declare function getSessionInfo(): Promise<SessionInfo>;
14328
14898
  export interface SearchProps extends EmbedProps, SearchViewConfig {
14329
14899
  }
14330
- export interface PreRenderProps {
14900
+ /**
14901
+ * The PreRendered components require a preRender id. It can be supplied either
14902
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
14903
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
14904
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
14905
+ *
14906
+ * Use PreRender to render the embed in the background and then
14907
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
14908
+ * @example
14909
+ * ```tsx
14910
+ * // Preferred, SDK: 1.52.0 and later.
14911
+ * function LandingPageComponent() {
14912
+ * return <PreRenderedLiveboardEmbed
14913
+ * preRenderConfig={{ preRenderId: "someId" }}
14914
+ * liveboardId="libId"
14915
+ * />
14916
+ * }
14917
+ *
14918
+ * function MyComponent() {
14919
+ * return <LiveboardEmbed
14920
+ * preRenderConfig={{ preRenderId: "someId" }}
14921
+ * liveboardId="libId"
14922
+ * />
14923
+ * }
14924
+ * ```
14925
+ * @example
14926
+ * ```tsx
14927
+ * // Deprecated top-level preRenderId, still supported.
14928
+ * function LandingPageComponent() {
14929
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
14930
+ * }
14931
+ * ```
14932
+ */
14933
+ export type PreRenderProps = {
14331
14934
  /**
14332
14935
  * PreRender id to be used for PreRendering the embed.
14333
- * Use PreRender to render the embed in the background and then
14334
- * show or hide the rendered embed using showPreRender or hidePreRender respectively.
14335
- *
14336
- * Use PreRendered react component for pre rendering embed components.
14337
14936
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
14338
- * @example
14339
- * ```js
14340
- * const embed = new LiveboardEmbed('#embed', {
14341
- * ... // other liveboard view config
14342
- * preRenderId: "preRenderId-123"
14343
- * });
14344
- * embed.showPreRender();
14345
- * ```
14346
- * @example
14347
- * ```tsx
14348
- * function LandingPageComponent() {
14349
- * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
14350
- * }
14351
- * ```
14352
- * function MyComponent() {
14353
- * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
14354
- * }
14355
- * ```
14937
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
14356
14938
  */
14357
14939
  preRenderId: string;
14358
- }
14940
+ /**
14941
+ * Configuration for the pre-render wrapper element.
14942
+ * See {@link PreRenderConfig} for available options.
14943
+ * @version SDK: 1.52.0
14944
+ */
14945
+ preRenderConfig?: PreRenderConfig;
14946
+ } | {
14947
+ /**
14948
+ * PreRender id to be used for PreRendering the embed.
14949
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
14950
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
14951
+ */
14952
+ preRenderId?: string;
14953
+ /**
14954
+ * Configuration for the pre-render wrapper element. `preRenderId` is
14955
+ * required here when the top-level `preRenderId` prop is not passed.
14956
+ * See {@link PreRenderConfig} for available options.
14957
+ * @version SDK: 1.52.0
14958
+ */
14959
+ preRenderConfig: PreRenderConfig & {
14960
+ preRenderId: string;
14961
+ };
14962
+ };
14359
14963
  /**
14360
14964
  * React component for Search Embed.
14361
14965
  * @example
@@ -14369,7 +14973,7 @@ export interface PreRenderProps {
14369
14973
  * ```
14370
14974
  */
14371
14975
  declare const SearchEmbed$1: React$1.ForwardRefExoticComponent<SearchProps & React$1.RefAttributes<SearchEmbed>>;
14372
- export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<SearchProps & PreRenderProps & React$1.RefAttributes<SearchEmbed>>;
14976
+ export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<(SearchProps & PreRenderProps) & React$1.RefAttributes<SearchEmbed>>;
14373
14977
  export interface AppProps extends EmbedProps, AppViewConfig {
14374
14978
  }
14375
14979
  /**
@@ -14404,7 +15008,7 @@ declare const AppEmbed$1: React$1.ForwardRefExoticComponent<AppProps & React$1.R
14404
15008
  * }
14405
15009
  * ```
14406
15010
  */
14407
- export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<AppProps & PreRenderProps & React$1.RefAttributes<AppEmbed>>;
15011
+ export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<(AppProps & PreRenderProps) & React$1.RefAttributes<AppEmbed>>;
14408
15012
  export interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
14409
15013
  }
14410
15014
  /**
@@ -14444,8 +15048,8 @@ export declare const PinboardEmbed: React$1.ForwardRefExoticComponent<LiveboardP
14444
15048
  * }
14445
15049
  * ```
14446
15050
  */
14447
- export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
14448
- export declare const PreRenderedPinboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
15051
+ export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
15052
+ export declare const PreRenderedPinboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
14449
15053
  export interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
14450
15054
  }
14451
15055
  /**
@@ -14479,7 +15083,7 @@ declare const SearchBarEmbed$1: React$1.ForwardRefExoticComponent<SearchBarEmbed
14479
15083
  * }
14480
15084
  * ```
14481
15085
  */
14482
- export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React$1.RefAttributes<SearchBarEmbed>>;
15086
+ export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<(SearchBarEmbedProps & PreRenderProps) & React$1.RefAttributes<SearchBarEmbed>>;
14483
15087
  export interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
14484
15088
  }
14485
15089
  export interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
@@ -14572,7 +15176,7 @@ export declare const SpotterMessage: React$1.ForwardRefExoticComponent<{
14572
15176
  * }
14573
15177
  * ```
14574
15178
  */
14575
- export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<SpotterEmbedProps & PreRenderProps & React$1.RefAttributes<SpotterEmbed>>;
15179
+ export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<(SpotterEmbedProps & PreRenderProps) & React$1.RefAttributes<SpotterEmbed>>;
14576
15180
  export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof LiveboardEmbed$1 | typeof SearchBarEmbed$1 | typeof ConversationMessage$1 | typeof SpotterMessage | typeof SpotterEmbed$1 | typeof ConversationEmbed$1;
14577
15181
  /**
14578
15182
  * Get a reference to the embed component to trigger events on the component.
@@ -14582,7 +15186,7 @@ export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof L
14582
15186
  * const ref = useEmbedRef();
14583
15187
  * useEffect(() => {
14584
15188
  * ref.current.trigger(
14585
- * EmbedEvent.UpdateRuntimeFilter,
15189
+ * HostEvent.UpdateRuntimeFilters,
14586
15190
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
14587
15191
  * }, [])
14588
15192
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />