@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +27 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +43 -12
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +29 -3
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +253 -1
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +171 -1
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +4 -2
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +125 -0
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +3 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +36 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  27. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/liveboard.d.ts +40 -13
  31. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  32. package/cjs/src/embed/liveboard.js +25 -4
  33. package/cjs/src/embed/liveboard.js.map +1 -1
  34. package/cjs/src/embed/liveboard.spec.js +349 -2
  35. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  36. package/cjs/src/embed/search.spec.js +28 -0
  37. package/cjs/src/embed/search.spec.js.map +1 -1
  38. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  39. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  40. package/cjs/src/embed/spotter-utils.js +15 -1
  41. package/cjs/src/embed/spotter-utils.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.spec.js +68 -0
  43. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  44. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  45. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  46. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  47. package/cjs/src/embed/ts-embed.d.ts +97 -9
  48. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  49. package/cjs/src/embed/ts-embed.js +76 -35
  50. package/cjs/src/embed/ts-embed.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.spec.js +537 -3
  52. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  53. package/cjs/src/index.d.ts +3 -3
  54. package/cjs/src/index.d.ts.map +1 -1
  55. package/cjs/src/index.js +3 -2
  56. package/cjs/src/index.js.map +1 -1
  57. package/cjs/src/react/all-types-export.d.ts +1 -1
  58. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  59. package/cjs/src/react/all-types-export.js +2 -1
  60. package/cjs/src/react/all-types-export.js.map +1 -1
  61. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  62. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  63. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  64. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  65. package/cjs/src/react/index.d.ts +66 -32
  66. package/cjs/src/react/index.d.ts.map +1 -1
  67. package/cjs/src/react/index.js +5 -3
  68. package/cjs/src/react/index.js.map +1 -1
  69. package/cjs/src/react/index.spec.js +101 -0
  70. package/cjs/src/react/index.spec.js.map +1 -1
  71. package/cjs/src/types.d.ts +330 -18
  72. package/cjs/src/types.d.ts.map +1 -1
  73. package/cjs/src/types.js +182 -12
  74. package/cjs/src/types.js.map +1 -1
  75. package/cjs/src/utils.d.ts +5 -0
  76. package/cjs/src/utils.d.ts.map +1 -1
  77. package/cjs/src/utils.js +19 -1
  78. package/cjs/src/utils.js.map +1 -1
  79. package/cjs/src/utils.spec.js +37 -0
  80. package/cjs/src/utils.spec.js.map +1 -1
  81. package/dist/{index-aBzH5ZwF.js → index-D8_Zs-Nr.js} +1 -1
  82. package/dist/src/config.d.ts +1 -0
  83. package/dist/src/config.d.ts.map +1 -1
  84. package/dist/src/css-variables.d.ts +27 -0
  85. package/dist/src/css-variables.d.ts.map +1 -1
  86. package/dist/src/embed/app.d.ts +43 -12
  87. package/dist/src/embed/app.d.ts.map +1 -1
  88. package/dist/src/embed/base.d.ts +1 -1
  89. package/dist/src/embed/conversation.d.ts +171 -1
  90. package/dist/src/embed/conversation.d.ts.map +1 -1
  91. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  92. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +40 -13
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +8 -1
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  97. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  98. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  99. package/dist/src/embed/ts-embed.d.ts +97 -9
  100. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  101. package/dist/src/index.d.ts +3 -3
  102. package/dist/src/index.d.ts.map +1 -1
  103. package/dist/src/react/all-types-export.d.ts +1 -1
  104. package/dist/src/react/all-types-export.d.ts.map +1 -1
  105. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  106. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  107. package/dist/src/react/index.d.ts +66 -32
  108. package/dist/src/react/index.d.ts.map +1 -1
  109. package/dist/src/types.d.ts +330 -18
  110. package/dist/src/types.d.ts.map +1 -1
  111. package/dist/src/utils.d.ts +5 -0
  112. package/dist/src/utils.d.ts.map +1 -1
  113. package/dist/tsembed-react.es.js +354 -64
  114. package/dist/tsembed-react.js +353 -63
  115. package/dist/tsembed.es.js +414 -126
  116. package/dist/tsembed.js +416 -128
  117. package/dist/visual-embed-sdk-react-full.d.ts +777 -90
  118. package/dist/visual-embed-sdk-react.d.ts +773 -89
  119. package/dist/visual-embed-sdk.d.ts +713 -60
  120. package/lib/package.json +1 -1
  121. package/lib/src/config.d.ts +1 -0
  122. package/lib/src/config.d.ts.map +1 -1
  123. package/lib/src/config.js +1 -0
  124. package/lib/src/config.js.map +1 -1
  125. package/lib/src/css-variables.d.ts +27 -0
  126. package/lib/src/css-variables.d.ts.map +1 -1
  127. package/lib/src/embed/app.d.ts +43 -12
  128. package/lib/src/embed/app.d.ts.map +1 -1
  129. package/lib/src/embed/app.js +30 -4
  130. package/lib/src/embed/app.js.map +1 -1
  131. package/lib/src/embed/app.spec.js +253 -1
  132. package/lib/src/embed/app.spec.js.map +1 -1
  133. package/lib/src/embed/base.d.ts +1 -1
  134. package/lib/src/embed/base.js +1 -1
  135. package/lib/src/embed/conversation.d.ts +171 -1
  136. package/lib/src/embed/conversation.d.ts.map +1 -1
  137. package/lib/src/embed/conversation.js +5 -3
  138. package/lib/src/embed/conversation.js.map +1 -1
  139. package/lib/src/embed/conversation.spec.js +125 -0
  140. package/lib/src/embed/conversation.spec.js.map +1 -1
  141. package/lib/src/embed/events.spec.js +3 -0
  142. package/lib/src/embed/events.spec.js.map +1 -1
  143. package/lib/src/embed/host-events.spec.js +36 -0
  144. package/lib/src/embed/host-events.spec.js.map +1 -1
  145. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  146. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  147. package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  148. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  149. package/lib/src/embed/liveboard.d.ts +40 -13
  150. package/lib/src/embed/liveboard.d.ts.map +1 -1
  151. package/lib/src/embed/liveboard.js +25 -4
  152. package/lib/src/embed/liveboard.js.map +1 -1
  153. package/lib/src/embed/liveboard.spec.js +349 -2
  154. package/lib/src/embed/liveboard.spec.js.map +1 -1
  155. package/lib/src/embed/search.spec.js +28 -0
  156. package/lib/src/embed/search.spec.js.map +1 -1
  157. package/lib/src/embed/spotter-utils.d.ts +8 -1
  158. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  159. package/lib/src/embed/spotter-utils.js +13 -0
  160. package/lib/src/embed/spotter-utils.js.map +1 -1
  161. package/lib/src/embed/spotter-utils.spec.js +69 -1
  162. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  163. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  164. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  165. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  166. package/lib/src/embed/ts-embed.d.ts +97 -9
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +77 -36
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.js +537 -3
  171. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  172. package/lib/src/index.d.ts +3 -3
  173. package/lib/src/index.d.ts.map +1 -1
  174. package/lib/src/index.js +2 -2
  175. package/lib/src/index.js.map +1 -1
  176. package/lib/src/react/all-types-export.d.ts +1 -1
  177. package/lib/src/react/all-types-export.d.ts.map +1 -1
  178. package/lib/src/react/all-types-export.js +1 -1
  179. package/lib/src/react/all-types-export.js.map +1 -1
  180. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  181. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  182. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  183. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  184. package/lib/src/react/index.d.ts +66 -32
  185. package/lib/src/react/index.d.ts.map +1 -1
  186. package/lib/src/react/index.js +5 -3
  187. package/lib/src/react/index.js.map +1 -1
  188. package/lib/src/react/index.spec.js +102 -1
  189. package/lib/src/react/index.spec.js.map +1 -1
  190. package/lib/src/types.d.ts +330 -18
  191. package/lib/src/types.d.ts.map +1 -1
  192. package/lib/src/types.js +182 -12
  193. package/lib/src/types.js.map +1 -1
  194. package/lib/src/utils.d.ts +5 -0
  195. package/lib/src/utils.d.ts.map +1 -1
  196. package/lib/src/utils.js +17 -0
  197. package/lib/src/utils.js.map +1 -1
  198. package/lib/src/utils.spec.js +38 -1
  199. package/lib/src/utils.spec.js.map +1 -1
  200. package/lib/src/visual-embed-sdk.d.ts +713 -60
  201. package/package.json +1 -1
  202. package/src/config.ts +1 -0
  203. package/src/css-variables.ts +32 -0
  204. package/src/embed/app.spec.ts +335 -1
  205. package/src/embed/app.ts +71 -13
  206. package/src/embed/base.ts +1 -1
  207. package/src/embed/conversation.spec.ts +136 -0
  208. package/src/embed/conversation.ts +181 -3
  209. package/src/embed/events.spec.ts +4 -0
  210. package/src/embed/host-events.spec.ts +48 -0
  211. package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
  212. package/src/embed/hostEventClient/host-event-client.ts +2 -2
  213. package/src/embed/liveboard.spec.ts +457 -2
  214. package/src/embed/liveboard.ts +74 -15
  215. package/src/embed/search.spec.ts +31 -0
  216. package/src/embed/spotter-utils.spec.ts +72 -0
  217. package/src/embed/spotter-utils.ts +21 -1
  218. package/src/embed/spotter-viz-utils.ts +9 -10
  219. package/src/embed/ts-embed.spec.ts +699 -3
  220. package/src/embed/ts-embed.ts +91 -41
  221. package/src/index.ts +43 -2
  222. package/src/react/all-types-export.parity.spec.ts +208 -0
  223. package/src/react/all-types-export.ts +22 -0
  224. package/src/react/index.spec.tsx +158 -0
  225. package/src/react/index.tsx +70 -33
  226. package/src/types.ts +329 -16
  227. package/src/utils.spec.ts +49 -0
  228. package/src/utils.ts +16 -0
@@ -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
  /**
@@ -10932,7 +11267,87 @@ declare class TsEmbed {
10932
11267
  * @param query
10933
11268
  */
10934
11269
  protected getEmbedBasePath(query: string): string;
10935
- protected getUpdateEmbedParamsObject(): Promise<Record<any, any>>;
11270
+ protected getUpdateEmbedParamsObject(): Promise<{
11271
+ customisations: CustomisationsInterface;
11272
+ authToken: string;
11273
+ runtimeFilterParams: string;
11274
+ runtimeParameterParams: string;
11275
+ hiddenHomepageModules: HomepageModule[];
11276
+ reorderedHomepageModules: string[];
11277
+ hostConfig: Record<string, any>;
11278
+ hiddenHomeLeftNavItems: string[];
11279
+ customVariablesForThirdPartyTools: Record<string, any>;
11280
+ hiddenListColumns: ListPageColumns[];
11281
+ customActions: CustomAction[];
11282
+ interceptTimeout: number;
11283
+ interceptUrls: string[];
11284
+ embedExpiryInAuthToken: boolean;
11285
+ shouldBypassPayloadValidation?: boolean;
11286
+ useHostEventsV2?: boolean;
11287
+ layoutConfig?: LayoutConfig;
11288
+ frameParams?: FrameParams;
11289
+ theme?: string;
11290
+ styleSheet__unstable?: string;
11291
+ disabledActions?: Action[];
11292
+ disabledActionReason?: string;
11293
+ hiddenActions?: Action[];
11294
+ visibleActions?: Action[];
11295
+ locale?: string;
11296
+ additionalFlags?: {
11297
+ [key: string]: string | number | boolean;
11298
+ };
11299
+ customizations?: CustomisationsInterface;
11300
+ insertAsSibling?: boolean;
11301
+ usePrerenderedIfAvailable?: boolean;
11302
+ preRenderId?: string;
11303
+ doNotTrackPreRenderSize?: boolean;
11304
+ preRenderContainer?: string | HTMLElement;
11305
+ preRenderConfig?: PreRenderConfig;
11306
+ enableV2Shell_experimental?: boolean;
11307
+ embedComponentType?: string;
11308
+ exposeTranslationIDs?: boolean;
11309
+ disableRedirectionLinksInNewTab?: boolean;
11310
+ overrideOrgId?: number;
11311
+ overrideHistoryState?: boolean;
11312
+ linkOverride?: boolean;
11313
+ enableLinkOverridesV2?: boolean;
11314
+ primaryAction?: string;
11315
+ insertInToSlide?: boolean;
11316
+ showAlerts?: boolean;
11317
+ refreshAuthTokenOnNearExpiry?: boolean;
11318
+ isOnBeforeGetVizDataInterceptEnabled?: boolean;
11319
+ runtimeFilters?: RuntimeFilter[];
11320
+ runtimeParameters?: RuntimeParameter[];
11321
+ contextMenuTrigger?: ContextMenuTriggerOptions;
11322
+ excludeRuntimeFiltersfromURL?: boolean;
11323
+ excludeRuntimeParametersfromURL?: boolean;
11324
+ collapseSearchBar?: boolean;
11325
+ dataPanelV2?: boolean;
11326
+ enableCustomColumnGroups?: boolean;
11327
+ isThisPeriodInDateFiltersEnabled?: boolean;
11328
+ hideLiveboardHeader?: boolean;
11329
+ showLiveboardTitle?: boolean;
11330
+ showLiveboardDescription?: boolean;
11331
+ isLiveboardHeaderSticky?: boolean;
11332
+ enable2ColumnLayout?: boolean;
11333
+ isLiveboardAlwaysOn12ColLayout?: boolean;
11334
+ isLiveboardCompactHeaderEnabled?: boolean;
11335
+ showLiveboardVerifiedBadge?: boolean;
11336
+ hideIrrelevantChipsInLiveboardTabs?: boolean;
11337
+ showLiveboardReverifyBanner?: boolean;
11338
+ enableAskSage?: boolean;
11339
+ coverAndFilterOptionInPDF?: boolean;
11340
+ liveboardGutter?: number;
11341
+ isCentralizedLiveboardFilterUXEnabled?: boolean;
11342
+ isScopedLiveboardFilteringEnabled?: boolean;
11343
+ isLinkParametersEnabled?: boolean;
11344
+ isEnhancedFilterInteractivityEnabled?: boolean;
11345
+ showMaskedFilterChip?: boolean;
11346
+ isLiveboardMasterpiecesEnabled?: boolean;
11347
+ newChartsLibrary?: boolean;
11348
+ visibleTabs?: string[];
11349
+ hiddenTabs?: string[];
11350
+ }>;
10936
11351
  /**
10937
11352
  * Common query params set for all the embed modes.
10938
11353
  * @param queryParams
@@ -10951,6 +11366,12 @@ declare class TsEmbed {
10951
11366
  protected getEmbedParamsObject(): Record<any, any>;
10952
11367
  protected getRootIframeSrc(): string;
10953
11368
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11369
+ /**
11370
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11371
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11372
+ * backward compatibility.
11373
+ */
11374
+ protected getPreRenderConfig(): PreRenderConfig;
10954
11375
  /**
10955
11376
  * Returns true if this embed instance is configured for pre-rendering.
10956
11377
  */
@@ -10989,12 +11410,14 @@ declare class TsEmbed {
10989
11410
  * fresh element; an element passed directly cannot be re-resolved.
10990
11411
  */
10991
11412
  private resolvePreRenderContainerTarget;
11413
+ private inheritPreRenderContainer;
11414
+ private getCustomPreRenderContainer;
10992
11415
  /**
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.
11416
+ * Makes the resolved container a positioning context for the absolutely
11417
+ * positioned wrapper, stashing the original inline `position` on the element
11418
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11419
+ * on the element rather than per-instance lets the override be reverted even
11420
+ * when embeds share the same container.
10998
11421
  */
10999
11422
  private applyPreRenderContainerPositioning;
11000
11423
  /**
@@ -11142,7 +11565,7 @@ declare class TsEmbed {
11142
11565
  * ```
11143
11566
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11144
11567
  */
11145
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11568
+ 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
11569
  /**
11147
11570
  * Triggers an event to the embedded app, skipping the UI flow.
11148
11571
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11998,6 +12421,87 @@ export interface SpotterShareConversationConfig {
11998
12421
  */
11999
12422
  spotterSharedConversationExitLabel?: string;
12000
12423
  }
12424
+ /**
12425
+ * A single starter prompt question shown under a category pill.
12426
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12427
+ * @group Embed components
12428
+ */
12429
+ export interface StarterPromptQuestion {
12430
+ /**
12431
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12432
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12433
+ */
12434
+ label?: string;
12435
+ /**
12436
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12437
+ * 300 characters.
12438
+ */
12439
+ prompt: string;
12440
+ }
12441
+ /**
12442
+ * Configuration for a starter prompt category with questions
12443
+ * (`quick` and `research`).
12444
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12445
+ * @group Embed components
12446
+ */
12447
+ export interface StarterPromptCategory {
12448
+ /**
12449
+ * Overrides the default category pill label. ThoughtSpot truncates it
12450
+ * beyond 30 characters.
12451
+ */
12452
+ label?: string;
12453
+ /**
12454
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12455
+ * and drops any entry without a `prompt`.
12456
+ */
12457
+ questions?: StarterPromptQuestion[];
12458
+ }
12459
+ /**
12460
+ * Configuration for the Data Literacy starter prompt category.
12461
+ * Only the label is customizable; the prompt text comes from the backend.
12462
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12463
+ * @group Embed components
12464
+ */
12465
+ export interface StarterPreviewDataCategory {
12466
+ /**
12467
+ * Overrides the default category pill label. ThoughtSpot truncates it
12468
+ * beyond 30 characters.
12469
+ */
12470
+ label?: string;
12471
+ }
12472
+ /**
12473
+ * Content configuration for the Spotter starter prompts.
12474
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12475
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12476
+ *
12477
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12478
+ * the Liveboard SpotterViz surface are configured separately through
12479
+ * {@link SpotterVizConfig.customStarterPrompts}.
12480
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12481
+ * @group Embed components
12482
+ */
12483
+ export interface StarterPromptsConfig {
12484
+ /**
12485
+ * Turns the starter prompts surface on. Must be set explicitly, an
12486
+ * unset flag leaves the surface off.
12487
+ *
12488
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12489
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12490
+ * @default false
12491
+ */
12492
+ enable?: boolean;
12493
+ /** Basic Search category configuration. */
12494
+ quick?: StarterPromptCategory;
12495
+ /** Deep Analysis category configuration. */
12496
+ research?: StarterPromptCategory;
12497
+ /** Data Literacy category configuration. */
12498
+ previewData?: StarterPreviewDataCategory;
12499
+ /**
12500
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12501
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12502
+ */
12503
+ liveboard?: StarterPromptQuestion[];
12504
+ }
12001
12505
  /**
12002
12506
  * Configuration for customizing Spotter chat UI branding.
12003
12507
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -12038,11 +12542,83 @@ export interface SpotterChatViewConfig {
12038
12542
  /**
12039
12543
  * Enables starter prompts in the Spotter chat interface.
12040
12544
  *
12041
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12545
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12546
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12547
+ *
12548
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12042
12549
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
12043
12550
  * @default false
12044
12551
  */
12045
12552
  enableStarterPrompts?: boolean;
12553
+ /**
12554
+ * Customizes the labels and questions of the Spotter starter prompts.
12555
+ * Individual pills are hidden or shown with `hiddenActions` /
12556
+ * `visibleActions` using `Action.QuickSearchPill`,
12557
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12558
+ *
12559
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12560
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12561
+ * @example
12562
+ * ```js
12563
+ * const embed = new SpotterEmbed('#tsEmbed', {
12564
+ * worksheetId: 'worksheet-id',
12565
+ * hiddenActions: [Action.DeepAnalysisPill],
12566
+ * spotterChatConfig: {
12567
+ * starterPrompts: {
12568
+ * enable: true,
12569
+ * quick: {
12570
+ * label: 'Quick questions',
12571
+ * questions: [
12572
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12573
+ * ],
12574
+ * },
12575
+ * previewData: { label: 'Explore your data' },
12576
+ * },
12577
+ * },
12578
+ * })
12579
+ * ```
12580
+ */
12581
+ starterPrompts?: StarterPromptsConfig;
12582
+ /**
12583
+ * Opens the Spotter chat panel when the Liveboard loads.
12584
+ *
12585
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12586
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12587
+ * @default true
12588
+ * @example
12589
+ * ```js
12590
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12591
+ * liveboardId: 'liveboard-id',
12592
+ * spotterChatConfig: {
12593
+ * openSpotterOnLiveboardByDefault: false,
12594
+ * },
12595
+ * })
12596
+ * ```
12597
+ */
12598
+ openSpotterOnLiveboardByDefault?: boolean;
12599
+ }
12600
+ /**
12601
+ * Configuration for the Spotter Analyst experience.
12602
+ * Can be used in SpotterEmbed.
12603
+ * @group Embed components
12604
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12605
+ * @example
12606
+ * ```js
12607
+ * const embed = new SpotterEmbed('#tsEmbed', {
12608
+ * ... //other embed view config
12609
+ * spotterAnalystConfig: {
12610
+ * analystId: 'analyst-id-1234',
12611
+ * },
12612
+ * })
12613
+ * ```
12614
+ */
12615
+ export interface SpotterAnalystConfig {
12616
+ /**
12617
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12618
+ * and no "Show all".
12619
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12620
+ */
12621
+ analystId?: string;
12046
12622
  }
12047
12623
  /**
12048
12624
  * The configuration for the embedded spotterEmbed options.
@@ -12073,6 +12649,22 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
12073
12649
  * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12074
12650
  */
12075
12651
  dataSources?: string[];
12652
+ /**
12653
+ * Configuration for the Spotter Analyst experience.
12654
+ *
12655
+ * Supported embed types: `SpotterEmbed`
12656
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12657
+ * @example
12658
+ * ```js
12659
+ * const embed = new SpotterEmbed('#tsEmbed', {
12660
+ * ... //other embed view config
12661
+ * spotterAnalystConfig: {
12662
+ * analystId: 'analyst-id-1234',
12663
+ * },
12664
+ * })
12665
+ * ```
12666
+ */
12667
+ spotterAnalystConfig?: SpotterAnalystConfig;
12076
12668
  /**
12077
12669
  * Ability to pass a starting search query to the conversation.
12078
12670
  */
@@ -12394,6 +12986,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
12394
12986
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12395
12987
  spotterShareConversationConfig?: SpotterShareConversationConfig;
12396
12988
  visualOverridesParams?: VisualizationOverrides | null;
12989
+ starterPrompts?: StarterPromptsConfig;
12397
12990
  };
12398
12991
  }
12399
12992
  declare class SpotterEmbed extends TsEmbed {
@@ -12451,13 +13044,12 @@ export interface SpotterVizStarterPrompt {
12451
13044
  * customStarterPrompts: [
12452
13045
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
12453
13046
  * ],
12454
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13047
+ * // The options below require SDK: 1.51.0
12455
13048
  * loaderHeadline: 'Crunching the numbers...',
12456
13049
  * loaderTips: [
12457
13050
  * { label: 'Tip', text: 'try asking about revenue by region' },
12458
13051
  * { label: 'Tip', text: 'use natural language' },
12459
13052
  * ],
12460
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12461
13053
  * liveboardBrandName: 'Reports',
12462
13054
  * spotterBrandName: 'Analyst',
12463
13055
  * insightTileBrandName: 'Insight card',
@@ -12510,47 +13102,47 @@ export interface SpotterVizConfig {
12510
13102
  /**
12511
13103
  * Custom headline text shown in the SpotterViz loading state.
12512
13104
  * Replaces the default loading headline.
12513
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13105
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12514
13106
  */
12515
13107
  loaderHeadline?: string;
12516
13108
  /**
12517
13109
  * Custom tips shown in the SpotterViz loading state.
12518
13110
  * Replaces the default loading tips with the provided list.
12519
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13111
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12520
13112
  */
12521
13113
  loaderTips?: SpotterVizLoaderTip[];
12522
13114
  /**
12523
13115
  * Custom term used to replace "Liveboard" in the agent's responses.
12524
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13116
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12525
13117
  * @default ''
12526
13118
  */
12527
13119
  liveboardBrandName?: string;
12528
13120
  /**
12529
13121
  * Custom term used to replace "Spotter" in the agent's responses.
12530
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13122
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12531
13123
  * @default ''
12532
13124
  */
12533
13125
  spotterBrandName?: string;
12534
13126
  /**
12535
13127
  * 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
13128
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12537
13129
  * @default ''
12538
13130
  */
12539
13131
  insightTileBrandName?: string;
12540
13132
  /**
12541
13133
  * Custom term used to replace "View plan" in the insight tile menu.
12542
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13134
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12543
13135
  */
12544
13136
  insightTileViewPlanLabel?: string;
12545
13137
  /**
12546
13138
  * Custom loader text shown on the insight tile.
12547
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13139
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12548
13140
  */
12549
13141
  insightTileLoaderText?: string;
12550
13142
  }
12551
13143
  /**
12552
13144
  * A single tip shown in the SpotterViz loading state.
12553
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13145
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12554
13146
  * @group Embed components
12555
13147
  */
12556
13148
  export interface SpotterVizLoaderTip {
@@ -12598,7 +13190,11 @@ export declare enum Page {
12598
13190
  /**
12599
13191
  * Collections listing page
12600
13192
  */
12601
- Collections = "collections"
13193
+ Collections = "collections",
13194
+ /**
13195
+ * Liveboard schedules listing page
13196
+ */
13197
+ LiveboardSchedules = "liveboard-schedules"
12602
13198
  }
12603
13199
  declare enum DataPanelCustomColumnGroupsAccordionState$1 {
12604
13200
  /**
@@ -12980,6 +13576,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12980
13576
  * `false` fetches visualizations incrementally as
12981
13577
  * users scroll the page to view the charts and tables.
12982
13578
  *
13579
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13580
+ * {@link lazyLoadingForFullHeight} and
13581
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13582
+ * they scroll into view. Set either flag to `false` to opt out.
13583
+ *
12983
13584
  * Supported embed types: `AppEmbed`
12984
13585
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12985
13586
  * @example
@@ -13186,11 +13787,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13186
13787
  */
13187
13788
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13188
13789
  /**
13189
- * This flag is used to enable the full height lazy load data.
13790
+ * Loads visualizations only as they scroll into the viewport, instead of
13791
+ * loading the whole full-height Liveboard at once.
13792
+ *
13793
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13794
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13795
+ * set explicitly. Set it to `false` to load every visualization upfront.
13796
+ * The flag has no effect unless `fullHeight` is enabled.
13190
13797
  *
13191
13798
  * @type {boolean}
13192
13799
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13193
- * @default false
13800
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13194
13801
  * @example
13195
13802
  * ```js
13196
13803
  * const embed = new AppEmbed('#embed-container', {
@@ -13202,27 +13809,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13202
13809
  */
13203
13810
  lazyLoadingForFullHeight?: boolean;
13204
13811
  /**
13205
- * This flag is used to enable container-aware full height lazy loading.
13812
+ * Computes the visible region of the embed against its scrollable and
13813
+ * clipping ancestors, instead of treating the browser window as the only
13814
+ * viewport, and tracks scroll and resize on those ancestors.
13206
13815
  *
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.
13816
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13817
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13818
+ * set explicitly. Set it to `false` when the page scrolls with the window
13819
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13820
+ * tracking.
13209
13821
  *
13210
13822
  * @type {boolean}
13211
- * @default false
13823
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13212
13824
  * @hidden
13213
13825
  */
13214
13826
  enableScrollableContainerLazyLoading?: boolean;
13215
13827
  /**
13216
- * The margin to be used for lazy loading.
13828
+ * How far outside the viewport a visualization starts loading, when
13829
+ * {@link lazyLoadingForFullHeight} is enabled.
13217
13830
  *
13218
13831
  * For example, if the margin is set to '10px',
13219
13832
  * the visualization will be loaded 10px before its top edge is visible in the
13220
13833
  * viewport.
13221
13834
  *
13222
- * The format is similar to CSS margin.
13835
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13836
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13837
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13838
+ * `auto`; an invalid value is logged and ignored.
13839
+ *
13840
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13841
+ * visualization ahead of the scroll position, so a chart has usually
13842
+ * finished loading by the time it scrolls into view. Use a smaller margin
13843
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13844
+ * only once it is actually visible.
13223
13845
  *
13224
13846
  * @type {string}
13225
13847
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13848
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13226
13849
  * @example
13227
13850
  * ```js
13228
13851
  * const embed = new AppEmbed('#embed-container', {
@@ -13397,13 +14020,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13397
14020
  * inputChatPlaceholder: 'Ask a question...',
13398
14021
  * hideStarterPrompts: false,
13399
14022
  * 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
14023
+ * // The options below require SDK: 1.51.0
13401
14024
  * loaderHeadline: 'Crunching the numbers...',
13402
14025
  * loaderTips: [
13403
14026
  * { label: 'Tip', text: 'try asking about revenue by region' },
13404
14027
  * { label: 'Tip', text: 'use natural language' },
13405
14028
  * ],
13406
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13407
14029
  * liveboardBrandName: 'Reports',
13408
14030
  * spotterBrandName: 'Analyst',
13409
14031
  * insightTileBrandName: 'Insight card',
@@ -13499,6 +14121,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13499
14121
  spotterSidebarConfig?: SpotterSidebarViewConfig;
13500
14122
  spotterVizConfig?: SpotterVizConfig;
13501
14123
  spotterShareConversationConfig?: SpotterShareConversationConfig;
14124
+ starterPrompts?: StarterPromptsConfig;
13502
14125
  };
13503
14126
  }
13504
14127
  declare class AppEmbed extends V1Embed {
@@ -13593,6 +14216,7 @@ declare class AppEmbed extends V1Embed {
13593
14216
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
13594
14217
  embedParams?: {
13595
14218
  spotterVizConfig?: SpotterVizConfig;
14219
+ starterPrompts?: StarterPromptsConfig;
13596
14220
  };
13597
14221
  }
13598
14222
  /**
@@ -13611,6 +14235,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13611
14235
  * Setting `fullHeight` to `false` fetches visualizations
13612
14236
  * incrementally as users scroll the page to view the charts and tables.
13613
14237
  *
14238
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14239
+ * {@link lazyLoadingForFullHeight} and
14240
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14241
+ * they scroll into view. Set either flag to `false` to opt out.
14242
+ *
13614
14243
  *
13615
14244
  * Supported embed types: `LiveboardEmbed`
13616
14245
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -14003,11 +14632,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14003
14632
  */
14004
14633
  isGranularXLSXCSVSchedulesEnabled?: boolean;
14005
14634
  /**
14006
- * This flag is used to enable the full height lazy load data.
14635
+ * Loads visualizations only as they scroll into the viewport, instead of
14636
+ * loading the whole full-height Liveboard at once.
14637
+ *
14638
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14639
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14640
+ * set explicitly. Set it to `false` to load every visualization upfront.
14641
+ * The flag has no effect unless `fullHeight` is enabled.
14007
14642
  *
14008
14643
  * @type {boolean}
14009
14644
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14010
- * @default false
14645
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14011
14646
  * @example
14012
14647
  * ```js
14013
14648
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14019,26 +14654,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14019
14654
  */
14020
14655
  lazyLoadingForFullHeight?: boolean;
14021
14656
  /**
14022
- * This flag is used to enable container-aware full height lazy loading.
14657
+ * Computes the visible region of the embed against its scrollable and
14658
+ * clipping ancestors, instead of treating the browser window as the only
14659
+ * viewport, and tracks scroll and resize on those ancestors.
14023
14660
  *
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.
14661
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14662
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14663
+ * set explicitly. Set it to `false` when the page scrolls with the window
14664
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14665
+ * tracking.
14026
14666
  *
14027
14667
  * @type {boolean}
14028
- * @default false
14668
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
14029
14669
  */
14030
14670
  enableScrollableContainerLazyLoading?: boolean;
14031
14671
  /**
14032
- * The margin to be used for lazy loading.
14672
+ * How far outside the viewport a visualization starts loading, when
14673
+ * {@link lazyLoadingForFullHeight} is enabled.
14033
14674
  *
14034
14675
  * For example, if the margin is set to '10px',
14035
14676
  * the visualization will be loaded 10px before its top edge is visible in the
14036
14677
  * viewport.
14037
14678
  *
14038
- * The format is similar to CSS margin.
14679
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14680
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14681
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14682
+ * `auto`; an invalid value is logged and ignored.
14683
+ *
14684
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14685
+ * visualization ahead of the scroll position, so a chart has usually
14686
+ * finished loading by the time it scrolls into view. Use a smaller margin
14687
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14688
+ * only once it is actually visible.
14039
14689
  *
14040
14690
  * @type {string}
14041
14691
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14692
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14042
14693
  * @example
14043
14694
  * ```js
14044
14695
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -14142,13 +14793,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14142
14793
  * inputChatPlaceholder: 'Ask a question...',
14143
14794
  * hideStarterPrompts: false,
14144
14795
  * 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
14796
+ * // The options below require SDK: 1.51.0
14146
14797
  * loaderHeadline: 'Crunching the numbers...',
14147
14798
  * loaderTips: [
14148
14799
  * { label: 'Tip', text: 'try asking about revenue by region' },
14149
14800
  * { label: 'Tip', text: 'use natural language' },
14150
14801
  * ],
14151
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14152
14802
  * liveboardBrandName: 'Reports',
14153
14803
  * spotterBrandName: 'Analyst',
14154
14804
  * insightTileBrandName: 'Insight card',
@@ -14244,7 +14894,7 @@ declare class LiveboardEmbed extends V1Embed {
14244
14894
  * @param {any} data The payload to send with the message
14245
14895
  * @returns A promise that resolves with the response from the embedded app
14246
14896
  */
14247
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14897
+ 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
14898
  /**
14249
14899
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14250
14900
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -14327,35 +14977,69 @@ export type SessionInfo = {
14327
14977
  export declare function getSessionInfo(): Promise<SessionInfo>;
14328
14978
  export interface SearchProps extends EmbedProps, SearchViewConfig {
14329
14979
  }
14330
- export interface PreRenderProps {
14980
+ /**
14981
+ * The PreRendered components require a preRender id. It can be supplied either
14982
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
14983
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
14984
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
14985
+ *
14986
+ * Use PreRender to render the embed in the background and then
14987
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
14988
+ * @example
14989
+ * ```tsx
14990
+ * // Preferred, SDK: 1.52.0 and later.
14991
+ * function LandingPageComponent() {
14992
+ * return <PreRenderedLiveboardEmbed
14993
+ * preRenderConfig={{ preRenderId: "someId" }}
14994
+ * liveboardId="libId"
14995
+ * />
14996
+ * }
14997
+ *
14998
+ * function MyComponent() {
14999
+ * return <LiveboardEmbed
15000
+ * preRenderConfig={{ preRenderId: "someId" }}
15001
+ * liveboardId="libId"
15002
+ * />
15003
+ * }
15004
+ * ```
15005
+ * @example
15006
+ * ```tsx
15007
+ * // Deprecated top-level preRenderId, still supported.
15008
+ * function LandingPageComponent() {
15009
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
15010
+ * }
15011
+ * ```
15012
+ */
15013
+ export type PreRenderProps = {
14331
15014
  /**
14332
15015
  * 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
15016
  * @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
- * ```
15017
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
14356
15018
  */
14357
15019
  preRenderId: string;
14358
- }
15020
+ /**
15021
+ * Configuration for the pre-render wrapper element.
15022
+ * See {@link PreRenderConfig} for available options.
15023
+ * @version SDK: 1.52.0
15024
+ */
15025
+ preRenderConfig?: PreRenderConfig;
15026
+ } | {
15027
+ /**
15028
+ * PreRender id to be used for PreRendering the embed.
15029
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
15030
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
15031
+ */
15032
+ preRenderId?: string;
15033
+ /**
15034
+ * Configuration for the pre-render wrapper element. `preRenderId` is
15035
+ * required here when the top-level `preRenderId` prop is not passed.
15036
+ * See {@link PreRenderConfig} for available options.
15037
+ * @version SDK: 1.52.0
15038
+ */
15039
+ preRenderConfig: PreRenderConfig & {
15040
+ preRenderId: string;
15041
+ };
15042
+ };
14359
15043
  /**
14360
15044
  * React component for Search Embed.
14361
15045
  * @example
@@ -14369,7 +15053,7 @@ export interface PreRenderProps {
14369
15053
  * ```
14370
15054
  */
14371
15055
  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>>;
15056
+ export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<(SearchProps & PreRenderProps) & React$1.RefAttributes<SearchEmbed>>;
14373
15057
  export interface AppProps extends EmbedProps, AppViewConfig {
14374
15058
  }
14375
15059
  /**
@@ -14404,7 +15088,7 @@ declare const AppEmbed$1: React$1.ForwardRefExoticComponent<AppProps & React$1.R
14404
15088
  * }
14405
15089
  * ```
14406
15090
  */
14407
- export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<AppProps & PreRenderProps & React$1.RefAttributes<AppEmbed>>;
15091
+ export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<(AppProps & PreRenderProps) & React$1.RefAttributes<AppEmbed>>;
14408
15092
  export interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
14409
15093
  }
14410
15094
  /**
@@ -14444,8 +15128,8 @@ export declare const PinboardEmbed: React$1.ForwardRefExoticComponent<LiveboardP
14444
15128
  * }
14445
15129
  * ```
14446
15130
  */
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>>;
15131
+ export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
15132
+ export declare const PreRenderedPinboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
14449
15133
  export interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
14450
15134
  }
14451
15135
  /**
@@ -14479,7 +15163,7 @@ declare const SearchBarEmbed$1: React$1.ForwardRefExoticComponent<SearchBarEmbed
14479
15163
  * }
14480
15164
  * ```
14481
15165
  */
14482
- export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React$1.RefAttributes<SearchBarEmbed>>;
15166
+ export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<(SearchBarEmbedProps & PreRenderProps) & React$1.RefAttributes<SearchBarEmbed>>;
14483
15167
  export interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
14484
15168
  }
14485
15169
  export interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
@@ -14572,7 +15256,7 @@ export declare const SpotterMessage: React$1.ForwardRefExoticComponent<{
14572
15256
  * }
14573
15257
  * ```
14574
15258
  */
14575
- export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<SpotterEmbedProps & PreRenderProps & React$1.RefAttributes<SpotterEmbed>>;
15259
+ export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<(SpotterEmbedProps & PreRenderProps) & React$1.RefAttributes<SpotterEmbed>>;
14576
15260
  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
15261
  /**
14578
15262
  * Get a reference to the embed component to trigger events on the component.
@@ -14582,7 +15266,7 @@ export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof L
14582
15266
  * const ref = useEmbedRef();
14583
15267
  * useEffect(() => {
14584
15268
  * ref.current.trigger(
14585
- * EmbedEvent.UpdateRuntimeFilter,
15269
+ * HostEvent.UpdateRuntimeFilters,
14586
15270
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
14587
15271
  * }, [])
14588
15272
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />