@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
  */
@@ -2069,6 +2096,85 @@ export interface FrameParams {
2069
2096
  */
2070
2097
  [key: string]: string | number | boolean | undefined;
2071
2098
  }
2099
+ /**
2100
+ * Configuration for the pre-render wrapper element.
2101
+ * All properties here mirror the top-level preRender properties on
2102
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2103
+ * so existing top-level usage continues to work without any changes.
2104
+ *
2105
+ * @version SDK: 1.52.0
2106
+ * @example
2107
+ * ```js
2108
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2109
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2110
+ * preRenderConfig: {
2111
+ * preRenderId: 'my-liveboard',
2112
+ * preRenderContainer: '#my-scroll-container',
2113
+ * doNotTrackPreRenderSize: false,
2114
+ * zIndex: -10,
2115
+ * },
2116
+ * });
2117
+ * embed.preRender();
2118
+ * embed.showPreRender();
2119
+ * ```
2120
+ */
2121
+ export interface PreRenderConfig {
2122
+ /**
2123
+ * Pre-render ID to identify the pre-render instance.
2124
+ * Takes precedence over the top-level `preRenderId` when both are set.
2125
+ *
2126
+ * Matches the embed warmed by `preRender()` to the one revealed by
2127
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2128
+ * the same view, and give unrelated views their own or they will collide.
2129
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2130
+ * and do nothing without it.
2131
+ *
2132
+ * @default undefined
2133
+ */
2134
+ preRenderId?: string;
2135
+ /**
2136
+ * The DOM element or CSS selector string specifying the container into
2137
+ * which the pre-rendered wrapper is inserted.
2138
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2139
+ *
2140
+ * Set this when your app scrolls inside an element rather than the page (for
2141
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2142
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2143
+ * selector string — it is re-resolved on reposition and so survives a remount,
2144
+ * while a detached element reference cannot be recovered. An invalid selector is
2145
+ * logged and falls back to `document.body`.
2146
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2147
+ *
2148
+ * @default document.body
2149
+ */
2150
+ preRenderContainer?: string | HTMLElement;
2151
+ /**
2152
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2153
+ * placeholder element.
2154
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2155
+ *
2156
+ * Set this only when you size the embed yourself; you then own alignment and must
2157
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2158
+ * already pauses while hidden, so this is not needed to avoid work then.
2159
+ *
2160
+ * @default false
2161
+ */
2162
+ doNotTrackPreRenderSize?: boolean;
2163
+ /**
2164
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2165
+ * Override this when the host page's stacking context does not reach `-1000`
2166
+ * and the hidden wrapper still appears above other elements.
2167
+ *
2168
+ * A page that creates its own stacking context — a positioned app shell, a
2169
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2170
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2171
+ * see a faint panel behind your content, or clicks landing on nothing in the
2172
+ * region where the embed will eventually appear.
2173
+ *
2174
+ * @default -1000
2175
+ */
2176
+ zIndex?: number;
2177
+ }
2072
2178
  /**
2073
2179
  * The common configuration object for an embedded view.
2074
2180
  */
@@ -2153,7 +2259,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2153
2259
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2154
2260
  * const embed = new <EmbedComponent>('#tsEmbed', {
2155
2261
  * ... // other embed view config
2156
- * hiddenActions: [Action.Download, Action.Export],
2262
+ * hiddenActions: [Action.Download, Action.ExportTML],
2157
2263
  * });
2158
2264
  * ```
2159
2265
  * @important
@@ -2175,7 +2281,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2175
2281
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2176
2282
  * const embed = new <EmbedComponent>('#tsEmbed', {
2177
2283
  * ... // other embed view config
2178
- * visibleActions: [Action.Download, Action.Export],
2284
+ * visibleActions: [Action.Download, Action.ExportTML],
2179
2285
  * });
2180
2286
  * ```
2181
2287
  */
@@ -2260,6 +2366,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2260
2366
  *
2261
2367
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2262
2368
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2369
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2263
2370
  * @example
2264
2371
  * ```js
2265
2372
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2279,6 +2386,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2279
2386
  * @type {boolean}
2280
2387
  * @default false
2281
2388
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2389
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2282
2390
  * @example
2283
2391
  * ```js
2284
2392
  * // Disable tracking PreRender size in the configuration
@@ -2320,6 +2428,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2320
2428
  *
2321
2429
  * @type {string | HTMLElement}
2322
2430
  * @version SDK: 1.49.2 | ThoughtSpot: *
2431
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2323
2432
  * @example
2324
2433
  * ```js
2325
2434
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2330,6 +2439,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2330
2439
  * ```
2331
2440
  */
2332
2441
  preRenderContainer?: string | HTMLElement;
2442
+ /**
2443
+ * Configuration for the pre-render wrapper element.
2444
+ * All properties here mirror the top-level preRender properties on
2445
+ * `BaseViewConfig` and take precedence over them when both are set,
2446
+ * so existing top-level usage continues to work without any changes.
2447
+ * See {@link PreRenderConfig} for available options.
2448
+ *
2449
+ * @version SDK: 1.52.0
2450
+ * @example
2451
+ * ```js
2452
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2453
+ * preRenderConfig: {
2454
+ * preRenderId: 'my-liveboard',
2455
+ * zIndex: -10,
2456
+ * },
2457
+ * });
2458
+ * embed.preRender();
2459
+ * embed.showPreRender();
2460
+ * ```
2461
+ */
2462
+ preRenderConfig?: PreRenderConfig;
2333
2463
  /**
2334
2464
  * Enable the V2 shell. This can provide performance benefits
2335
2465
  * due to a lighter-weight shell.
@@ -2753,7 +2883,7 @@ export interface HomePageConfig {
2753
2883
  *
2754
2884
  * const embed = new AppEmbed('#tsEmbed', {
2755
2885
  * ... //other embed view config
2756
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2886
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2757
2887
  * })
2758
2888
  * ```
2759
2889
  */
