@thoughtspot/visual-embed-sdk 1.50.0 → 1.51.0-test

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 (285) 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 +122 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +176 -24
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +86 -38
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +672 -150
  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 +401 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +32 -16
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +346 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +638 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +187 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +11 -1
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +236 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
  37. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  38. package/cjs/src/embed/hostEventClient/utils.js +32 -2
  39. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  40. package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
  41. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  42. package/cjs/src/embed/liveboard.d.ts +81 -13
  43. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  44. package/cjs/src/embed/liveboard.js +50 -9
  45. package/cjs/src/embed/liveboard.js.map +1 -1
  46. package/cjs/src/embed/liveboard.spec.js +432 -4
  47. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  49. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-utils.js +28 -1
  51. package/cjs/src/embed/spotter-utils.js.map +1 -1
  52. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  53. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  54. package/cjs/src/embed/spotter-viz-utils.d.ts +37 -4
  55. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  56. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  57. package/cjs/src/embed/spotter-viz-utils.spec.js +17 -0
  58. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
  59. package/cjs/src/embed/ts-embed.d.ts +16 -8
  60. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  61. package/cjs/src/embed/ts-embed.js +96 -37
  62. package/cjs/src/embed/ts-embed.js.map +1 -1
  63. package/cjs/src/embed/ts-embed.spec.js +683 -3
  64. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  65. package/cjs/src/errors.d.ts +1 -0
  66. package/cjs/src/errors.d.ts.map +1 -1
  67. package/cjs/src/errors.js +1 -0
  68. package/cjs/src/errors.js.map +1 -1
  69. package/cjs/src/index.d.ts +3 -3
  70. package/cjs/src/index.d.ts.map +1 -1
  71. package/cjs/src/index.js +4 -2
  72. package/cjs/src/index.js.map +1 -1
  73. package/cjs/src/mixpanel-service.d.ts +4 -0
  74. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  75. package/cjs/src/mixpanel-service.js +4 -0
  76. package/cjs/src/mixpanel-service.js.map +1 -1
  77. package/cjs/src/react/all-types-export.d.ts +1 -1
  78. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  79. package/cjs/src/react/all-types-export.js +2 -1
  80. package/cjs/src/react/all-types-export.js.map +1 -1
  81. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  82. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  83. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  84. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  85. package/cjs/src/react/index.d.ts +66 -32
  86. package/cjs/src/react/index.d.ts.map +1 -1
  87. package/cjs/src/react/index.js +5 -3
  88. package/cjs/src/react/index.js.map +1 -1
  89. package/cjs/src/react/index.spec.js +101 -0
  90. package/cjs/src/react/index.spec.js.map +1 -1
  91. package/cjs/src/react/util.spec.js +251 -0
  92. package/cjs/src/react/util.spec.js.map +1 -1
  93. package/cjs/src/types.d.ts +902 -28
  94. package/cjs/src/types.d.ts.map +1 -1
  95. package/cjs/src/types.js +701 -14
  96. package/cjs/src/types.js.map +1 -1
  97. package/cjs/src/utils/processData.spec.js +93 -0
  98. package/cjs/src/utils/processData.spec.js.map +1 -1
  99. package/cjs/src/utils/processTrigger.spec.js +61 -0
  100. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  101. package/cjs/src/utils.spec.js +4 -0
  102. package/cjs/src/utils.spec.js.map +1 -1
  103. package/dist/{index-B5xoN6Cp.js → index-Bivg-mDx.js} +1 -1
  104. package/dist/src/config.d.ts +1 -0
  105. package/dist/src/config.d.ts.map +1 -1
  106. package/dist/src/css-variables.d.ts +122 -0
  107. package/dist/src/css-variables.d.ts.map +1 -1
  108. package/dist/src/embed/app.d.ts +176 -24
  109. package/dist/src/embed/app.d.ts.map +1 -1
  110. package/dist/src/embed/base.d.ts +1 -1
  111. package/dist/src/embed/conversation.d.ts +401 -2
  112. package/dist/src/embed/conversation.d.ts.map +1 -1
  113. package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
  114. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  115. package/dist/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  116. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  117. package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
  118. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  119. package/dist/src/embed/liveboard.d.ts +81 -13
  120. package/dist/src/embed/liveboard.d.ts.map +1 -1
  121. package/dist/src/embed/spotter-utils.d.ts +15 -1
  122. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  123. package/dist/src/embed/spotter-viz-utils.d.ts +37 -4
  124. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  125. package/dist/src/embed/ts-embed.d.ts +16 -8
  126. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  127. package/dist/src/errors.d.ts +1 -0
  128. package/dist/src/errors.d.ts.map +1 -1
  129. package/dist/src/index.d.ts +3 -3
  130. package/dist/src/index.d.ts.map +1 -1
  131. package/dist/src/mixpanel-service.d.ts +4 -0
  132. package/dist/src/mixpanel-service.d.ts.map +1 -1
  133. package/dist/src/react/all-types-export.d.ts +1 -1
  134. package/dist/src/react/all-types-export.d.ts.map +1 -1
  135. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  136. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  137. package/dist/src/react/index.d.ts +66 -32
  138. package/dist/src/react/index.d.ts.map +1 -1
  139. package/dist/src/types.d.ts +902 -28
  140. package/dist/src/types.d.ts.map +1 -1
  141. package/dist/tsembed-react.es.js +1269 -206
  142. package/dist/tsembed-react.js +1268 -205
  143. package/dist/tsembed.es.js +1364 -304
  144. package/dist/tsembed.js +1362 -302
  145. package/dist/visual-embed-sdk-react-full.d.ts +1867 -157
  146. package/dist/visual-embed-sdk-react.d.ts +1872 -161
  147. package/dist/visual-embed-sdk.d.ts +1815 -127
  148. package/lib/package.json +1 -1
  149. package/lib/src/config.d.ts +1 -0
  150. package/lib/src/config.d.ts.map +1 -1
  151. package/lib/src/config.js +1 -0
  152. package/lib/src/config.js.map +1 -1
  153. package/lib/src/css-variables.d.ts +122 -0
  154. package/lib/src/css-variables.d.ts.map +1 -1
  155. package/lib/src/embed/app.d.ts +176 -24
  156. package/lib/src/embed/app.d.ts.map +1 -1
  157. package/lib/src/embed/app.js +87 -39
  158. package/lib/src/embed/app.js.map +1 -1
  159. package/lib/src/embed/app.spec.js +673 -151
  160. package/lib/src/embed/app.spec.js.map +1 -1
  161. package/lib/src/embed/base.d.ts +1 -1
  162. package/lib/src/embed/base.js +1 -1
  163. package/lib/src/embed/conversation.d.ts +401 -2
  164. package/lib/src/embed/conversation.d.ts.map +1 -1
  165. package/lib/src/embed/conversation.js +33 -17
  166. package/lib/src/embed/conversation.js.map +1 -1
  167. package/lib/src/embed/conversation.spec.js +347 -18
  168. package/lib/src/embed/conversation.spec.js.map +1 -1
  169. package/lib/src/embed/events.spec.js +638 -0
  170. package/lib/src/embed/events.spec.js.map +1 -1
  171. package/lib/src/embed/host-events.spec.js +188 -1
  172. package/lib/src/embed/host-events.spec.js.map +1 -1
  173. package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
  174. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  175. package/lib/src/embed/hostEventClient/contracts.js +10 -0
  176. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  177. package/lib/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  178. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  179. package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
  180. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  181. package/lib/src/embed/hostEventClient/host-event-client.spec.js +236 -0
  182. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  183. package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
  184. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  185. package/lib/src/embed/hostEventClient/utils.js +28 -1
  186. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  187. package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
  188. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  189. package/lib/src/embed/liveboard.d.ts +81 -13
  190. package/lib/src/embed/liveboard.d.ts.map +1 -1
  191. package/lib/src/embed/liveboard.js +50 -9
  192. package/lib/src/embed/liveboard.js.map +1 -1
  193. package/lib/src/embed/liveboard.spec.js +432 -4
  194. package/lib/src/embed/liveboard.spec.js.map +1 -1
  195. package/lib/src/embed/spotter-utils.d.ts +15 -1
  196. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  197. package/lib/src/embed/spotter-utils.js +25 -0
  198. package/lib/src/embed/spotter-utils.js.map +1 -1
  199. package/lib/src/embed/spotter-utils.spec.js +130 -1
  200. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  201. package/lib/src/embed/spotter-viz-utils.d.ts +37 -4
  202. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  203. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  204. package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
  205. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
  206. package/lib/src/embed/ts-embed.d.ts +16 -8
  207. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  208. package/lib/src/embed/ts-embed.js +96 -37
  209. package/lib/src/embed/ts-embed.js.map +1 -1
  210. package/lib/src/embed/ts-embed.spec.js +683 -3
  211. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  212. package/lib/src/errors.d.ts +1 -0
  213. package/lib/src/errors.d.ts.map +1 -1
  214. package/lib/src/errors.js +1 -0
  215. package/lib/src/errors.js.map +1 -1
  216. package/lib/src/index.d.ts +3 -3
  217. package/lib/src/index.d.ts.map +1 -1
  218. package/lib/src/index.js +3 -3
  219. package/lib/src/index.js.map +1 -1
  220. package/lib/src/mixpanel-service.d.ts +4 -0
  221. package/lib/src/mixpanel-service.d.ts.map +1 -1
  222. package/lib/src/mixpanel-service.js +4 -0
  223. package/lib/src/mixpanel-service.js.map +1 -1
  224. package/lib/src/react/all-types-export.d.ts +1 -1
  225. package/lib/src/react/all-types-export.d.ts.map +1 -1
  226. package/lib/src/react/all-types-export.js +1 -1
  227. package/lib/src/react/all-types-export.js.map +1 -1
  228. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  229. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  230. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  231. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  232. package/lib/src/react/index.d.ts +66 -32
  233. package/lib/src/react/index.d.ts.map +1 -1
  234. package/lib/src/react/index.js +5 -3
  235. package/lib/src/react/index.js.map +1 -1
  236. package/lib/src/react/index.spec.js +102 -1
  237. package/lib/src/react/index.spec.js.map +1 -1
  238. package/lib/src/react/util.spec.js +251 -0
  239. package/lib/src/react/util.spec.js.map +1 -1
  240. package/lib/src/types.d.ts +902 -28
  241. package/lib/src/types.d.ts.map +1 -1
  242. package/lib/src/types.js +701 -14
  243. package/lib/src/types.js.map +1 -1
  244. package/lib/src/utils/processData.spec.js +93 -0
  245. package/lib/src/utils/processData.spec.js.map +1 -1
  246. package/lib/src/utils/processTrigger.spec.js +61 -0
  247. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  248. package/lib/src/utils.spec.js +4 -0
  249. package/lib/src/utils.spec.js.map +1 -1
  250. package/lib/src/visual-embed-sdk.d.ts +1815 -127
  251. package/package.json +1 -1
  252. package/src/config.ts +1 -0
  253. package/src/css-variables.ts +150 -0
  254. package/src/embed/app.spec.ts +877 -196
  255. package/src/embed/app.ts +276 -75
  256. package/src/embed/base.ts +1 -1
  257. package/src/embed/conversation.spec.ts +411 -21
  258. package/src/embed/conversation.ts +441 -18
  259. package/src/embed/events.spec.ts +761 -1
  260. package/src/embed/host-events.spec.ts +242 -0
  261. package/src/embed/hostEventClient/contracts.ts +57 -14
  262. package/src/embed/hostEventClient/host-event-client.spec.ts +372 -0
  263. package/src/embed/hostEventClient/host-event-client.ts +18 -2
  264. package/src/embed/hostEventClient/utils.spec.ts +204 -0
  265. package/src/embed/hostEventClient/utils.ts +37 -10
  266. package/src/embed/liveboard.spec.ts +565 -4
  267. package/src/embed/liveboard.ts +155 -28
  268. package/src/embed/spotter-utils.spec.ts +140 -1
  269. package/src/embed/spotter-utils.ts +36 -1
  270. package/src/embed/spotter-viz-utils.spec.ts +17 -0
  271. package/src/embed/spotter-viz-utils.ts +37 -4
  272. package/src/embed/ts-embed.spec.ts +885 -3
  273. package/src/embed/ts-embed.ts +111 -39
  274. package/src/errors.ts +1 -0
  275. package/src/index.ts +45 -2
  276. package/src/mixpanel-service.ts +4 -0
  277. package/src/react/all-types-export.parity.spec.ts +208 -0
  278. package/src/react/all-types-export.ts +22 -0
  279. package/src/react/index.spec.tsx +158 -0
  280. package/src/react/index.tsx +70 -33
  281. package/src/react/util.spec.tsx +255 -0
  282. package/src/types.ts +904 -24
  283. package/src/utils/processData.spec.ts +97 -0
  284. package/src/utils/processTrigger.spec.ts +91 -0
  285. package/src/utils.spec.ts +5 -0
package/src/types.ts CHANGED
@@ -176,7 +176,9 @@ export enum AuthType {
176
176
  }
177
177
  /**
178
178
  *
179
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
179
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
180
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
181
+ * V4 (Focused) home page experiences.
180
182
  *
181
183
  */
182
184
 
@@ -244,6 +246,13 @@ export enum HomeLeftNavItem {
244
246
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
245
247
  */
246
248
  Favorites = 'favorites',
249
+ /**
250
+ * The *Collections* menu option in
251
+ * the *Insights* left navigation panel.
252
+ * Shown when collections are enabled on the cluster.
253
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
254
+ */
255
+ Collections = 'collections',
247
256
  }
248
257
  export type DOMSelector = string | HTMLElement;
249
258
 
@@ -888,6 +897,86 @@ export interface FrameParams {
888
897
  [key: string]: string | number | boolean | undefined;
889
898
  }
890
899
 
900
+ /**
901
+ * Configuration for the pre-render wrapper element.
902
+ * All properties here mirror the top-level preRender properties on
903
+ * {@link BaseViewConfig} and take precedence over them when both are set,
904
+ * so existing top-level usage continues to work without any changes.
905
+ *
906
+ * @version SDK: 1.52.0
907
+ * @example
908
+ * ```js
909
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
910
+ * const embed = new LiveboardEmbed('#tsEmbed', {
911
+ * preRenderConfig: {
912
+ * preRenderId: 'my-liveboard',
913
+ * preRenderContainer: '#my-scroll-container',
914
+ * doNotTrackPreRenderSize: false,
915
+ * zIndex: -10,
916
+ * },
917
+ * });
918
+ * embed.preRender();
919
+ * embed.showPreRender();
920
+ * ```
921
+ */
922
+ export interface PreRenderConfig {
923
+ /**
924
+ * Pre-render ID to identify the pre-render instance.
925
+ * Takes precedence over the top-level `preRenderId` when both are set.
926
+ *
927
+ * Matches the embed warmed by `preRender()` to the one revealed by
928
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
929
+ * the same view, and give unrelated views their own or they will collide.
930
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
931
+ * and do nothing without it.
932
+ *
933
+ * @default undefined
934
+ */
935
+ preRenderId?: string;
936
+ /**
937
+ * The DOM element or CSS selector string specifying the container into
938
+ * which the pre-rendered wrapper is inserted.
939
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
940
+ *
941
+ * Set this when your app scrolls inside an element rather than the page (for
942
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
943
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
944
+ * selector string — it is re-resolved on reposition and so survives a remount,
945
+ * while a detached element reference cannot be recovered. An invalid selector is
946
+ * logged and falls back to `document.body`.
947
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
948
+ *
949
+ * @default document.body
950
+ */
951
+ preRenderContainer?: string | HTMLElement;
952
+ /**
953
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
954
+ * placeholder element.
955
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
956
+ *
957
+ * Set this only when you size the embed yourself; you then own alignment and must
958
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
959
+ * already pauses while hidden, so this is not needed to avoid work then.
960
+ *
961
+ * @default false
962
+ */
963
+ doNotTrackPreRenderSize?: boolean;
964
+ /**
965
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
966
+ * Override this when the host page's stacking context does not reach `-1000`
967
+ * and the hidden wrapper still appears above other elements.
968
+ *
969
+ * A page that creates its own stacking context — a positioned app shell, a
970
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
971
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
972
+ * see a faint panel behind your content, or clicks landing on nothing in the
973
+ * region where the embed will eventually appear.
974
+ *
975
+ * @default -1000
976
+ */
977
+ zIndex?: number;
978
+ }
979
+
891
980
  /**
892
981
  * The common configuration object for an embedded view.
893
982
  */
@@ -973,7 +1062,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
973
1062
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
974
1063
  * const embed = new <EmbedComponent>('#tsEmbed', {
975
1064
  * ... // other embed view config
976
- * hiddenActions: [Action.Download, Action.Export],
1065
+ * hiddenActions: [Action.Download, Action.ExportTML],
977
1066
  * });
978
1067
  * ```
979
1068
  * @important
@@ -995,7 +1084,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
995
1084
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
996
1085
  * const embed = new <EmbedComponent>('#tsEmbed', {
997
1086
  * ... // other embed view config
998
- * visibleActions: [Action.Download, Action.Export],
1087
+ * visibleActions: [Action.Download, Action.ExportTML],
999
1088
  * });
1000
1089
  * ```
1001
1090
  */
@@ -1078,6 +1167,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1078
1167
  *
1079
1168
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
1080
1169
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
1170
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
1081
1171
  * @example
1082
1172
  * ```js
1083
1173
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -1098,6 +1188,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1098
1188
  * @type {boolean}
1099
1189
  * @default false
1100
1190
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
1191
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
1101
1192
  * @example
1102
1193
  * ```js
1103
1194
  * // Disable tracking PreRender size in the configuration
@@ -1139,6 +1230,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1139
1230
  *
1140
1231
  * @type {string | HTMLElement}
1141
1232
  * @version SDK: 1.49.2 | ThoughtSpot: *
1233
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
1142
1234
  * @example
1143
1235
  * ```js
1144
1236
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -1149,6 +1241,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1149
1241
  * ```
1150
1242
  */
1151
1243
  preRenderContainer?: string | HTMLElement;
1244
+ /**
1245
+ * Configuration for the pre-render wrapper element.
1246
+ * All properties here mirror the top-level preRender properties on
1247
+ * `BaseViewConfig` and take precedence over them when both are set,
1248
+ * so existing top-level usage continues to work without any changes.
1249
+ * See {@link PreRenderConfig} for available options.
1250
+ *
1251
+ * @version SDK: 1.52.0
1252
+ * @example
1253
+ * ```js
1254
+ * const embed = new LiveboardEmbed('#tsEmbed', {
1255
+ * preRenderConfig: {
1256
+ * preRenderId: 'my-liveboard',
1257
+ * zIndex: -10,
1258
+ * },
1259
+ * });
1260
+ * embed.preRender();
1261
+ * embed.showPreRender();
1262
+ * ```
1263
+ */
1264
+ preRenderConfig?: PreRenderConfig;
1152
1265
  /**
1153
1266
  * Enable the V2 shell. This can provide performance benefits
1154
1267
  * due to a lighter-weight shell.
@@ -1220,6 +1333,26 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1220
1333
  * ```
1221
1334
  */
1222
1335
  overrideOrgId?: number;
1336
+ /**
1337
+ * Overrides the browser history behavior for embedding application users.
1338
+ * This parameter changes standard history navigation (pushState) into a
1339
+ * state replacement (replaceState), preventing users from getting trapped in
1340
+ * back-button loops inside the embedded iframe environment.
1341
+ * The overrideHistoryState setting is honored only if the
1342
+ * application is running within an embedded context.
1343
+ *
1344
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
1345
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1346
+ * @example
1347
+ * ```js
1348
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
1349
+ * const embed = new <EmbedComponent>('#tsEmbed', {
1350
+ * // ... other embed view config
1351
+ * overrideHistoryState: true,
1352
+ * });
1353
+ * ```
1354
+ */
1355
+ overrideHistoryState?: boolean;
1223
1356
  /**
1224
1357
  * Flag to override the *Open Link in New Tab* context
1225
1358
  * menu option.
@@ -1580,7 +1713,7 @@ export interface HomePageConfig {
1580
1713
  *
1581
1714
  * const embed = new AppEmbed('#tsEmbed', {
1582
1715
  * ... //other embed view config
1583
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
1716
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
1584
1717
  * })
1585
1718
  * ```
1586
1719
  */
@@ -1590,7 +1723,9 @@ export interface HomePageConfig {
1590
1723
  * To specify the modules, import the `HomepageModule` enum.
1591
1724
  * For example: `hiddenHomepageModules = [HomepageModule.MyLibrary]`
1592
1725
  *
1593
- * **Note**: This attribute is not supported in the classic (v1) experience.
1726
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1727
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
1728
+ * and V4 (Focused) home page experiences.
1594
1729
  *
1595
1730
  * Supported embed types: `AppEmbed`
1596
1731
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -1599,7 +1734,7 @@ export interface HomePageConfig {
1599
1734
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
1600
1735
  *
1601
1736
  * const embed = new AppEmbed('#tsEmbed', {
1602
- * ... // V2/V3 navigation and home page experience attributes
1737
+ * ... // V3 navigation and home page experience attributes
1603
1738
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
1604
1739
  * //...other embed view configuration attributes
1605
1740
  * })
@@ -1610,8 +1745,11 @@ export interface HomePageConfig {
1610
1745
  * Reorder home page modules.
1611
1746
  * To specify the modules, import the `HomepageModule` enum.
1612
1747
  * For example: `reorderedHomepageModules = [HomepageModule.MyLibrary,
1613
- * HomepageModule.Watchlist]` **Note**: This attribute is not supported in the
1614
- * classic (v1) homepage.
1748
+ * HomepageModule.Watchlist]`
1749
+ *
1750
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1751
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
1752
+ * and V4 (Focused) home page experiences.
1615
1753
  *
1616
1754
  * Supported embed types: `AppEmbed`
1617
1755
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -1620,7 +1758,7 @@ export interface HomePageConfig {
1620
1758
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
1621
1759
  *
1622
1760
  * const embed = new AppEmbed('#tsEmbed', {
1623
- * ...//V2/V3 navigation and home page experience attributes
1761
+ * ...//V3 navigation and home page experience attributes
1624
1762
  * reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
1625
1763
  * //... other embed view configuration attributes
1626
1764
  * })
@@ -1632,7 +1770,9 @@ export interface HomePageConfig {
1632
1770
  * on the home page left navigation panel.
1633
1771
  * To specify the menu items, import the `HomeLeftNavItem` enum.
1634
1772
  *
1635
- * **Note**: This attribute is not supported in the classic (v1) homepage.
1773
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1774
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
1775
+ * and V4 (Focused) home page experiences.
1636
1776
  *
1637
1777
  * Supported embed types: `AppEmbed`
1638
1778
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -1888,6 +2028,25 @@ export interface LiveboardAppEmbedViewConfig {
1888
2028
  * ```
1889
2029
  */
1890
2030
  enable2ColumnLayout?: boolean;
2031
+ /**
2032
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
2033
+ * every width, instead of switching to the two-column or single-column
2034
+ * layout as the container narrows.
2035
+ *
2036
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2037
+ * @type {boolean}
2038
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2039
+ * @default false
2040
+ * @example
2041
+ * ```js
2042
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
2043
+ * const embed = new <EmbedComponent>('#tsEmbed', {
2044
+ * ... // other embed view config
2045
+ * isLiveboardAlwaysOn12ColLayout: true,
2046
+ * })
2047
+ * ```
2048
+ */
2049
+ isLiveboardAlwaysOn12ColLayout?: boolean;
1891
2050
  /**
1892
2051
  * This flag can be used to enable the compact header in Liveboard
1893
2052
  *
@@ -1992,6 +2151,26 @@ export interface LiveboardAppEmbedViewConfig {
1992
2151
  * ```
1993
2152
  */
1994
2153
  coverAndFilterOptionInPDF?: boolean;
2154
+ /**
2155
+ * Sets the gutter space (in pixels) between the visualization tiles of
2156
+ * an embedded Liveboard grid layout and its outer layout padding.
2157
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
2158
+ * and removes the outer padding. When omitted, the gutter saved in the
2159
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
2160
+ *
2161
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2162
+ * @type {number}
2163
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2164
+ * @example
2165
+ * ```js
2166
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
2167
+ * const embed = new <EmbedComponent>('#tsEmbed', {
2168
+ * ... // other embed view config
2169
+ * liveboardGutter: 8,
2170
+ * })
2171
+ * ```
2172
+ */
2173
+ liveboardGutter?: number;
1995
2174
  /**
1996
2175
  * This flag is used to enable or disable the new centralized Liveboard filter UX
1997
2176
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -2010,6 +2189,24 @@ export interface LiveboardAppEmbedViewConfig {
2010
2189
  * ```
2011
2190
  */
2012
2191
  isCentralizedLiveboardFilterUXEnabled?: boolean;
2192
+ /**
2193
+ * This flag is used to enable or disable scoped Liveboard filtering.
2194
+ * When enabled, filters and parameters can be scoped to a group of
2195
+ * visualizations on a Liveboard, in addition to the Liveboard and
2196
+ * tab levels.
2197
+ *
2198
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2199
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2200
+ * @example
2201
+ * ```js
2202
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
2203
+ * const embed = new <EmbedComponent>('#tsEmbed', {
2204
+ * ... // other embed view config
2205
+ * isScopedLiveboardFilteringEnabled: true,
2206
+ * })
2207
+ * ```
2208
+ */
2209
+ isScopedLiveboardFilteringEnabled?: boolean;
2013
2210
  /**
2014
2211
  * This flag is used to enable or disable the link parameters in liveboard.
2015
2212
  *
@@ -2226,7 +2423,9 @@ export enum RuntimeFilterOp {
2226
2423
  * via `hiddenHomepageModules` and reordered via
2227
2424
  * `reorderedHomepageModules`.
2228
2425
  *
2229
- * **Note**: This option is not supported in the classic (v1) experience.
2426
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2427
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
2428
+ * V4 (Focused) home page experiences.
2230
2429
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
2231
2430
  */
2232
2431
 
@@ -2441,7 +2640,7 @@ export enum EmbedEvent {
2441
2640
  * @returns nonFilteredColumns - The columns that were not filtered
2442
2641
  * @example
2443
2642
  * ```js
2444
- * searchEmbed.on(EmbedEvent.DrillDown, {
2643
+ * searchEmbed.on(EmbedEvent.Drilldown, {
2445
2644
  * points: {
2446
2645
  * clickedPoint,
2447
2646
  * selectedPoints: selectedPoint
@@ -2502,7 +2701,7 @@ export enum EmbedEvent {
2502
2701
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
2503
2702
  * @example
2504
2703
  * ```js
2505
- * appEmbed.on(EmbedEvent.customAction, payload => {
2704
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
2506
2705
  * const data = payload.data;
2507
2706
  * if (data.id === 'insert Custom Action ID here') {
2508
2707
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -2770,8 +2969,8 @@ export enum EmbedEvent {
2770
2969
  *
2771
2970
  * **Note**: This event is deprecated in v1.21.0.
2772
2971
  * To fire an event when a download action is initiated on a chart or table,
2773
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
2774
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
2972
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
2973
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
2775
2974
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
2776
2975
  * @example
2777
2976
  * ```js
@@ -2821,10 +3020,10 @@ export enum EmbedEvent {
2821
3020
  * @example
2822
3021
  * ```js
2823
3022
  * //emit when action starts
2824
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
3023
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
2825
3024
  * console.log('download CSV', payload)}, {start: true })
2826
3025
  * //emit when action ends
2827
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
3026
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
2828
3027
  * console.log('download CSV', payload)})
2829
3028
  * ```
2830
3029
  */
@@ -3223,11 +3422,19 @@ export enum EmbedEvent {
3223
3422
  * Emitted when a user changes any filter on a Liveboard.
3224
3423
  * Returns filter type and name, column name and ID, and runtime
3225
3424
  * filter details.
3425
+ * The payload includes an optional `applicability` attribute indicating the
3426
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
3427
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
3428
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
3429
+ * is no `targetId`, since the filter applies to the whole Liveboard.
3430
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3431
+ * ThoughtSpot: 26.10.0.cl.
3226
3432
  * @example
3227
3433
  *
3228
3434
  * ```js
3229
3435
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
3230
3436
  * console.log('payload', payload);
3437
+ * // payload.data optionally includes applicability: { level, targetId }
3231
3438
  * })
3232
3439
  * ```
3233
3440
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -3419,9 +3626,17 @@ export enum EmbedEvent {
3419
3626
  /**
3420
3627
  * Emitted when parameter changes in an Answer
3421
3628
  * or Liveboard.
3629
+ * The payload includes an optional `applicability` attribute indicating the
3630
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
3631
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
3632
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
3633
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
3634
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3635
+ * ThoughtSpot: 26.10.0.cl.
3422
3636
  * ```js
3423
3637
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
3424
3638
  * console.log('payload', payload);
3639
+ * // payload.data optionally includes applicability: { level, targetId }
3425
3640
  * })
3426
3641
  * ```
3427
3642
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -3723,6 +3938,158 @@ export enum EmbedEvent {
3723
3938
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
3724
3939
  */
3725
3940
  SpotterConversationDeleted = 'spotterConversationDeleted',
3941
+ /**
3942
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
3943
+ * to bracket the interaction. App→host counterpart of the
3944
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
3945
+ * @example
3946
+ * ```js
3947
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
3948
+ * // payload: { convId: string }
3949
+ * })
3950
+ * ```
3951
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
3952
+ */
3953
+ SpotterShareConversationButtonHeaderClicked = 'spotterShareConversationButtonHeaderClicked',
3954
+ /**
3955
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
3956
+ * to bracket the interaction.
3957
+ * @example
3958
+ * ```js
3959
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
3960
+ * // payload: { convId: string }
3961
+ * })
3962
+ * ```
3963
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
3964
+ */
3965
+ SpotterShareConversationMenuItemSidebarClicked = 'spotterShareConversationMenuItemSidebarClicked',
3966
+ /**
3967
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
3968
+ * share created). The host builds its own link from shareId/convId + its
3969
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
3970
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
3971
+ * the save resolves.
3972
+ * @example
3973
+ * ```js
3974
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
3975
+ * // payload: { convId: string, shareId: string,
3976
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
3977
+ * })
3978
+ * ```
3979
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
3980
+ */
3981
+ SpotterConversationShared = 'spotterConversationShared',
3982
+ /**
3983
+ * Emitted when access to a shared Spotter conversation is revoked
3984
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
3985
+ * and the share is deleted entirely.
3986
+ * @example
3987
+ * ```js
3988
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
3989
+ * // payload: { convId: string, shareId: string,
3990
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
3991
+ * })
3992
+ * ```
3993
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
3994
+ */
3995
+ SpotterConversationShareRevoked = 'spotterConversationShareRevoked',
3996
+ /**
3997
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
3998
+ * view). No shareId available viewer-side.
3999
+ * @example
4000
+ * ```js
4001
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
4002
+ * // payload: { convId: string, sourceConvId: string }
4003
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
4004
+ * })
4005
+ * ```
4006
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4007
+ */
4008
+ SpotterSharedConversationViewed = 'spotterSharedConversationViewed',
4009
+ /**
4010
+ * Emitted when the user toggles the share-modal "include new messages since
4011
+ * last shared version" checkbox.
4012
+ * @example
4013
+ * ```js
4014
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
4015
+ * // payload: { convId: string, includeNewMessages: boolean }
4016
+ * })
4017
+ * ```
4018
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4019
+ */
4020
+ SpotterShareIncludeNewMessagesCheckboxToggled = 'spotterShareIncludeNewMessagesCheckboxToggled',
4021
+ /**
4022
+ * Emitted when the user dismisses the stale-snapshot info banner via its
4023
+ * cross (distinct from the include-new-messages checkbox toggle).
4024
+ * @example
4025
+ * ```js
4026
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
4027
+ * // payload: { convId: string }
4028
+ * })
4029
+ * ```
4030
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4031
+ */
4032
+ SpotterShareStaleInfoBannerDismissed = 'spotterShareStaleInfoBannerDismissed',
4033
+ /**
4034
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
4035
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
4036
+ * / `SpotterConversationShareRevoked` result events.
4037
+ * @example
4038
+ * ```js
4039
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
4040
+ * // payload: { convId: string }
4041
+ * })
4042
+ * ```
4043
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4044
+ */
4045
+ SpotterShareModalConfirmButtonClicked = 'spotterShareModalConfirmButtonClicked',
4046
+ /**
4047
+ * Emitted when the share modal is dismissed via the Cancel button.
4048
+ * @example
4049
+ * ```js
4050
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
4051
+ * // payload: { convId: string }
4052
+ * })
4053
+ * ```
4054
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4055
+ */
4056
+ SpotterShareModalCancelButtonClicked = 'spotterShareModalCancelButtonClicked',
4057
+ /**
4058
+ * Emitted when a recipient leaves the read-only shared view via the Exit
4059
+ * button.
4060
+ * @example
4061
+ * ```js
4062
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
4063
+ * // payload: { convId: string }
4064
+ * })
4065
+ * ```
4066
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4067
+ */
4068
+ SpotterSharedConversationExitButtonClicked = 'spotterSharedConversationExitButtonClicked',
4069
+ /**
4070
+ * Emitted when a Spotter conversation is pinned.
4071
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4072
+ * @example
4073
+ * ```js
4074
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
4075
+ * console.log('Conversation pinned', payload);
4076
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
4077
+ * })
4078
+ * ```
4079
+ */
4080
+ SpotterConversationPinned = 'spotterConversationPinned',
4081
+ /**
4082
+ * Emitted when a Spotter conversation is unpinned.
4083
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4084
+ * @example
4085
+ * ```js
4086
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
4087
+ * console.log('Conversation unpinned', payload);
4088
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
4089
+ * })
4090
+ * ```
4091
+ */
4092
+ SpotterConversationUnpinned = 'spotterConversationUnpinned',
3726
4093
  /**
3727
4094
  * Emitted when a Spotter conversation is selected/clicked.
3728
4095
  * @example
@@ -3736,6 +4103,31 @@ export enum EmbedEvent {
3736
4103
  */
3737
4104
  SpotterConversationSelected = 'spotterConversationSelected',
3738
4105
 
4106
+ /**
4107
+ * Emitted when the Spotter agent finishes streaming/rendering a response.
4108
+ * Includes the conversation and message identifiers so the host app can
4109
+ * fetch the full conversation history via the REST API if needed.
4110
+ *
4111
+ * The payload data has the shape `{ convId: string, messageId: string }`.
4112
+ *
4113
+ * Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
4114
+ * inside the full application).
4115
+ * @example
4116
+ * ```js
4117
+ * spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
4118
+ * console.log('Spotter response complete', payload);
4119
+ * })
4120
+ * ```
4121
+ * @example
4122
+ * ```js
4123
+ * appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
4124
+ * console.log('Spotter response complete', payload);
4125
+ * })
4126
+ * ```
4127
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
4128
+ */
4129
+ SpotterResponseComplete = 'spotterResponseComplete',
4130
+
3739
4131
  /**
3740
4132
  * @hidden
3741
4133
  * Emitted when the auth token is about to get expired and needs to be refreshed.
@@ -4101,6 +4493,7 @@ export enum HostEvent {
4101
4493
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
4102
4494
  * console.log("iFrameURL", url);
4103
4495
  * ```
4496
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
4104
4497
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
4105
4498
  */
4106
4499
  GetIframeUrl = 'GetIframeUrl',
@@ -4227,6 +4620,17 @@ export enum HostEvent {
4227
4620
  * name: string,
4228
4621
  * type: ATTRIBUTE/MEASURE,
4229
4622
  * dataType: INT64/CHAR/DATE }
4623
+ *
4624
+ * `applicability` - Optional. Scopes the filter to a specific target,
4625
+ * for example, a single Liveboard tab, so the panel for the correct
4626
+ * scoped filter is opened. Available from SDK: 1.53.0 |
4627
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
4628
+ *
4629
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
4630
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
4631
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
4632
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
4633
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
4230
4634
  * @example
4231
4635
  * ```js
4232
4636
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -4239,6 +4643,14 @@ export enum HostEvent {
4239
4643
  * ```
4240
4644
  * @example
4241
4645
  * ```js
4646
+ * // Open a filter scoped to a specific Liveboard tab
4647
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
4648
+ * column: { columnId: '<column-GUID>' },
4649
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
4650
+ * });
4651
+ * ```
4652
+ * @example
4653
+ * ```js
4242
4654
  * // Open filter from search context
4243
4655
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
4244
4656
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -4248,6 +4660,73 @@ export enum HostEvent {
4248
4660
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
4249
4661
  */
4250
4662
  OpenFilter = 'openFilter',
4663
+ /**
4664
+ * Open the add-filter modal of a Liveboard, the same dialog that the
4665
+ * *Add filter* button in the Liveboard edit header opens, so the host
4666
+ * app can start the add-filter flow from its own UI.
4667
+ *
4668
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
4669
+ * Hiding the *Add filter* button with `hiddenActions:
4670
+ * [Action.AddFilter]` does not block this event, but disabling it with
4671
+ * `disabledActions` does.
4672
+ *
4673
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
4674
+ * existing filter, this event starts the creation of a new filter.
4675
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4676
+ * @example
4677
+ * ```js
4678
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
4679
+ * ```
4680
+ */
4681
+ OpenAddFilterModal = 'openAddFilterModal',
4682
+ /**
4683
+ * Open the add-parameter panel of a Liveboard, the same panel that the
4684
+ * *Add parameter* button in the Liveboard edit header opens.
4685
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
4686
+ *
4687
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
4688
+ * Hiding the *Add parameter* button with `hiddenActions:
4689
+ * [Action.AddParameter]` does not block this event, but disabling it
4690
+ * with `disabledActions` does.
4691
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4692
+ * @example
4693
+ * ```js
4694
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
4695
+ * ```
4696
+ */
4697
+ OpenAddParameterModal = 'openAddParameterModal',
4698
+ /**
4699
+ * Open the parameter panel for a particular parameter on a Liveboard.
4700
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
4701
+ * @param - Includes the following keys:
4702
+ * - `parameter`: An object identifying the parameter to open, for
4703
+ * example, `{ parameterId: '<parameter-GUID>' }`.
4704
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
4705
+ * for example, a single Liveboard tab, so the panel for the correct
4706
+ * scoped parameter is opened. Includes the following attributes:
4707
+ *
4708
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
4709
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
4710
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
4711
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
4712
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
4713
+ * @example
4714
+ * ```js
4715
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
4716
+ * parameter: { parameterId: '<parameter-GUID>' }
4717
+ * });
4718
+ * ```
4719
+ * @example
4720
+ * ```js
4721
+ * // Open a parameter scoped to a specific group
4722
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
4723
+ * parameter: { parameterId: '<parameter-GUID>' },
4724
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
4725
+ * });
4726
+ * ```
4727
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4728
+ */
4729
+ OpenParameter = 'openParameter',
4251
4730
  /**
4252
4731
  * Add columns to the current search query.
4253
4732
  * @param - { columnIds: string[] }
@@ -4297,6 +4776,10 @@ export enum HostEvent {
4297
4776
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
4298
4777
  * data=>console.log(data))
4299
4778
  * ```
4779
+ * @returns data - Object with a `v2Content` string: the export request
4780
+ * payload for the current Liveboard.
4781
+ * @returns type - The passthrough event name,
4782
+ * `getExportRequestForCurrentPinboard`.
4300
4783
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
4301
4784
  */
4302
4785
  getExportRequestForCurrentPinboard = 'getExportRequestForCurrentPinboard',
@@ -4399,6 +4882,9 @@ export enum HostEvent {
4399
4882
  * }, ContextType.Spotter);
4400
4883
  * ```
4401
4884
  *
4885
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
4886
+ * @returns tabId - GUID of the tab within that Liveboard.
4887
+ * @returns vizId - GUID of the newly created visualization.
4402
4888
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
4403
4889
  */
4404
4890
  Pin = 'pin',
@@ -4437,13 +4923,13 @@ export enum HostEvent {
4437
4923
  * Trigger the **Manage schedule** action on an embedded Liveboard
4438
4924
  * @example
4439
4925
  * ```js
4440
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
4926
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
4441
4927
  * ```
4442
4928
  * @example
4443
4929
  * ```js
4444
4930
  * // Manage schedules from liveboard context
4445
4931
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
4446
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
4932
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
4447
4933
  * ```
4448
4934
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
4449
4935
  */
@@ -4888,6 +5374,7 @@ export enum HostEvent {
4888
5374
  * console.log(tml.answer);
4889
5375
  * });
4890
5376
  * ```
5377
+ * @returns The TML representation of the current Answer, as an object.
4891
5378
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
4892
5379
  * @important
4893
5380
  */
@@ -5312,6 +5799,14 @@ export enum HostEvent {
5312
5799
  /**
5313
5800
  * Get details of filters applied on the Liveboard.
5314
5801
  * Returns arrays containing Liveboard filter and runtime filter elements.
5802
+ * Each Liveboard filter includes an optional `applicability` attribute
5803
+ * indicating the scope of the filter. It contains a `level`
5804
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
5805
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
5806
+ * level there is no `targetId`, since the filter applies to the
5807
+ * whole Liveboard.
5808
+ * The `applicability` attribute is available from SDK: 1.53.0 |
5809
+ * ThoughtSpot: 26.10.0.cl.
5315
5810
  * @example
5316
5811
  * ```js
5317
5812
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
@@ -5324,6 +5819,8 @@ export enum HostEvent {
5324
5819
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
5325
5820
  * console.log('filters', data);
5326
5821
  * ```
5822
+ * @returns liveboardFilters - Filters applied on the Liveboard.
5823
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
5327
5824
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
5328
5825
  */
5329
5826
  GetFilters = 'getFilters',
@@ -5351,6 +5848,16 @@ export enum HostEvent {
5351
5848
  *
5352
5849
  * `type` - To update filters for date time, specify the date format type.
5353
5850
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
5851
+ *
5852
+ * `applicability` - Optional. Scopes the filter to a specific target,
5853
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
5854
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
5855
+ *
5856
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
5857
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5858
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5859
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
5860
+ * Liveboard.
5354
5861
  * @example
5355
5862
  * ```js
5356
5863
  *
@@ -5427,6 +5934,21 @@ export enum HostEvent {
5427
5934
  * }
5428
5935
  * }, ContextType.Liveboard);
5429
5936
  * ```
5937
+ * @example
5938
+ * ```js
5939
+ * // Scope the filter to a specific Liveboard tab
5940
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
5941
+ * filter: {
5942
+ * column: "item type",
5943
+ * oper: "IN",
5944
+ * values: ["bags", "shirts"],
5945
+ * applicability: {
5946
+ * level: "TAB",
5947
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
5948
+ * }
5949
+ * }
5950
+ * });
5951
+ * ```
5430
5952
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
5431
5953
  */
5432
5954
  UpdateFilters = 'updateFilters',
@@ -5448,9 +5970,37 @@ export enum HostEvent {
5448
5970
  * console.log('tabs', tabDetails);
5449
5971
  * });
5450
5972
  * ```
5973
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
5974
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
5975
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
5451
5976
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
5452
5977
  */
5453
5978
  GetTabs = 'getTabs',
5979
+ /**
5980
+ * Get group details for the current Liveboard.
5981
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
5982
+ * @example
5983
+ * ```js
5984
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
5985
+ * console.log(
5986
+ * groupDetails // GroupDetails of current Liveboard
5987
+ * );
5988
+ * })
5989
+ * ```
5990
+ * @example
5991
+ * ```js
5992
+ * // Get groups from liveboard context
5993
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5994
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
5995
+ * console.log('groups', groupDetails);
5996
+ * });
5997
+ * ```
5998
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
5999
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
6000
+ * @returns Groups - Group details, each with at least `id` and `name`.
6001
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6002
+ */
6003
+ GetGroups = 'getGroups',
5454
6004
  /**
5455
6005
  * Set the visible tabs on a Liveboard.
5456
6006
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -5522,6 +6072,9 @@ export enum HostEvent {
5522
6072
  * // Alternative direct usage (not recommended)
5523
6073
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
5524
6074
  * ```
6075
+ * @returns session - Session identifier for the Answer, for use with the
6076
+ * `AnswerService`.
6077
+ * @returns embedAnswerData - Data backing the Answer, when available.
5525
6078
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
5526
6079
  */
5527
6080
  GetAnswerSession = 'getAnswerSession',
@@ -5578,6 +6131,15 @@ export enum HostEvent {
5578
6131
  * - `name`: Name of the parameter.
5579
6132
  * - `value`: The value to set for the parameter.
5580
6133
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
6134
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
6135
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6136
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6137
+ *
6138
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
6139
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
6140
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
6141
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
6142
+ * Liveboard.
5581
6143
  *
5582
6144
  * @example
5583
6145
  * ```js
@@ -5589,6 +6151,18 @@ export enum HostEvent {
5589
6151
  * ```
5590
6152
  * @example
5591
6153
  * ```js
6154
+ * // Scope the parameter to a specific Liveboard tab
6155
+ * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
6156
+ * name: "Integer Range Param",
6157
+ * value: 10,
6158
+ * applicability: {
6159
+ * level: "TAB",
6160
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
6161
+ * }
6162
+ * }])
6163
+ * ```
6164
+ * @example
6165
+ * ```js
5592
6166
  * // Update parameters from liveboard context
5593
6167
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5594
6168
  * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
@@ -5602,6 +6176,14 @@ export enum HostEvent {
5602
6176
  UpdateParameters = 'UpdateParameters',
5603
6177
  /**
5604
6178
  * Triggers GetParameters to fetch the runtime Parameters.
6179
+ * Each parameter includes an optional `applicability` attribute
6180
+ * indicating the scope of the parameter. It contains a `level`
6181
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6182
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6183
+ * level there is no `targetId`, since the parameter applies to the
6184
+ * whole Liveboard.
6185
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6186
+ * ThoughtSpot: 26.10.0.cl.
5605
6187
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5606
6188
  * ```js
5607
6189
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
@@ -5626,12 +6208,16 @@ export enum HostEvent {
5626
6208
  * console.log('parameters', parameters);
5627
6209
  * });
5628
6210
  * ```
6211
+ * @returns parameters - Parameters currently applied on the Liveboard.
5629
6212
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
5630
6213
  */
5631
6214
  GetParameters = 'GetParameters',
5632
6215
  /**
5633
6216
  * Triggers an event to update a personalized view of a Liveboard.
5634
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
6217
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
6218
+ * which additionally accepts a `viewName`, resets to the original view when
6219
+ * called with an empty payload, and reports an error when a named view
6220
+ * cannot be found.
5635
6221
  * ```js
5636
6222
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
5637
6223
  * ```
@@ -5649,10 +6235,15 @@ export enum HostEvent {
5649
6235
  UpdatePersonalisedView = 'UpdatePersonalisedView',
5650
6236
  /**
5651
6237
  * Triggers an event to update a personalized view of a Liveboard.
6238
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
6239
+ * which additionally accepts a `viewName`, resets to the original view when
6240
+ * called with an empty payload, and reports an error when a named view
6241
+ * cannot be found.
5652
6242
  * ```js
5653
6243
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
5654
6244
  * ```
5655
6245
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
6246
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5656
6247
  */
5657
6248
  UpdatePersonalizedView = UpdatePersonalisedView,
5658
6249
  /**
@@ -5755,6 +6346,10 @@ export enum HostEvent {
5755
6346
  * description: "Generated from Spotter"
5756
6347
  * }, ContextType.Spotter);
5757
6348
  * ```
6349
+ * @returns answerId - GUID of the saved Answer.
6350
+ * @returns saveResponse - Raw response from the save operation.
6351
+ * @returns shareResponse - Raw response from the share operation, when the
6352
+ * Answer was also made discoverable.
5758
6353
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
5759
6354
  */
5760
6355
  SaveAnswer = 'saveAnswer',
@@ -5868,6 +6463,36 @@ export enum HostEvent {
5868
6463
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
5869
6464
  */
5870
6465
  ResetSpotterConversation = 'ResetSpotterConversation',
6466
+ /**
6467
+ * Opens the Spotter share-conversation modal for the given conversation.
6468
+ * `conversationId` is **mandatory** — you must pass the id of the
6469
+ * conversation to share. Also no-op when sharing is disabled
6470
+ * (enableShareConversation off) or when already in the read-only shared view.
6471
+ * @example
6472
+ * ```js
6473
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
6474
+ * ```
6475
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6476
+ */
6477
+ ShareSpotterConversation = 'ShareSpotterConversation',
6478
+ /**
6479
+ * Closes the Spotter share-conversation modal. No-op if none is open.
6480
+ * @example
6481
+ * ```js
6482
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
6483
+ * ```
6484
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6485
+ */
6486
+ CloseSpotterShareConversation = 'CloseSpotterShareConversation',
6487
+ /**
6488
+ * Exits the read-only shared-conversation view.
6489
+ * @example
6490
+ * ```js
6491
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
6492
+ * ```
6493
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6494
+ */
6495
+ ExitSpotterSharedConversation = 'ExitSpotterSharedConversation',
5871
6496
  /**
5872
6497
  * Deletes the last prompt in spotter embed.
5873
6498
  * @example
@@ -5965,6 +6590,43 @@ export enum HostEvent {
5965
6590
  */
5966
6591
  StartNewSpotterConversation = 'StartNewSpotterConversation',
5967
6592
 
6593
+ /**
6594
+ * Pins a saved Spotter conversation so it floats to the top of the past
6595
+ * conversations sidebar. The `conversationId` of the conversation to pin is
6596
+ * required.
6597
+ *
6598
+ * This feature is available only when chat history is enabled on your ThoughtSpot
6599
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
6600
+ * instance.
6601
+ *
6602
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6603
+ * @example
6604
+ * ```js
6605
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
6606
+ * conversationId: '<conversation-id>',
6607
+ * });
6608
+ * ```
6609
+ */
6610
+ PinSpotterConversation = 'PinSpotterConversation',
6611
+
6612
+ /**
6613
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
6614
+ * conversation to unpin is required.
6615
+ *
6616
+ * This feature is available only when chat history is enabled on your ThoughtSpot
6617
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
6618
+ * instance.
6619
+ *
6620
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6621
+ * @example
6622
+ * ```js
6623
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
6624
+ * conversationId: '<conversation-id>',
6625
+ * });
6626
+ * ```
6627
+ */
6628
+ UnpinSpotterConversation = 'UnpinSpotterConversation',
6629
+
5968
6630
  /**
5969
6631
  * @hidden
5970
6632
  * Get the current context of the embedded page.
@@ -6180,6 +6842,7 @@ export enum Param {
6180
6842
  NumberFormatLocale = 'numberFormatLocale',
6181
6843
  CurrencyFormat = 'currencyFormat',
6182
6844
  Enable2ColumnLayout = 'enable2ColumnLayout',
6845
+ IsLiveboardAlwaysOn12ColLayout = 'isLiveboardAlwaysOn12ColLayout',
6183
6846
  IsFullAppEmbed = 'isFullAppEmbed',
6184
6847
  IsOnBeforeGetVizDataInterceptEnabled = 'isOnBeforeGetVizDataInterceptEnabled',
6185
6848
  FocusSearchBarOnRender = 'focusSearchBarOnRender',
@@ -6193,6 +6856,7 @@ export enum Param {
6193
6856
  SpotterEnabled = 'isSpotterExperienceEnabled',
6194
6857
  IsUnifiedSearchExperienceEnabled = 'isUnifiedSearchExperienceEnabled',
6195
6858
  OverrideOrgId = 'orgId',
6859
+ OverrideHistoryState = 'overrideHistoryState',
6196
6860
  OauthPollingInterval = 'oAuthPollingInterval',
6197
6861
  IsForceRedirect = 'isForceRedirect',
6198
6862
  DataSourceId = 'dataSourceId',
@@ -6202,6 +6866,7 @@ export enum Param {
6202
6866
  PrimaryAction = 'primaryAction',
6203
6867
  isSpotterAgentEmbed = 'isSpotterAgentEmbed',
6204
6868
  IsLiveboardStylingAndGroupingEnabled = 'isLiveboardStylingAndGroupingEnabled',
6869
+ LiveboardGutter = 'liveboardGutter',
6205
6870
  IsLazyLoadingForEmbedEnabled = 'isLazyLoadingForEmbedEnabled',
6206
6871
  RootMarginForLazyLoad = 'rootMarginForLazyLoad',
6207
6872
  isPNGInScheduledEmailsEnabled = 'isPNGInScheduledEmailsEnabled',
@@ -6210,9 +6875,12 @@ export enum Param {
6210
6875
  isGranularXLSXCSVSchedulesEnabled = 'isGranularXLSXCSVSchedulesEnabled',
6211
6876
  isSendNowLiveboardSchedulingEnabled = 'isSendNowLiveboardSchedulingEnabled',
6212
6877
  isCentralizedLiveboardFilterUXEnabled = 'isCentralizedLiveboardFilterUXEnabled',
6878
+ isScopedLiveboardFilteringEnabled = 'isScopedLiveboardFilteringEnabled',
6213
6879
  isLinkParametersEnabled = 'isLinkParametersEnabled',
6214
6880
  EnablePastConversationsSidebar = 'enablePastConversationsSidebar',
6215
6881
  UpdatedSpotterChatPrompt = 'updatedSpotterChatPrompt',
6882
+ ShowSpotterRadiance = 'showSpotterRadiance',
6883
+ DefaultQueryMode = 'defaultQueryMode',
6216
6884
  EnableStopAnswerGenerationEmbed = 'enableStopAnswerGenerationEmbed',
6217
6885
  SpotterSidebarTitle = 'spotterSidebarTitle',
6218
6886
  SpotterSidebarDefaultExpanded = 'spotterSidebarDefaultExpanded',
@@ -6232,6 +6900,10 @@ export enum Param {
6232
6900
  SpotterFileUploadEnabled = 'spotterFileUploadEnabled',
6233
6901
  SpotterFileUploadFileTypes = 'spotterFileUploadFileTypes',
6234
6902
  IsStarterPromptsEnabled = 'enableStarterPrompts',
6903
+ UpdatedSpotterExperience = 'updatedSpotterExperience',
6904
+ SpotterDataSources = 'spotterDataSources',
6905
+ AnalystId = 'analystId',
6906
+ OpenSpotterOnLiveboardByDefault = 'openSpotterOnLiveboardByDefault',
6235
6907
  }
6236
6908
 
6237
6909
  /**
@@ -6246,9 +6918,10 @@ export type SpotterFileUploadFileTypes = {
6246
6918
  * ThoughtSpot application pages include actions and menu commands
6247
6919
  * for various user-initiated operations. These actions are represented
6248
6920
  * as enumeration members in the SDK. To control actions in the embedded view:
6249
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
6250
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
6251
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
6921
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
6922
+ * (user can see but not click). - hiddenActions — the action is completely removed from
6923
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
6924
+ * are shown; all others are hidden.
6252
6925
  *
6253
6926
  * Use disabledActions to disable (gray out) an action.
6254
6927
  * Use hiddenActions to hide (fully remove) an action.
@@ -6302,6 +6975,17 @@ export enum Action {
6302
6975
  * ```
6303
6976
  */
6304
6977
  SaveAsView = 'saveAsView',
6978
+ /**
6979
+ * The **EditInputTable** action on a Liveboard
6980
+ * page. Allows users to edit an input table used in an Answer directly from
6981
+ * a Liveboard.
6982
+ * @example
6983
+ * ```js
6984
+ * disabledActions: [Action.EditInputTable]
6985
+ * ```
6986
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6987
+ */
6988
+ EditInputTable = 'editInputTable',
6305
6989
  /**
6306
6990
  * The **Make a copy** action on a Liveboard or Answer
6307
6991
  * page. Creates a copy of the Liveboard.
@@ -7522,6 +8206,20 @@ export enum Action {
7522
8206
  */
7523
8207
  ChangeFilterVisibilityInTab = 'changeFilterVisibilityInTab',
7524
8208
 
8209
+ /**
8210
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
8211
+ * including filter, parameter, and cross-filter chips at the liveboard,
8212
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
8213
+ *
8214
+ * @example
8215
+ * ```js
8216
+ * hiddenActions: [Action.AllLiveboardFilters]
8217
+ * disabledActions: [Action.AllLiveboardFilters]
8218
+ * ```
8219
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
8220
+ */
8221
+ AllLiveboardFilters = 'allLiveboardFilters',
8222
+
7525
8223
  /**
7526
8224
  * The **Data model instructions** button on the Spotter interface.
7527
8225
  * Allows opening the data model instructions modal.
@@ -7625,6 +8323,10 @@ export enum Action {
7625
8323
  * The **Add to Coaching** feature allows adding reference questions and
7626
8324
  * business terms to improve Spotter’s responses. This feature is generally available
7627
8325
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
8326
+ *
8327
+ * This action governs both the answer-card **Add to memory** CTA and its
8328
+ * Spotter 3 successor, the response-footer **Remember this** CTA
8329
+ * (they are mutually exclusive).
7628
8330
  * @example
7629
8331
  * ```js
7630
8332
  * hiddenAction: [Action.InConversationTraining]
@@ -7859,6 +8561,89 @@ export enum Action {
7859
8561
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
7860
8562
  */
7861
8563
  SpotterChatRename = 'spotterChatRename',
8564
+ /**
8565
+ * Controls visibility and disable state of the Spotter conversation Share
8566
+ * button in the chat header. Only takes effect once sharing is enabled
8567
+ * (enableShareConversation on).
8568
+ * @example
8569
+ * ```js
8570
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
8571
+ * ```
8572
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8573
+ */
8574
+ SpotterShareConversationButtonHeader = 'spotterShareConversationButtonHeader',
8575
+ /**
8576
+ * Controls visibility and disable state of the Share item in the Spotter
8577
+ * conversation history (sidebar) edit menu. Independent of the header button
8578
+ * above, so a host can show Share in one entry point and hide it in the other.
8579
+ * @example
8580
+ * ```js
8581
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
8582
+ * ```
8583
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8584
+ */
8585
+ SpotterShareConversationMenuItemSidebar = 'spotterShareConversationMenuItemSidebar',
8586
+ /**
8587
+ * Controls visibility of the entire read-only shared-conversation data-access
8588
+ * banner shown when a recipient opens a shared view. Hide-only.
8589
+ * @example
8590
+ * ```js
8591
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
8592
+ * ```
8593
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8594
+ */
8595
+ SpotterSharedConversationBanner = 'spotterSharedConversationBanner',
8596
+ /**
8597
+ * Controls visibility and disable state of the cross/close button on the
8598
+ * read-only shared-conversation data-access banner (keeps the banner itself).
8599
+ * @example
8600
+ * ```js
8601
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
8602
+ * ```
8603
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8604
+ */
8605
+ SpotterSharedConversationBannerDismissButton = 'spotterSharedConversationBannerDismissButton',
8606
+ /**
8607
+ * Controls visibility and disable state of the Exit button in the read-only
8608
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
8609
+ * host event.
8610
+ * @example
8611
+ * ```js
8612
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
8613
+ * ```
8614
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8615
+ */
8616
+ SpotterSharedConversationExitButton = 'spotterSharedConversationExitButton',
8617
+ /**
8618
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
8619
+ * to the current moment…"). Hide-only.
8620
+ * @example
8621
+ * ```js
8622
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
8623
+ * ```
8624
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8625
+ */
8626
+ SpotterShareUpToCurrentInfo = 'spotterShareUpToCurrentInfo',
8627
+ /**
8628
+ * Controls visibility and disable state of the share-modal "include new
8629
+ * messages since last shared version" checkbox.
8630
+ * @example
8631
+ * ```js
8632
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
8633
+ * ```
8634
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8635
+ */
8636
+ SpotterShareIncludeNewMessagesCheckbox = 'spotterShareIncludeNewMessagesCheckbox',
8637
+ /**
8638
+ * Controls visibility and disable state of the cross on the share-modal
8639
+ * stale-snapshot info banner.
8640
+ * @example
8641
+ * ```js
8642
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
8643
+ * ```
8644
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8645
+ */
8646
+ SpotterShareStaleInfoBannerDismissButton = 'spotterShareStaleInfoBannerDismissButton',
7862
8647
  /**
7863
8648
  * Controls visibility and disable state of the delete action
7864
8649
  * in the Spotter conversation edit menu.
@@ -7869,6 +8654,16 @@ export enum Action {
7869
8654
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
7870
8655
  */
7871
8656
  SpotterChatDelete = 'spotterChatDelete',
8657
+ /**
8658
+ * Controls visibility and disable state of the pin/unpin action
8659
+ * in the Spotter conversation edit menu.
8660
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
8661
+ * @example
8662
+ * ```js
8663
+ * disabledActions: [Action.SpotterChatPin]
8664
+ * ```
8665
+ */
8666
+ SpotterChatPin = 'spotterChatPin',
7872
8667
  /**
7873
8668
  * Controls visibility and disable state of the documentation/best practices
7874
8669
  * link in the Spotter sidebar footer.
@@ -7912,6 +8707,56 @@ export enum Action {
7912
8707
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
7913
8708
  */
7914
8709
  SpotterChatModeSwitcher = 'spotterChatModeSwitcher',
8710
+ /**
8711
+ * The **Basic Search** starter prompt pill.
8712
+ *
8713
+ * Starter prompt pills are the row of category buttons shown above the
8714
+ * Spotter chat input before a conversation starts. They give a new user
8715
+ * ready-made questions to click instead of typing one from scratch, and
8716
+ * disappear once the conversation begins. There are three, one per action
8717
+ * below.
8718
+ *
8719
+ * Clicking this pill opens a card of suggested simple questions; picking one
8720
+ * submits it to Spotter right away. Visible by default, and hidden along
8721
+ * with the other pills when the surface itself is off (see
8722
+ * {@link SpotterChatViewConfig.starterPrompts}).
8723
+ * @example
8724
+ * ```js
8725
+ * hiddenActions: [Action.QuickSearchPill]
8726
+ * ```
8727
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8728
+ */
8729
+ QuickSearchPill = 'quickSearchPill',
8730
+ /**
8731
+ * The **Deep Analysis** starter prompt pill, next to
8732
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
8733
+ *
8734
+ * Clicking it opens a card of suggested investigative questions ("why did
8735
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
8736
+ * rather than submitting immediately, so the user can edit it first.
8737
+ * Visible by default.
8738
+ * @example
8739
+ * ```js
8740
+ * hiddenActions: [Action.DeepAnalysisPill]
8741
+ * ```
8742
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8743
+ */
8744
+ DeepAnalysisPill = 'deepAnalysisPill',
8745
+ /**
8746
+ * The **Data Literacy** starter prompt pill, next to
8747
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
8748
+ *
8749
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
8750
+ * that describes the data the model can answer over, helping a user who does
8751
+ * not yet know what is in the data source. The prompt text always comes from
8752
+ * ThoughtSpot, so only its label is customizable. Visible by default.
8753
+ * @example
8754
+ * ```js
8755
+ * hiddenActions: [Action.DataLiteracyPill]
8756
+ * ```
8757
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
8758
+ */
8759
+ DataLiteracyPill = 'dataLiteracyPill',
7915
8760
  /**
7916
8761
  * The **Include current period** checkbox for date filters.
7917
8762
  * Controls the visibility and availability of the option to include
@@ -8063,6 +8908,38 @@ export enum Action {
8063
8908
  * ```
8064
8909
  */
8065
8910
  SpotterAnalystSidebar = 'spotterAnalystSidebar',
8911
+ /**
8912
+ * Controls visibility and disable state of the analyst list
8913
+ * ("Show all") in the Spotter Analyst interface.
8914
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
8915
+ * @example
8916
+ * ```js
8917
+ * hiddenActions: [Action.SpotterAnalystList]
8918
+ * disabledActions: [Action.SpotterAnalystList]
8919
+ * ```
8920
+ */
8921
+ SpotterAnalystList = 'spotterAnalystList',
8922
+ /**
8923
+ * Controls visibility and disable state of the default Spotter analyst
8924
+ * entry in the Spotter Analyst interface.
8925
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
8926
+ * @example
8927
+ * ```js
8928
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
8929
+ * disabledActions: [Action.SpotterDefaultAnalyst]
8930
+ * ```
8931
+ */
8932
+ SpotterDefaultAnalyst = 'spotterDefaultAnalyst',
8933
+ /**
8934
+ * The **Spotter** button in the Liveboard header.
8935
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
8936
+ * @example
8937
+ * ```js
8938
+ * hiddenActions: [Action.SpotterOnLiveboard]
8939
+ * disabledActions: [Action.SpotterOnLiveboard]
8940
+ * ```
8941
+ */
8942
+ SpotterOnLiveboard = 'spotterOnLiveboard',
8066
8943
  }
8067
8944
  export interface AnswerServiceType {
8068
8945
  getAnswer?: (offset: number, batchSize: number) => any;
@@ -8436,6 +9313,9 @@ export enum EmbedErrorCodes {
8436
9313
 
8437
9314
  /** DrillDown payload is invalid - missing or malformed points */
8438
9315
  DRILLDOWN_INVALID_PAYLOAD = 'DRILLDOWN_INVALID_PAYLOAD',
9316
+
9317
+ /** UpdateParameters payload is invalid - malformed applicability */
9318
+ UPDATEPARAMETERS_INVALID_PAYLOAD = 'UPDATEPARAMETERS_INVALID_PAYLOAD',
8439
9319
  }
8440
9320
 
8441
9321
  /**
@@ -8594,7 +9474,7 @@ export type ApiInterceptFlags = {
8594
9474
  * const embed = new LiveboardEmbed('#embed', {
8595
9475
  * ...viewConfig,
8596
9476
  * enableApiIntercept: true,
8597
- * interceptUrls: [InterceptedApiType.DATA],
9477
+ * interceptUrls: [InterceptedApiType.LiveboardData],
8598
9478
  * })
8599
9479
  * ```
8600
9480
  *