@@ -3066,6 +3196,25 @@ export interface LiveboardAppEmbedViewConfig {
3066
3196
  * ```
3067
3197
  */
3068
3198
  enable2ColumnLayout?: boolean;
3199
+ /**
3200
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3201
+ * every width, instead of switching to the two-column or single-column
3202
+ * layout as the container narrows.
3203
+ *
3204
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3205
+ * @type {boolean}
3206
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3207
+ * @default false
3208
+ * @example
3209
+ * ```js
3210
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3211
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3212
+ * ... // other embed view config
3213
+ * isLiveboardAlwaysOn12ColLayout: true,
3214
+ * })
3215
+ * ```
3216
+ */
3217
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3069
3218
  /**
3070
3219
  * This flag can be used to enable the compact header in Liveboard
3071
3220
  *
@@ -3170,6 +3319,26 @@ export interface LiveboardAppEmbedViewConfig {
3170
3319
  * ```
3171
3320
  */
3172
3321
  coverAndFilterOptionInPDF?: boolean;
3322
+ /**
3323
+ * Sets the gutter space (in pixels) between the visualization tiles of
3324
+ * an embedded Liveboard grid layout and its outer layout padding.
3325
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3326
+ * and removes the outer padding. When omitted, the gutter saved in the
3327
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3328
+ *
3329
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3330
+ * @type {number}
3331
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3332
+ * @example
3333
+ * ```js
3334
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3335
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3336
+ * ... // other embed view config
3337
+ * liveboardGutter: 8,
3338
+ * })
3339
+ * ```
3340
+ */
3341
+ liveboardGutter?: number;
3173
3342
  /**
3174
3343
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3175
3344
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3585,7 +3754,7 @@ export declare enum EmbedEvent {
3585
3754
  * @returns nonFilteredColumns - The columns that were not filtered
3586
3755
  * @example
3587
3756
  * ```js
3588
- * searchEmbed.on(EmbedEvent.DrillDown, {
3757
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3589
3758
  * points: {
3590
3759
  * clickedPoint,
3591
3760
  * selectedPoints: selectedPoint
@@ -3646,7 +3815,7 @@ export declare enum EmbedEvent {
3646
3815
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3647
3816
  * @example
3648
3817
  * ```js
3649
- * appEmbed.on(EmbedEvent.customAction, payload => {
3818
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3650
3819
  * const data = payload.data;
3651
3820
  * if (data.id === 'insert Custom Action ID here') {
3652
3821
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3912,8 +4081,8 @@ export declare enum EmbedEvent {
3912
4081
  *
3913
4082
  * **Note**: This event is deprecated in v1.21.0.
3914
4083
  * To fire an event when a download action is initiated on a chart or table,
3915
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3916
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4084
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4085
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3917
4086
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3918
4087
  * @example
3919
4088
  * ```js
@@ -3963,10 +4132,10 @@ export declare enum EmbedEvent {
3963
4132
  * @example
3964
4133
  * ```js
3965
4134
  * //emit when action starts
3966
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4135
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3967
4136
  * console.log('download CSV', payload)}, {start: true })
3968
4137
  * //emit when action ends
3969
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4138
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3970
4139
  * console.log('download CSV', payload)})
3971
4140
  * ```
3972
4141
  */
@@ -5422,6 +5591,7 @@ export declare enum HostEvent {
5422
5591
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5423
5592
  * console.log("iFrameURL", url);
5424
5593
  * ```
5594
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5425
5595
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5426
5596
  */
5427
5597
  GetIframeUrl = "GetIframeUrl",
@@ -5588,6 +5758,41 @@ export declare enum HostEvent {
5588
5758
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5589
5759
  */
5590
5760
  OpenFilter = "openFilter",
5761
+ /**
5762
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5763
+ * *Add filter* button in the Liveboard edit header opens, so the host
5764
+ * app can start the add-filter flow from its own UI.
5765
+ *
5766
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5767
+ * Hiding the *Add filter* button with `hiddenActions:
5768
+ * [Action.AddFilter]` does not block this event, but disabling it with
5769
+ * `disabledActions` does.
5770
+ *
5771
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5772
+ * existing filter, this event starts the creation of a new filter.
5773
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5774
+ * @example
5775
+ * ```js
5776
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5777
+ * ```
5778
+ */
5779
+ OpenAddFilterModal = "openAddFilterModal",
5780
+ /**
5781
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5782
+ * *Add parameter* button in the Liveboard edit header opens.
5783
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5784
+ *
5785
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5786
+ * Hiding the *Add parameter* button with `hiddenActions:
5787
+ * [Action.AddParameter]` does not block this event, but disabling it
5788
+ * with `disabledActions` does.
5789
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5790
+ * @example
5791
+ * ```js
5792
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5793
+ * ```
5794
+ */
5795
+ OpenAddParameterModal = "openAddParameterModal",
5591
5796
  /**
5592
5797
  * Open the parameter panel for a particular parameter on a Liveboard.
5593
5798
  * Mirrors {@link HostEvent.OpenFilter} for parameters.
@@ -5669,6 +5874,10 @@ export declare enum HostEvent {
5669
5874
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5670
5875
  * data=>console.log(data))
5671
5876
  * ```
5877
+ * @returns data - Object with a `v2Content` string: the export request
5878
+ * payload for the current Liveboard.
5879
+ * @returns type - The passthrough event name,
5880
+ * `getExportRequestForCurrentPinboard`.
5672
5881
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5673
5882
  */
5674
5883
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5771,6 +5980,9 @@ export declare enum HostEvent {
5771
5980
  * }, ContextType.Spotter);
5772
5981
  * ```
5773
5982
  *
5983
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
5984
+ * @returns tabId - GUID of the tab within that Liveboard.
5985
+ * @returns vizId - GUID of the newly created visualization.
5774
5986
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5775
5987
  */
5776
5988
  Pin = "pin",
@@ -5809,13 +6021,13 @@ export declare enum HostEvent {
5809
6021
  * Trigger the **Manage schedule** action on an embedded Liveboard
5810
6022
  * @example
5811
6023
  * ```js
5812
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6024
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5813
6025
  * ```
5814
6026
  * @example
5815
6027
  * ```js
5816
6028
  * // Manage schedules from liveboard context
5817
6029
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5818
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6030
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5819
6031
  * ```
5820
6032
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5821
6033
  */
@@ -6260,6 +6472,7 @@ export declare enum HostEvent {
6260
6472
  * console.log(tml.answer);
6261
6473
  * });
6262
6474
  * ```
6475
+ * @returns The TML representation of the current Answer, as an object.
6263
6476
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
6264
6477
  * @important
6265
6478
  */
@@ -6703,6 +6916,8 @@ export declare enum HostEvent {
6703
6916
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6704
6917
  * console.log('filters', data);
6705
6918
  * ```
6919
+ * @returns liveboardFilters - Filters applied on the Liveboard.
6920
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6706
6921
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6707
6922
  */
6708
6923
  GetFilters = "getFilters",
@@ -6852,6 +7067,9 @@ export declare enum HostEvent {
6852
7067
  * console.log('tabs', tabDetails);
6853
7068
  * });
6854
7069
  * ```
7070
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7071
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7072
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6855
7073
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6856
7074
  */
6857
7075
  GetTabs = "getTabs",
@@ -6874,6 +7092,9 @@ export declare enum HostEvent {
6874
7092
  * console.log('groups', groupDetails);
6875
7093
  * });
6876
7094
  * ```
7095
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7096
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7097
+ * @returns Groups - Group details, each with at least `id` and `name`.
6877
7098
  * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6878
7099
  */
6879
7100
  GetGroups = "getGroups",
@@ -6948,6 +7169,9 @@ export declare enum HostEvent {
6948
7169
  * // Alternative direct usage (not recommended)
6949
7170
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6950
7171
  * ```
7172
+ * @returns session - Session identifier for the Answer, for use with the
7173
+ * `AnswerService`.
7174
+ * @returns embedAnswerData - Data backing the Answer, when available.
6951
7175
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6952
7176
  */
6953
7177
  GetAnswerSession = "getAnswerSession",
@@ -7081,12 +7305,16 @@ export declare enum HostEvent {
7081
7305
  * console.log('parameters', parameters);
7082
7306
  * });
7083
7307
  * ```
7308
+ * @returns parameters - Parameters currently applied on the Liveboard.
7084
7309
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
7085
7310
  */
7086
7311
  GetParameters = "GetParameters",
7087
7312
  /**
7088
7313
  * Triggers an event to update a personalized view of a Liveboard.
7089
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7314
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7315
+ * which additionally accepts a `viewName`, resets to the original view when
7316
+ * called with an empty payload, and reports an error when a named view
7317
+ * cannot be found.
7090
7318
  * ```js
7091
7319
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7092
7320
  * ```
@@ -7104,10 +7332,15 @@ export declare enum HostEvent {
7104
7332
  UpdatePersonalisedView = "UpdatePersonalisedView",
7105
7333
  /**
7106
7334
  * Triggers an event to update a personalized view of a Liveboard.
7335
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7336
+ * which additionally accepts a `viewName`, resets to the original view when
7337
+ * called with an empty payload, and reports an error when a named view
7338
+ * cannot be found.
7107
7339
  * ```js
7108
7340
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7109
7341
  * ```
7110
7342
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7343
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7111
7344
  */
7112
7345
  UpdatePersonalizedView = "UpdatePersonalisedView",
7113
7346
  /**
@@ -7210,6 +7443,10 @@ export declare enum HostEvent {
7210
7443
  * description: "Generated from Spotter"
7211
7444
  * }, ContextType.Spotter);
7212
7445
  * ```
7446
+ * @returns answerId - GUID of the saved Answer.
7447
+ * @returns saveResponse - Raw response from the save operation.
7448
+ * @returns shareResponse - Raw response from the share operation, when the
7449
+ * Answer was also made discoverable.
7213
7450
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
7214
7451
  */
7215
7452
  SaveAnswer = "saveAnswer",
@@ -7593,9 +7830,10 @@ export type SpotterFileUploadFileTypes = {
7593
7830
  * ThoughtSpot application pages include actions and menu commands
7594
7831
  * for various user-initiated operations. These actions are represented
7595
7832
  * as enumeration members in the SDK. To control actions in the embedded view:
7596
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7597
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7598
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7833
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7834
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7835
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7836
+ * are shown; all others are hidden.
7599
7837
  *
7600
7838
  * Use disabledActions to disable (gray out) an action.
7601
7839
  * Use hiddenActions to hide (fully remove) an action.
@@ -7648,6 +7886,17 @@ export declare enum Action {
7648
7886
  * ```
7649
7887
  */
7650
7888
  SaveAsView = "saveAsView",
7889
+ /**
7890
+ * The **EditInputTable** action on a Liveboard
7891
+ * page. Allows users to edit an input table used in an Answer directly from
7892
+ * a Liveboard.
7893
+ * @example
7894
+ * ```js
7895
+ * disabledActions: [Action.EditInputTable]
7896
+ * ```
7897
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7898
+ */
7899
+ EditInputTable = "editInputTable",
7651
7900
  /**
7652
7901
  * The **Make a copy** action on a Liveboard or Answer
7653
7902
  * page. Creates a copy of the Liveboard.
@@ -8963,6 +9212,10 @@ export declare enum Action {
8963
9212
  * The **Add to Coaching** feature allows adding reference questions and
8964
9213
  * business terms to improve Spotter’s responses. This feature is generally available
8965
9214
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9215
+ *
9216
+ * This action governs both the answer-card **Add to memory** CTA and its
9217
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9218
+ * (they are mutually exclusive).
8966
9219
  * @example
8967
9220
  * ```js
8968
9221
  * hiddenAction: [Action.InConversationTraining]
@@ -9343,6 +9596,56 @@ export declare enum Action {
9343
9596
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
9344
9597
  */
9345
9598
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9599
+ /**
9600
+ * The **Basic Search** starter prompt pill.
9601
+ *
9602
+ * Starter prompt pills are the row of category buttons shown above the
9603
+ * Spotter chat input before a conversation starts. They give a new user
9604
+ * ready-made questions to click instead of typing one from scratch, and
9605
+ * disappear once the conversation begins. There are three, one per action
9606
+ * below.
9607
+ *
9608
+ * Clicking this pill opens a card of suggested simple questions; picking one
9609
+ * submits it to Spotter right away. Visible by default, and hidden along
9610
+ * with the other pills when the surface itself is off (see
9611
+ * {@link SpotterChatViewConfig.starterPrompts}).
9612
+ * @example
9613
+ * ```js
9614
+ * hiddenActions: [Action.QuickSearchPill]
9615
+ * ```
9616
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9617
+ */
9618
+ QuickSearchPill = "quickSearchPill",
9619
+ /**
9620
+ * The **Deep Analysis** starter prompt pill, next to
9621
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9622
+ *
9623
+ * Clicking it opens a card of suggested investigative questions ("why did
9624
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9625
+ * rather than submitting immediately, so the user can edit it first.
9626
+ * Visible by default.
9627
+ * @example
9628
+ * ```js
9629
+ * hiddenActions: [Action.DeepAnalysisPill]
9630
+ * ```
9631
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9632
+ */
9633
+ DeepAnalysisPill = "deepAnalysisPill",
9634
+ /**
9635
+ * The **Data Literacy** starter prompt pill, next to
9636
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9637
+ *
9638
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9639
+ * that describes the data the model can answer over, helping a user who does
9640
+ * not yet know what is in the data source. The prompt text always comes from
9641
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9642
+ * @example
9643
+ * ```js
9644
+ * hiddenActions: [Action.DataLiteracyPill]
9645
+ * ```
9646
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9647
+ */
9648
+ DataLiteracyPill = "dataLiteracyPill",
9346
9649
  /**
9347
9650
  * The **Include current period** checkbox for date filters.
9348
9651
  * Controls the visibility and availability of the option to include
@@ -9490,7 +9793,39 @@ export declare enum Action {
9490
9793
  * disabledActions: [Action.SpotterAnalystSidebar]
9491
9794
  * ```
9492
9795
  */
9493
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9796
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9797
+ /**
9798
+ * Controls visibility and disable state of the analyst list
9799
+ * ("Show all") in the Spotter Analyst interface.
9800
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9801
+ * @example
9802
+ * ```js
9803
+ * hiddenActions: [Action.SpotterAnalystList]
9804
+ * disabledActions: [Action.SpotterAnalystList]
9805
+ * ```
9806
+ */
9807
+ SpotterAnalystList = "spotterAnalystList",
9808
+ /**
9809
+ * Controls visibility and disable state of the default Spotter analyst
9810
+ * entry in the Spotter Analyst interface.
9811
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9812
+ * @example
9813
+ * ```js
9814
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9815
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9816
+ * ```
9817
+ */
9818
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9819
+ /**
9820
+ * The **Spotter** button in the Liveboard header.
9821
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9822
+ * @example
9823
+ * ```js
9824
+ * hiddenActions: [Action.SpotterOnLiveboard]
9825
+ * disabledActions: [Action.SpotterOnLiveboard]
9826
+ * ```
9827
+ */
9828
+ SpotterOnLiveboard = "spotterOnLiveboard"
9494
9829
  }
9495
9830
  export declare enum PrefetchFeatures {
9496
9831
  FullApp = "FullApp",
@@ -9874,7 +10209,7 @@ export type ApiInterceptFlags = {
9874
10209
  * const embed = new LiveboardEmbed('#embed', {
9875
10210
  * ...viewConfig,
9876
10211
  * enableApiIntercept: true,
9877
- * interceptUrls: [InterceptedApiType.DATA],
10212
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9878
10213
  * })
9879
10214
  * ```
9880
10215
  *
@@ -10505,7 +10840,10 @@ export interface LiveboardGroup {
10505
10840
  name: string;
10506
10841
  [key: string]: any;
10507
10842
  }
10508
- declare enum ApplicabilityLevel {
10843
+ /**
10844
+ * Levels at which a filter or parameter can be applied.
10845
+ */
10846
+ export declare enum ApplicabilityLevel {
10509
10847
  Liveboard = "LIVEBOARD",
10510
10848
  Tab = "TAB",
10511
10849
  Group = "GROUP"
@@ -10769,7 +11107,7 @@ declare class HostEventClient {
10769
11107
  * @param payload - Optional payload for the event
10770
11108
  * @param context - Optional context (e.g. vizId) for scoped operations
10771
11109
  */
10772
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11110
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10773
11111
  }
10774
11112
  declare class TsEmbed {
10775
11113
  /**
@@ -10974,6 +11312,12 @@ declare class TsEmbed {
10974
11312
  protected getEmbedParamsObject(): Record<any, any>;
10975
11313
  protected getRootIframeSrc(): string;
10976
11314
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11315
+ /**
11316
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11317
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11318
+ * backward compatibility.
11319
+ */
11320
+ protected getPreRenderConfig(): PreRenderConfig;
10977
11321
  /**
10978
11322
  * Returns true if this embed instance is configured for pre-rendering.
10979
11323
  */
@@ -11012,12 +11356,14 @@ declare class TsEmbed {
11012
11356
  * fresh element; an element passed directly cannot be re-resolved.
11013
11357
  */
11014
11358
  private resolvePreRenderContainerTarget;
11359
+ private inheritPreRenderContainer;
11360
+ private getCustomPreRenderContainer;
11015
11361
  /**
11016
- * Makes the container a positioning context for the absolutely positioned
11017
- * wrapper, stashing the original inline `position` on the element (once) so
11018
- * destroy() can restore it exactly, leaving no trace. Recording it on the
11019
- * element rather than per-instance lets the override be reverted even when
11020
- * embeds share the same container.
11362
+ * Makes the resolved container a positioning context for the absolutely
11363
+ * positioned wrapper, stashing the original inline `position` on the element
11364
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11365
+ * on the element rather than per-instance lets the override be reverted even
11366
+ * when embeds share the same container.
11021
11367
  */
11022
11368
  private applyPreRenderContainerPositioning;
11023
11369
  /**
@@ -11165,7 +11511,7 @@ declare class TsEmbed {
11165
11511
  * ```
11166
11512
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11167
11513
  */
11168
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11514
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11169
11515
  /**
11170
11516
  * Triggers an event to the embedded app, skipping the UI flow.
11171
11517
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -12021,6 +12367,87 @@ export interface SpotterShareConversationConfig {
12021
12367
  */
12022
12368
  spotterSharedConversationExitLabel?: string;
12023
12369
  }
12370
+ /**
12371
+ * A single starter prompt question shown under a category pill.
12372
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12373
+ * @group Embed components
12374
+ */
12375
+ export interface StarterPromptQuestion {
12376
+ /**
12377
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12378
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12379
+ */
12380
+ label?: string;
12381
+ /**
12382
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12383
+ * 300 characters.
12384
+ */
12385
+ prompt: string;
12386
+ }
12387
+ /**
12388
+ * Configuration for a starter prompt category with questions
12389
+ * (`quick` and `research`).
12390
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12391
+ * @group Embed components
12392
+ */
12393
+ export interface StarterPromptCategory {
12394
+ /**
12395
+ * Overrides the default category pill label. ThoughtSpot truncates it
12396
+ * beyond 30 characters.
12397
+ */
12398
+ label?: string;
12399
+ /**
12400
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12401
+ * and drops any entry without a `prompt`.
12402
+ */
12403
+ questions?: StarterPromptQuestion[];
12404
+ }
12405
+ /**
12406
+ * Configuration for the Data Literacy starter prompt category.
12407
+ * Only the label is customizable; the prompt text comes from the backend.
12408
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12409
+ * @group Embed components
12410
+ */
12411
+ export interface StarterPreviewDataCategory {
12412
+ /**
12413
+ * Overrides the default category pill label. ThoughtSpot truncates it
12414
+ * beyond 30 characters.
12415
+ */
12416
+ label?: string;
12417
+ }
12418
+ /**
12419
+ * Content configuration for the Spotter starter prompts.
12420
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12421
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12422
+ *
12423
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12424
+ * the Liveboard SpotterViz surface are configured separately through
12425
+ * {@link SpotterVizConfig.customStarterPrompts}.
12426
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12427
+ * @group Embed components
12428
+ */
12429
+ export interface StarterPromptsConfig {
12430
+ /**
12431
+ * Turns the starter prompts surface on. Must be set explicitly, an
12432
+ * unset flag leaves the surface off.
12433
+ *
12434
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12435
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12436
+ * @default false
12437
+ */
12438
+ enable?: boolean;
12439
+ /** Basic Search category configuration. */
12440
+ quick?: StarterPromptCategory;
12441
+ /** Deep Analysis category configuration. */
12442
+ research?: StarterPromptCategory;
12443
+ /** Data Literacy category configuration. */
12444
+ previewData?: StarterPreviewDataCategory;
12445
+ /**
12446
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12447
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12448
+ */
12449
+ liveboard?: StarterPromptQuestion[];
12450
+ }
12024
12451
  /**
12025
12452
  * Configuration for customizing Spotter chat UI branding.
12026
12453
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -12061,11 +12488,83 @@ export interface SpotterChatViewConfig {
12061
12488
  /**
12062
12489
  * Enables starter prompts in the Spotter chat interface.
12063
12490
  *
12064
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12491
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12492
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12493
+ *
12494
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12065
12495
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
12066
12496
  * @default false
12067
12497
  */
12068
12498
  enableStarterPrompts?: boolean;
12499
+ /**
12500
+ * Customizes the labels and questions of the Spotter starter prompts.
12501
+ * Individual pills are hidden or shown with `hiddenActions` /
12502
+ * `visibleActions` using `Action.QuickSearchPill`,
12503
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12504
+ *
12505
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12506
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12507
+ * @example
12508
+ * ```js
12509
+ * const embed = new SpotterEmbed('#tsEmbed', {
12510
+ * worksheetId: 'worksheet-id',
12511
+ * hiddenActions: [Action.DeepAnalysisPill],
12512
+ * spotterChatConfig: {
12513
+ * starterPrompts: {
12514
+ * enable: true,
12515
+ * quick: {
12516
+ * label: 'Quick questions',
12517
+ * questions: [
12518
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12519
+ * ],
12520
+ * },
12521
+ * previewData: { label: 'Explore your data' },
12522
+ * },
12523
+ * },
12524
+ * })
12525
+ * ```
12526
+ */
12527
+ starterPrompts?: StarterPromptsConfig;
12528
+ /**
12529
+ * Opens the Spotter chat panel when the Liveboard loads.
12530
+ *
12531
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12532
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12533
+ * @default true
12534
+ * @example
12535
+ * ```js
12536
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12537
+ * liveboardId: 'liveboard-id',
12538
+ * spotterChatConfig: {
12539
+ * openSpotterOnLiveboardByDefault: false,
12540
+ * },
12541
+ * })
12542
+ * ```
12543
+ */
12544
+ openSpotterOnLiveboardByDefault?: boolean;
12545
+ }
12546
+ /**
12547
+ * Configuration for the Spotter Analyst experience.
12548
+ * Can be used in SpotterEmbed.
12549
+ * @group Embed components
12550
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12551
+ * @example
12552
+ * ```js
12553
+ * const embed = new SpotterEmbed('#tsEmbed', {
12554
+ * ... //other embed view config
12555
+ * spotterAnalystConfig: {
12556
+ * analystId: 'analyst-id-1234',
12557
+ * },
12558
+ * })
12559
+ * ```
12560
+ */
12561
+ export interface SpotterAnalystConfig {
12562
+ /**
12563
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12564
+ * and no "Show all".
12565
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12566
+ */
12567
+ analystId?: string;
12069
12568
  }
12070
12569
  /**
12071
12570
  * The configuration for the embedded spotterEmbed options.
@@ -12096,6 +12595,22 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
12096
12595
  * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12097
12596
  */
12098
12597
  dataSources?: string[];
12598
+ /**
12599
+ * Configuration for the Spotter Analyst experience.
12600
+ *
12601
+ * Supported embed types: `SpotterEmbed`
12602
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12603
+ * @example
12604
+ * ```js
12605
+ * const embed = new SpotterEmbed('#tsEmbed', {
12606
+ * ... //other embed view config
12607
+ * spotterAnalystConfig: {
12608
+ * analystId: 'analyst-id-1234',
12609
+ * },
12610
+ * })
12611
+ * ```
12612
+ */
12613
+ spotterAnalystConfig?: SpotterAnalystConfig;
12099
12614
  /**
12100
12615
  * Ability to pass a starting search query to the conversation.
12101
12616
  */
@@ -12417,6 +12932,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
12417
12932
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12418
12933
  spotterShareConversationConfig?: SpotterShareConversationConfig;
12419
12934
  visualOverridesParams?: VisualizationOverrides | null;
12935
+ starterPrompts?: StarterPromptsConfig;
12420
12936
  };
12421
12937
  }
12422
12938
  declare class SpotterEmbed extends TsEmbed {
@@ -12474,13 +12990,12 @@ export interface SpotterVizStarterPrompt {
12474
12990
  * customStarterPrompts: [
12475
12991
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
12476
12992
  * ],
12477
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12993
+ * // The options below require SDK: 1.51.0
12478
12994
  * loaderHeadline: 'Crunching the numbers...',
12479
12995
  * loaderTips: [
12480
12996
  * { label: 'Tip', text: 'try asking about revenue by region' },
12481
12997
  * { label: 'Tip', text: 'use natural language' },
12482
12998
  * ],
12483
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12484
12999
  * liveboardBrandName: 'Reports',
12485
13000
  * spotterBrandName: 'Analyst',
12486
13001
  * insightTileBrandName: 'Insight card',
@@ -12533,47 +13048,47 @@ export interface SpotterVizConfig {
12533
13048
  /**
12534
13049
  * Custom headline text shown in the SpotterViz loading state.
12535
13050
  * Replaces the default loading headline.
12536
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13051
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12537
13052
  */
12538
13053
  loaderHeadline?: string;
12539
13054
  /**
12540
13055
  * Custom tips shown in the SpotterViz loading state.
12541
13056
  * Replaces the default loading tips with the provided list.
12542
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13057
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12543
13058
  */
12544
13059
  loaderTips?: SpotterVizLoaderTip[];
12545
13060
  /**
12546
13061
  * Custom term used to replace "Liveboard" in the agent's responses.
12547
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13062
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12548
13063
  * @default ''
12549
13064
  */
12550
13065
  liveboardBrandName?: string;
12551
13066
  /**
12552
13067
  * Custom term used to replace "Spotter" in the agent's responses.
12553
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13068
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12554
13069
  * @default ''
12555
13070
  */
12556
13071
  spotterBrandName?: string;
12557
13072
  /**
12558
13073
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
12559
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13074
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12560
13075
  * @default ''
12561
13076
  */
12562
13077
  insightTileBrandName?: string;
12563
13078
  /**
12564
13079
  * Custom term used to replace "View plan" in the insight tile menu.
12565
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13080
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12566
13081
  */
12567
13082
  insightTileViewPlanLabel?: string;
12568
13083
  /**
12569
13084
  * Custom loader text shown on the insight tile.
12570
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13085
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12571
13086
  */
12572
13087
  insightTileLoaderText?: string;
12573
13088
  }
12574
13089
  /**
12575
13090
  * A single tip shown in the SpotterViz loading state.
12576
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13091
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12577
13092
  * @group Embed components
12578
13093
  */
12579
13094
  export interface SpotterVizLoaderTip {
@@ -12621,7 +13136,11 @@ export declare enum Page {
12621
13136
  /**
12622
13137
  * Collections listing page
12623
13138
  */
12624
- Collections = "collections"
13139
+ Collections = "collections",
13140
+ /**
13141
+ * Liveboard schedules listing page
13142
+ */
13143
+ LiveboardSchedules = "liveboard-schedules"
12625
13144
  }
12626
13145
  /**
12627
13146
  * Define the initial state of column custom group accordions
@@ -13007,6 +13526,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13007
13526
  * `false` fetches visualizations incrementally as
13008
13527
  * users scroll the page to view the charts and tables.
13009
13528
  *
13529
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13530
+ * {@link lazyLoadingForFullHeight} and
13531
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13532
+ * they scroll into view. Set either flag to `false` to opt out.
13533
+ *
13010
13534
  * Supported embed types: `AppEmbed`
13011
13535
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
13012
13536
  * @example
@@ -13213,11 +13737,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13213
13737
  */
13214
13738
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13215
13739
  /**
13216
- * This flag is used to enable the full height lazy load data.
13740
+ * Loads visualizations only as they scroll into the viewport, instead of
13741
+ * loading the whole full-height Liveboard at once.
13742
+ *
13743
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13744
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13745
+ * set explicitly. Set it to `false` to load every visualization upfront.
13746
+ * The flag has no effect unless `fullHeight` is enabled.
13217
13747
  *
13218
13748
  * @type {boolean}
13219
13749
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13220
- * @default false
13750
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13221
13751
  * @example
13222
13752
  * ```js
13223
13753
  * const embed = new AppEmbed('#embed-container', {
@@ -13229,27 +13759,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13229
13759
  */
13230
13760
  lazyLoadingForFullHeight?: boolean;
13231
13761
  /**
13232
- * This flag is used to enable container-aware full height lazy loading.
13762
+ * Computes the visible region of the embed against its scrollable and
13763
+ * clipping ancestors, instead of treating the browser window as the only
13764
+ * viewport, and tracks scroll and resize on those ancestors.
13233
13765
  *
13234
- * Use this when the embed is rendered inside a scrollable or clipping
13235
- * container instead of relying on the browser window as the only viewport.
13766
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13767
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13768
+ * set explicitly. Set it to `false` when the page scrolls with the window
13769
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13770
+ * tracking.
13236
13771
  *
13237
13772
  * @type {boolean}
13238
- * @default false
13773
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13239
13774
  * @hidden
13240
13775
  */
13241
13776
  enableScrollableContainerLazyLoading?: boolean;
13242
13777
  /**
13243
- * The margin to be used for lazy loading.
13778
+ * How far outside the viewport a visualization starts loading, when
13779
+ * {@link lazyLoadingForFullHeight} is enabled.
13244
13780
  *
13245
13781
  * For example, if the margin is set to '10px',
13246
13782
  * the visualization will be loaded 10px before its top edge is visible in the
13247
13783
  * viewport.
13248
13784
  *
13249
- * The format is similar to CSS margin.
13785
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13786
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13787
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13788
+ * `auto`; an invalid value is logged and ignored.
13789
+ *
13790
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13791
+ * visualization ahead of the scroll position, so a chart has usually
13792
+ * finished loading by the time it scrolls into view. Use a smaller margin
13793
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13794
+ * only once it is actually visible.
13250
13795
  *
13251
13796
  * @type {string}
13252
13797
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13798
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13253
13799
  * @example
13254
13800
  * ```js
13255
13801
  * const embed = new AppEmbed('#embed-container', {
@@ -13424,13 +13970,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13424
13970
  * inputChatPlaceholder: 'Ask a question...',
13425
13971
  * hideStarterPrompts: false,
13426
13972
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13427
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13973
+ * // The options below require SDK: 1.51.0
13428
13974
  * loaderHeadline: 'Crunching the numbers...',
13429
13975
  * loaderTips: [
13430
13976
  * { label: 'Tip', text: 'try asking about revenue by region' },
13431
13977
  * { label: 'Tip', text: 'use natural language' },
13432
13978
  * ],
13433
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13434
13979
  * liveboardBrandName: 'Reports',
13435
13980
  * spotterBrandName: 'Analyst',
13436
13981
  * insightTileBrandName: 'Insight card',
@@ -13526,6 +14071,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13526
14071
  spotterSidebarConfig?: SpotterSidebarViewConfig;
13527
14072
  spotterVizConfig?: SpotterVizConfig;
13528
14073
  spotterShareConversationConfig?: SpotterShareConversationConfig;
14074
+ starterPrompts?: StarterPromptsConfig;
13529
14075
  };
13530
14076
  }
13531
14077
  declare class AppEmbed extends V1Embed {
@@ -13620,6 +14166,7 @@ declare class AppEmbed extends V1Embed {
13620
14166
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
13621
14167
  embedParams?: {
13622
14168
  spotterVizConfig?: SpotterVizConfig;
14169
+ starterPrompts?: StarterPromptsConfig;
13623
14170
  };
13624
14171
  }
13625
14172
  /**
@@ -13638,6 +14185,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13638
14185
  * Setting `fullHeight` to `false` fetches visualizations
13639
14186
  * incrementally as users scroll the page to view the charts and tables.
13640
14187
  *
14188
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14189
+ * {@link lazyLoadingForFullHeight} and
14190
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14191
+ * they scroll into view. Set either flag to `false` to opt out.
14192
+ *
13641
14193
  *
13642
14194
  * Supported embed types: `LiveboardEmbed`
13643
14195
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -14030,11 +14582,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14030
14582
  */
14031
14583
  isGranularXLSXCSVSchedulesEnabled?: boolean;
14032
14584
  /**
14033
- * This flag is used to enable the full height lazy load data.
14585
+ * Loads visualizations only as they scroll into the viewport, instead of
14586
+ * loading the whole full-height Liveboard at once.
14587
+ *
14588
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14589
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14590
+ * set explicitly. Set it to `false` to load every visualization upfront.
14591
+ * The flag has no effect unless `fullHeight` is enabled.
14034
14592
  *
14035
14593
  * @type {boolean}
14036
14594
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14037
- * @default false
14595
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14038
14596
  * @example
14039
14597
  * ```js
14040
14598
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14046,26 +14604,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14046
14604
  */
14047
14605
  lazyLoadingForFullHeight?: boolean;
14048
14606
  /**
14049
- * This flag is used to enable container-aware full height lazy loading.
14607
+ * Computes the visible region of the embed against its scrollable and
14608
+ * clipping ancestors, instead of treating the browser window as the only
14609
+ * viewport, and tracks scroll and resize on those ancestors.
14050
14610
  *
14051
- * Use this when the embed is rendered inside a scrollable or clipping
14052
- * container instead of relying on the browser window as the only viewport.
14611
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14612
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14613
+ * set explicitly. Set it to `false` when the page scrolls with the window
14614
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14615
+ * tracking.
14053
14616
  *
14054
14617
  * @type {boolean}
14055
- * @default false
14618
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14056
14619
  */
14057
14620
  enableScrollableContainerLazyLoading?: boolean;
14058
14621
  /**
14059
- * The margin to be used for lazy loading.
14622
+ * How far outside the viewport a visualization starts loading, when
14623
+ * {@link lazyLoadingForFullHeight} is enabled.
14060
14624
  *
14061
14625
  * For example, if the margin is set to '10px',
14062
14626
  * the visualization will be loaded 10px before its top edge is visible in the
14063
14627
  * viewport.
14064
14628
  *
14065
- * The format is similar to CSS margin.
14629
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14630
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14631
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14632
+ * `auto`; an invalid value is logged and ignored.
14633
+ *
14634
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14635
+ * visualization ahead of the scroll position, so a chart has usually
14636
+ * finished loading by the time it scrolls into view. Use a smaller margin
14637
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14638
+ * only once it is actually visible.
14066
14639
  *
14067
14640
  * @type {string}
14068
14641
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14642
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14069
14643
  * @example
14070
14644
  * ```js
14071
14645
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14169,13 +14743,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14169
14743
  * inputChatPlaceholder: 'Ask a question...',
14170
14744
  * hideStarterPrompts: false,
14171
14745
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
14172
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14746
+ * // The options below require SDK: 1.51.0
14173
14747
  * loaderHeadline: 'Crunching the numbers...',
14174
14748
  * loaderTips: [
14175
14749
  * { label: 'Tip', text: 'try asking about revenue by region' },
14176
14750
  * { label: 'Tip', text: 'use natural language' },
14177
14751
  * ],
14178
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14179
14752
  * liveboardBrandName: 'Reports',
14180
14753
  * spotterBrandName: 'Analyst',
14181
14754
  * insightTileBrandName: 'Insight card',
@@ -14271,7 +14844,7 @@ declare class LiveboardEmbed extends V1Embed {
14271
14844
  * @param {any} data The payload to send with the message
14272
14845
  * @returns A promise that resolves with the response from the embedded app
14273
14846
  */
14274
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14847
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14275
14848
  /**
14276
14849
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14277
14850
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -14349,7 +14922,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
14349
14922
  /**
14350
14923
  * Initializes the Visual Embed SDK globally and perform
14351
14924
  * authentication if applicable. This function needs to be called before any ThoughtSpot
14352
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
14925
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
14353
14926
  * to actually embed. That is handled internally.
14354
14927
  * @param embedConfig The configuration object containing ThoughtSpot host,
14355
14928
  * authentication mechanism and so on.
@@ -14480,35 +15053,69 @@ export declare function uploadMixpanelEvent(eventId: string, eventProps?: {}): v
14480
15053
  export declare const resetCachedAuthToken: () => void;
14481
15054
  export interface SearchProps extends EmbedProps, SearchViewConfig {
14482
15055
  }
14483
- export interface PreRenderProps {
15056
+ /**
15057
+ * The PreRendered components require a preRender id. It can be supplied either
15058
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
15059
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
15060
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
15061
+ *
15062
+ * Use PreRender to render the embed in the background and then
15063
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
15064
+ * @example
15065
+ * ```tsx
15066
+ * // Preferred, SDK: 1.52.0 and later.
15067
+ * function LandingPageComponent() {
15068
+ * return <PreRenderedLiveboardEmbed
15069
+ * preRenderConfig={{ preRenderId: "someId" }}
15070
+ * liveboardId="libId"
15071
+ * />
15072
+ * }
15073
+ *
15074
+ * function MyComponent() {
15075
+ * return <LiveboardEmbed
15076
+ * preRenderConfig={{ preRenderId: "someId" }}
15077
+ * liveboardId="libId"
15078
+ * />
15079
+ * }
15080
+ * ```
15081
+ * @example
15082
+ * ```tsx
15083
+ * // Deprecated top-level preRenderId, still supported.
15084
+ * function LandingPageComponent() {
15085
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
15086
+ * }
15087
+ * ```
15088
+ */
15089
+ export type PreRenderProps = {
14484
15090
  /**
14485
15091
  * PreRender id to be used for PreRendering the embed.
14486
- * Use PreRender to render the embed in the background and then
14487
- * show or hide the rendered embed using showPreRender or hidePreRender respectively.
14488
- *
14489
- * Use PreRendered react component for pre rendering embed components.
14490
15092
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
14491
- * @example
14492
- * ```js
14493
- * const embed = new LiveboardEmbed('#embed', {
14494
- * ... // other liveboard view config
14495
- * preRenderId: "preRenderId-123"
14496
- * });
14497
- * embed.showPreRender();
14498
- * ```
14499
- * @example
14500
- * ```tsx
14501
- * function LandingPageComponent() {
14502
- * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
14503
- * }
14504
- * ```
14505
- * function MyComponent() {
14506
- * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
14507
- * }
14508
- * ```
15093
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
14509
15094
  */
14510
15095
  preRenderId: string;
14511
- }
15096
+ /**
15097
+ * Configuration for the pre-render wrapper element.
15098
+ * See {@link PreRenderConfig} for available options.
15099
+ * @version SDK: 1.52.0
15100
+ */
15101
+ preRenderConfig?: PreRenderConfig;
15102
+ } | {
15103
+ /**
15104
+ * PreRender id to be used for PreRendering the embed.
15105
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
15106
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
15107
+ */
15108
+ preRenderId?: string;
15109
+ /**
15110
+ * Configuration for the pre-render wrapper element. `preRenderId` is
15111
+ * required here when the top-level `preRenderId` prop is not passed.
15112
+ * See {@link PreRenderConfig} for available options.
15113
+ * @version SDK: 1.52.0
15114
+ */
15115
+ preRenderConfig: PreRenderConfig & {
15116
+ preRenderId: string;
15117
+ };
15118
+ };
14512
15119
  /**
14513
15120
  * React component for Search Embed.
14514
15121
  * @example
@@ -14522,7 +15129,7 @@ export interface PreRenderProps {
14522
15129
  * ```
14523
15130
  */
14524
15131
  declare const SearchEmbed$1: React$1.ForwardRefExoticComponent<SearchProps & React$1.RefAttributes<SearchEmbed>>;
14525
- export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<SearchProps & PreRenderProps & React$1.RefAttributes<SearchEmbed>>;
15132
+ export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<(SearchProps & PreRenderProps) & React$1.RefAttributes<SearchEmbed>>;
14526
15133
  export interface AppProps extends EmbedProps, AppViewConfig {
14527
15134
  }
14528
15135
  /**
@@ -14557,7 +15164,7 @@ declare const AppEmbed$1: React$1.ForwardRefExoticComponent<AppProps & React$1.R
14557
15164
  * }
14558
15165
  * ```
14559
15166
  */
14560
- export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<AppProps & PreRenderProps & React$1.RefAttributes<AppEmbed>>;
15167
+ export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<(AppProps & PreRenderProps) & React$1.RefAttributes<AppEmbed>>;
14561
15168
  export interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
14562
15169
  }
14563
15170
  /**
@@ -14596,7 +15203,7 @@ declare const LiveboardEmbed$1: React$1.ForwardRefExoticComponent<LiveboardProps
14596
15203
  * }
14597
15204
  * ```
14598
15205
  */
14599
- export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
15206
+ export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
14600
15207
  export interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
14601
15208
  }
14602
15209
  /**
@@ -14630,7 +15237,7 @@ declare const SearchBarEmbed$1: React$1.ForwardRefExoticComponent<SearchBarEmbed
14630
15237
  * }
14631
15238
  * ```
14632
15239
  */
14633
- export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React$1.RefAttributes<SearchBarEmbed>>;
15240
+ export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<(SearchBarEmbedProps & PreRenderProps) & React$1.RefAttributes<SearchBarEmbed>>;
14634
15241
  export interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
14635
15242
  }
14636
15243
  export interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
@@ -14723,7 +15330,7 @@ export declare const SpotterMessage: React$1.ForwardRefExoticComponent<{
14723
15330
  * }
14724
15331
  * ```
14725
15332
  */
14726
- export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<SpotterEmbedProps & PreRenderProps & React$1.RefAttributes<SpotterEmbed>>;
15333
+ export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<(SpotterEmbedProps & PreRenderProps) & React$1.RefAttributes<SpotterEmbed>>;
14727
15334
  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;
14728
15335
  /**
14729
15336
  * Get a reference to the embed component to trigger events on the component.
@@ -14733,7 +15340,7 @@ export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof L
14733
15340
  * const ref = useEmbedRef();
14734
15341
  * useEffect(() => {
14735
15342
  * ref.current.trigger(
14736
- * EmbedEvent.UpdateRuntimeFilter,
15343
+ * HostEvent.UpdateRuntimeFilters,
14737
15344
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
14738
15345
  * }, [])
14739
15346
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />