@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
@@ -40,6 +40,42 @@ export interface CustomCssVariables {
40
40
  * Font color of the top navigation panel.
41
41
  */
42
42
  "--ts-var-nav-color"?: string;
43
+ /**
44
+ * Background color of the left navigation panel.
45
+ */
46
+ "--ts-var-left-nav-background"?: string;
47
+ /**
48
+ * Background color of the active tab in the left navigation panel.
49
+ */
50
+ "--ts-var-left-nav-active-tab-background"?: string;
51
+ /**
52
+ * Border color of the active tab in the left navigation panel.
53
+ */
54
+ "--ts-var-left-nav-active-tab-border-color"?: string;
55
+ /**
56
+ * Font color of the section title in the left navigation panel.
57
+ */
58
+ "--ts-var-left-nav-section-title-color"?: string;
59
+ /**
60
+ * Font color of the items in the left navigation panel.
61
+ */
62
+ "--ts-var-left-nav-item-color"?: string;
63
+ /**
64
+ * Font color of the selected item in the left navigation panel.
65
+ */
66
+ "--ts-var-left-nav-item-selection-color"?: string;
67
+ /**
68
+ * Background color of the selected item in the left navigation panel.
69
+ */
70
+ "--ts-var-left-nav-item-selection-background"?: string;
71
+ /**
72
+ * Color of the active tab icon in the left navigation panel.
73
+ */
74
+ "--ts-var-left-nav-tab-icon-active-color"?: string;
75
+ /**
76
+ * Color of the inactive tab icon in the left navigation panel.
77
+ */
78
+ "--ts-var-left-nav-tab-icon-inactive-color"?: string;
43
79
  /**
44
80
  * Background color of the *Search data* button.
45
81
  */
@@ -404,6 +440,13 @@ export interface CustomCssVariables {
404
440
  * Font color of the header in the Liveboard.
405
441
  */
406
442
  "--ts-var-liveboard-header-font-color"?: string;
443
+ /**
444
+ * Left and right margin of the header and the tab/filter section of an
445
+ * embedded Liveboard. Use alongside the `liveboardGutter` view config to
446
+ * keep the header aligned with a custom tile-grid gutter.
447
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
448
+ */
449
+ "--ts-var-liveboard-header-horizontal-margin"?: string;
407
450
  /**
408
451
  * Border color of the tiles in the Liveboard.
409
452
  */
@@ -412,6 +455,26 @@ export interface CustomCssVariables {
412
455
  * Background color of the tiles in the Liveboard.
413
456
  */
414
457
  "--ts-var-liveboard-tile-background"?: string;
458
+ /**
459
+ * Font color of the insight tiles in the Liveboard.
460
+ */
461
+ "--ts-var-liveboard-insight-tile-font-color"?: string;
462
+ /**
463
+ * Background color of the insight tiles in the Liveboard.
464
+ */
465
+ "--ts-var-liveboard-insight-tile-background"?: string;
466
+ /**
467
+ * Icon color of the insight tiles in the Liveboard.
468
+ */
469
+ "--ts-var-liveboard-insight-tile-icon-color"?: string;
470
+ /**
471
+ * Font color of the success text in the insight tiles in the Liveboard.
472
+ */
473
+ "--ts-var-liveboard-insight-tile-success-color"?: string;
474
+ /**
475
+ * Font color of the failure text in the insight tiles in the Liveboard.
476
+ */
477
+ "--ts-var-liveboard-insight-tile-failure-color"?: string;
415
478
  /**
416
479
  * Border radius of the tiles in the Liveboard.
417
480
  */
@@ -632,6 +695,14 @@ export interface CustomCssVariables {
632
695
  * Font color of the parameter chips in the Liveboard on active.
633
696
  */
634
697
  "--ts-var-parameter-chip-active-text-color"?: string;
698
+ /**
699
+ * Color of the dot indicator shown on a filter or parameter chip in the
700
+ * centralized filter modal on a Liveboard. The dot appears when the
701
+ * filter or parameter value has been modified but the changes are not
702
+ * yet applied to the Liveboard.
703
+ * @version SDK: 1.52.0 | ThoughtSpot: 26.10.0.cl
704
+ */
705
+ "--ts-var-unsaved-filter-indicator-color"?: string;
635
706
  /**
636
707
  * Background color of the action button in the Liveboard header.
637
708
  */
@@ -960,6 +1031,10 @@ export interface CustomCssVariables {
960
1031
  * header underline, left panel border, thinking step connector and dots.
961
1032
  */
962
1033
  "--ts-var-spotterviz-border-color"?: string;
1034
+ /**
1035
+ * Expanded user chat message bubble border color in SpotterViz.
1036
+ */
1037
+ "--ts-var-spotterviz-expanded-border-color"?: string;
963
1038
  /**
964
1039
  * Background color of the reference-mode toggle button in the SpotterViz
965
1040
  * chat input when it is unselected and the user hovers over it.
@@ -977,6 +1052,53 @@ export interface CustomCssVariables {
977
1052
  * on each referenced-entity chip in the chat input.
978
1053
  */
979
1054
  "--ts-var-spotterviz-reference-icon-selected-background"?: string;
1055
+ /**
1056
+ * Background color of the shared conversation header (recipient's read-only view).
1057
+ */
1058
+ "--ts-var-shared-conv-header-background"?: string;
1059
+ /**
1060
+ * Border color of the shared conversation header.
1061
+ */
1062
+ "--ts-var-shared-conv-header-border-color"?: string;
1063
+ /**
1064
+ * Font color of the title text in the shared conversation header.
1065
+ */
1066
+ "--ts-var-shared-conv-title-color"?: string;
1067
+ /**
1068
+ * Background gradient color-stop of the share chat header's outer container
1069
+ * (sender's pre-share header). Defaults to transparent.
1070
+ */
1071
+ "--ts-var-share-chat-header-container-background"?: string;
1072
+ /**
1073
+ * Background color of the share chat header's inner title/actions row.
1074
+ * Defaults to transparent.
1075
+ */
1076
+ "--ts-var-share-chat-header-background"?: string;
1077
+ /**
1078
+ * Font color of the title text in the share chat header.
1079
+ */
1080
+ "--ts-var-share-chat-header-title-color"?: string;
1081
+ /**
1082
+ * Font color of the title input field in the share chat header.
1083
+ */
1084
+ "--ts-var-share-chat-header-input-text-color"?: string;
1085
+ /**
1086
+ * Background color of the title input field in the share chat header.
1087
+ */
1088
+ "--ts-var-share-chat-header-input-background"?: string;
1089
+ /**
1090
+ * Border color of the title input field in the share chat header.
1091
+ */
1092
+ "--ts-var-share-chat-header-input-border-color"?: string;
1093
+ /**
1094
+ * Background color of the shimmer loading effect. Also affects the
1095
+ * saved chats sidebar's new-chat shimmer, which shares the same style.
1096
+ */
1097
+ "--ts-var-shimmer-background"?: string;
1098
+ /**
1099
+ * Background color of the shimmer sweep animation's gradient mid-stop.
1100
+ */
1101
+ "--ts-var-shimmer-sweep-background"?: string;
980
1102
  }
981
1103
  export interface SessionInterface {
982
1104
  sessionId: string;
@@ -1340,7 +1462,9 @@ export enum AuthType {
1340
1462
  }
1341
1463
  /**
1342
1464
  *
1343
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
1465
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1466
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
1467
+ * V4 (Focused) home page experiences.
1344
1468
  *
1345
1469
  */
1346
1470
  export enum HomeLeftNavItem {
@@ -1406,7 +1530,14 @@ export enum HomeLeftNavItem {
1406
1530
  * Available in the V3 navigation experience.
1407
1531
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
1408
1532
  */
1409
- Favorites = "favorites"
1533
+ Favorites = "favorites",
1534
+ /**
1535
+ * The *Collections* menu option in
1536
+ * the *Insights* left navigation panel.
1537
+ * Shown when collections are enabled on the cluster.
1538
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1539
+ */
1540
+ Collections = "collections"
1410
1541
  }
1411
1542
  export type DOMSelector = string | HTMLElement;
1412
1543
  /**
@@ -2022,6 +2153,85 @@ export interface FrameParams {
2022
2153
  */
2023
2154
  [key: string]: string | number | boolean | undefined;
2024
2155
  }
2156
+ /**
2157
+ * Configuration for the pre-render wrapper element.
2158
+ * All properties here mirror the top-level preRender properties on
2159
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2160
+ * so existing top-level usage continues to work without any changes.
2161
+ *
2162
+ * @version SDK: 1.52.0
2163
+ * @example
2164
+ * ```js
2165
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2166
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2167
+ * preRenderConfig: {
2168
+ * preRenderId: 'my-liveboard',
2169
+ * preRenderContainer: '#my-scroll-container',
2170
+ * doNotTrackPreRenderSize: false,
2171
+ * zIndex: -10,
2172
+ * },
2173
+ * });
2174
+ * embed.preRender();
2175
+ * embed.showPreRender();
2176
+ * ```
2177
+ */
2178
+ export interface PreRenderConfig {
2179
+ /**
2180
+ * Pre-render ID to identify the pre-render instance.
2181
+ * Takes precedence over the top-level `preRenderId` when both are set.
2182
+ *
2183
+ * Matches the embed warmed by `preRender()` to the one revealed by
2184
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2185
+ * the same view, and give unrelated views their own or they will collide.
2186
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2187
+ * and do nothing without it.
2188
+ *
2189
+ * @default undefined
2190
+ */
2191
+ preRenderId?: string;
2192
+ /**
2193
+ * The DOM element or CSS selector string specifying the container into
2194
+ * which the pre-rendered wrapper is inserted.
2195
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2196
+ *
2197
+ * Set this when your app scrolls inside an element rather than the page (for
2198
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2199
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2200
+ * selector string — it is re-resolved on reposition and so survives a remount,
2201
+ * while a detached element reference cannot be recovered. An invalid selector is
2202
+ * logged and falls back to `document.body`.
2203
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2204
+ *
2205
+ * @default document.body
2206
+ */
2207
+ preRenderContainer?: string | HTMLElement;
2208
+ /**
2209
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2210
+ * placeholder element.
2211
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2212
+ *
2213
+ * Set this only when you size the embed yourself; you then own alignment and must
2214
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2215
+ * already pauses while hidden, so this is not needed to avoid work then.
2216
+ *
2217
+ * @default false
2218
+ */
2219
+ doNotTrackPreRenderSize?: boolean;
2220
+ /**
2221
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2222
+ * Override this when the host page's stacking context does not reach `-1000`
2223
+ * and the hidden wrapper still appears above other elements.
2224
+ *
2225
+ * A page that creates its own stacking context — a positioned app shell, a
2226
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2227
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2228
+ * see a faint panel behind your content, or clicks landing on nothing in the
2229
+ * region where the embed will eventually appear.
2230
+ *
2231
+ * @default -1000
2232
+ */
2233
+ zIndex?: number;
2234
+ }
2025
2235
  /**
2026
2236
  * The common configuration object for an embedded view.
2027
2237
  */
@@ -2106,7 +2316,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2106
2316
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2107
2317
  * const embed = new <EmbedComponent>('#tsEmbed', {
2108
2318
  * ... // other embed view config
2109
- * hiddenActions: [Action.Download, Action.Export],
2319
+ * hiddenActions: [Action.Download, Action.ExportTML],
2110
2320
  * });
2111
2321
  * ```
2112
2322
  * @important
@@ -2128,7 +2338,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2128
2338
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2129
2339
  * const embed = new <EmbedComponent>('#tsEmbed', {
2130
2340
  * ... // other embed view config
2131
- * visibleActions: [Action.Download, Action.Export],
2341
+ * visibleActions: [Action.Download, Action.ExportTML],
2132
2342
  * });
2133
2343
  * ```
2134
2344
  */
@@ -2213,6 +2423,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2213
2423
  *
2214
2424
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2215
2425
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2426
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2216
2427
  * @example
2217
2428
  * ```js
2218
2429
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2232,6 +2443,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2232
2443
  * @type {boolean}
2233
2444
  * @default false
2234
2445
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2446
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2235
2447
  * @example
2236
2448
  * ```js
2237
2449
  * // Disable tracking PreRender size in the configuration
@@ -2273,6 +2485,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2273
2485
  *
2274
2486
  * @type {string | HTMLElement}
2275
2487
  * @version SDK: 1.49.2 | ThoughtSpot: *
2488
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2276
2489
  * @example
2277
2490
  * ```js
2278
2491
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2283,6 +2496,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2283
2496
  * ```
2284
2497
  */
2285
2498
  preRenderContainer?: string | HTMLElement;
2499
+ /**
2500
+ * Configuration for the pre-render wrapper element.
2501
+ * All properties here mirror the top-level preRender properties on
2502
+ * `BaseViewConfig` and take precedence over them when both are set,
2503
+ * so existing top-level usage continues to work without any changes.
2504
+ * See {@link PreRenderConfig} for available options.
2505
+ *
2506
+ * @version SDK: 1.52.0
2507
+ * @example
2508
+ * ```js
2509
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2510
+ * preRenderConfig: {
2511
+ * preRenderId: 'my-liveboard',
2512
+ * zIndex: -10,
2513
+ * },
2514
+ * });
2515
+ * embed.preRender();
2516
+ * embed.showPreRender();
2517
+ * ```
2518
+ */
2519
+ preRenderConfig?: PreRenderConfig;
2286
2520
  /**
2287
2521
  * Enable the V2 shell. This can provide performance benefits
2288
2522
  * due to a lighter-weight shell.
@@ -2353,6 +2587,26 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2353
2587
  * ```
2354
2588
  */
2355
2589
  overrideOrgId?: number;
2590
+ /**
2591
+ * Overrides the browser history behavior for embedding application users.
2592
+ * This parameter changes standard history navigation (pushState) into a
2593
+ * state replacement (replaceState), preventing users from getting trapped in
2594
+ * back-button loops inside the embedded iframe environment.
2595
+ * The overrideHistoryState setting is honored only if the
2596
+ * application is running within an embedded context.
2597
+ *
2598
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2599
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2600
+ * @example
2601
+ * ```js
2602
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2603
+ * const embed = new <EmbedComponent>('#tsEmbed', {
2604
+ * // ... other embed view config
2605
+ * overrideHistoryState: true,
2606
+ * });
2607
+ * ```
2608
+ */
2609
+ overrideHistoryState?: boolean;
2356
2610
  /**
2357
2611
  * Flag to override the *Open Link in New Tab* context
2358
2612
  * menu option.
@@ -2701,7 +2955,7 @@ export interface HomePageConfig {
2701
2955
  *
2702
2956
  * const embed = new AppEmbed('#tsEmbed', {
2703
2957
  * ... //other embed view config
2704
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2958
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2705
2959
  * })
2706
2960
  * ```
2707
2961
  */
@@ -2711,7 +2965,9 @@ export interface HomePageConfig {
2711
2965
  * To specify the modules, import the `HomepageModule` enum.
2712
2966
  * For example: `hiddenHomepageModules = [HomepageModule.MyLibrary]`
2713
2967
  *
2714
- * **Note**: This attribute is not supported in the classic (v1) experience.
2968
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2969
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2970
+ * and V4 (Focused) home page experiences.
2715
2971
  *
2716
2972
  * Supported embed types: `AppEmbed`
2717
2973
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2720,7 +2976,7 @@ export interface HomePageConfig {
2720
2976
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2721
2977
  *
2722
2978
  * const embed = new AppEmbed('#tsEmbed', {
2723
- * ... // V2/V3 navigation and home page experience attributes
2979
+ * ... // V3 navigation and home page experience attributes
2724
2980
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
2725
2981
  * //...other embed view configuration attributes
2726
2982
  * })
@@ -2731,8 +2987,11 @@ export interface HomePageConfig {
2731
2987
  * Reorder home page modules.
2732
2988
  * To specify the modules, import the `HomepageModule` enum.
2733
2989
  * For example: `reorderedHomepageModules = [HomepageModule.MyLibrary,
2734
- * HomepageModule.Watchlist]` **Note**: This attribute is not supported in the
2735
- * classic (v1) homepage.
2990
+ * HomepageModule.Watchlist]`
2991
+ *
2992
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2993
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2994
+ * and V4 (Focused) home page experiences.
2736
2995
  *
2737
2996
  * Supported embed types: `AppEmbed`
2738
2997
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2741,7 +3000,7 @@ export interface HomePageConfig {
2741
3000
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2742
3001
  *
2743
3002
  * const embed = new AppEmbed('#tsEmbed', {
2744
- * ...//V2/V3 navigation and home page experience attributes
3003
+ * ...//V3 navigation and home page experience attributes
2745
3004
  * reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
2746
3005
  * //... other embed view configuration attributes
2747
3006
  * })
@@ -2753,7 +3012,9 @@ export interface HomePageConfig {
2753
3012
  * on the home page left navigation panel.
2754
3013
  * To specify the menu items, import the `HomeLeftNavItem` enum.
2755
3014
  *
2756
- * **Note**: This attribute is not supported in the classic (v1) homepage.
3015
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
3016
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
3017
+ * and V4 (Focused) home page experiences.
2757
3018
  *
2758
3019
  * Supported embed types: `AppEmbed`
2759
3020
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -3007,6 +3268,25 @@ export interface LiveboardAppEmbedViewConfig {
3007
3268
  * ```
3008
3269
  */
3009
3270
  enable2ColumnLayout?: boolean;
3271
+ /**
3272
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3273
+ * every width, instead of switching to the two-column or single-column
3274
+ * layout as the container narrows.
3275
+ *
3276
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3277
+ * @type {boolean}
3278
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3279
+ * @default false
3280
+ * @example
3281
+ * ```js
3282
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3283
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3284
+ * ... // other embed view config
3285
+ * isLiveboardAlwaysOn12ColLayout: true,
3286
+ * })
3287
+ * ```
3288
+ */
3289
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3010
3290
  /**
3011
3291
  * This flag can be used to enable the compact header in Liveboard
3012
3292
  *
@@ -3111,6 +3391,26 @@ export interface LiveboardAppEmbedViewConfig {
3111
3391
  * ```
3112
3392
  */
3113
3393
  coverAndFilterOptionInPDF?: boolean;
3394
+ /**
3395
+ * Sets the gutter space (in pixels) between the visualization tiles of
3396
+ * an embedded Liveboard grid layout and its outer layout padding.
3397
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3398
+ * and removes the outer padding. When omitted, the gutter saved in the
3399
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3400
+ *
3401
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3402
+ * @type {number}
3403
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3404
+ * @example
3405
+ * ```js
3406
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3407
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3408
+ * ... // other embed view config
3409
+ * liveboardGutter: 8,
3410
+ * })
3411
+ * ```
3412
+ */
3413
+ liveboardGutter?: number;
3114
3414
  /**
3115
3415
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3116
3416
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3129,6 +3429,24 @@ export interface LiveboardAppEmbedViewConfig {
3129
3429
  * ```
3130
3430
  */
3131
3431
  isCentralizedLiveboardFilterUXEnabled?: boolean;
3432
+ /**
3433
+ * This flag is used to enable or disable scoped Liveboard filtering.
3434
+ * When enabled, filters and parameters can be scoped to a group of
3435
+ * visualizations on a Liveboard, in addition to the Liveboard and
3436
+ * tab levels.
3437
+ *
3438
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3439
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3440
+ * @example
3441
+ * ```js
3442
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3443
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3444
+ * ... // other embed view config
3445
+ * isScopedLiveboardFilteringEnabled: true,
3446
+ * })
3447
+ * ```
3448
+ */
3449
+ isScopedLiveboardFilteringEnabled?: boolean;
3132
3450
  /**
3133
3451
  * This flag is used to enable or disable the link parameters in liveboard.
3134
3452
  *
@@ -3312,7 +3630,9 @@ export enum RuntimeFilterOp {
3312
3630
  * via `hiddenHomepageModules` and reordered via
3313
3631
  * `reorderedHomepageModules`.
3314
3632
  *
3315
- * **Note**: This option is not supported in the classic (v1) experience.
3633
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
3634
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
3635
+ * V4 (Focused) home page experiences.
3316
3636
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
3317
3637
  */
3318
3638
  export enum HomepageModule {
@@ -3521,7 +3841,7 @@ export enum EmbedEvent {
3521
3841
  * @returns nonFilteredColumns - The columns that were not filtered
3522
3842
  * @example
3523
3843
  * ```js
3524
- * searchEmbed.on(EmbedEvent.DrillDown, {
3844
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3525
3845
  * points: {
3526
3846
  * clickedPoint,
3527
3847
  * selectedPoints: selectedPoint
@@ -3582,7 +3902,7 @@ export enum EmbedEvent {
3582
3902
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3583
3903
  * @example
3584
3904
  * ```js
3585
- * appEmbed.on(EmbedEvent.customAction, payload => {
3905
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3586
3906
  * const data = payload.data;
3587
3907
  * if (data.id === 'insert Custom Action ID here') {
3588
3908
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3848,8 +4168,8 @@ export enum EmbedEvent {
3848
4168
  *
3849
4169
  * **Note**: This event is deprecated in v1.21.0.
3850
4170
  * To fire an event when a download action is initiated on a chart or table,
3851
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3852
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4171
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4172
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3853
4173
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3854
4174
  * @example
3855
4175
  * ```js
@@ -3899,10 +4219,10 @@ export enum EmbedEvent {
3899
4219
  * @example
3900
4220
  * ```js
3901
4221
  * //emit when action starts
3902
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4222
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3903
4223
  * console.log('download CSV', payload)}, {start: true })
3904
4224
  * //emit when action ends
3905
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4225
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3906
4226
  * console.log('download CSV', payload)})
3907
4227
  * ```
3908
4228
  */
@@ -4301,11 +4621,19 @@ export enum EmbedEvent {
4301
4621
  * Emitted when a user changes any filter on a Liveboard.
4302
4622
  * Returns filter type and name, column name and ID, and runtime
4303
4623
  * filter details.
4624
+ * The payload includes an optional `applicability` attribute indicating the
4625
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
4626
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4627
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4628
+ * is no `targetId`, since the filter applies to the whole Liveboard.
4629
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4630
+ * ThoughtSpot: 26.10.0.cl.
4304
4631
  * @example
4305
4632
  *
4306
4633
  * ```js
4307
4634
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
4308
4635
  * console.log('payload', payload);
4636
+ * // payload.data optionally includes applicability: { level, targetId }
4309
4637
  * })
4310
4638
  * ```
4311
4639
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -4497,9 +4825,17 @@ export enum EmbedEvent {
4497
4825
  /**
4498
4826
  * Emitted when parameter changes in an Answer
4499
4827
  * or Liveboard.
4828
+ * The payload includes an optional `applicability` attribute indicating the
4829
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
4830
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4831
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4832
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
4833
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4834
+ * ThoughtSpot: 26.10.0.cl.
4500
4835
  * ```js
4501
4836
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
4502
4837
  * console.log('payload', payload);
4838
+ * // payload.data optionally includes applicability: { level, targetId }
4503
4839
  * })
4504
4840
  * ```
4505
4841
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -4801,6 +5137,158 @@ export enum EmbedEvent {
4801
5137
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4802
5138
  */
4803
5139
  SpotterConversationDeleted = "spotterConversationDeleted",
5140
+ /**
5141
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
5142
+ * to bracket the interaction. App→host counterpart of the
5143
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
5144
+ * @example
5145
+ * ```js
5146
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
5147
+ * // payload: { convId: string }
5148
+ * })
5149
+ * ```
5150
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5151
+ */
5152
+ SpotterShareConversationButtonHeaderClicked = "spotterShareConversationButtonHeaderClicked",
5153
+ /**
5154
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
5155
+ * to bracket the interaction.
5156
+ * @example
5157
+ * ```js
5158
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
5159
+ * // payload: { convId: string }
5160
+ * })
5161
+ * ```
5162
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5163
+ */
5164
+ SpotterShareConversationMenuItemSidebarClicked = "spotterShareConversationMenuItemSidebarClicked",
5165
+ /**
5166
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
5167
+ * share created). The host builds its own link from shareId/convId + its
5168
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
5169
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
5170
+ * the save resolves.
5171
+ * @example
5172
+ * ```js
5173
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
5174
+ * // payload: { convId: string, shareId: string,
5175
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
5176
+ * })
5177
+ * ```
5178
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5179
+ */
5180
+ SpotterConversationShared = "spotterConversationShared",
5181
+ /**
5182
+ * Emitted when access to a shared Spotter conversation is revoked
5183
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
5184
+ * and the share is deleted entirely.
5185
+ * @example
5186
+ * ```js
5187
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
5188
+ * // payload: { convId: string, shareId: string,
5189
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
5190
+ * })
5191
+ * ```
5192
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5193
+ */
5194
+ SpotterConversationShareRevoked = "spotterConversationShareRevoked",
5195
+ /**
5196
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
5197
+ * view). No shareId available viewer-side.
5198
+ * @example
5199
+ * ```js
5200
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
5201
+ * // payload: { convId: string, sourceConvId: string }
5202
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
5203
+ * })
5204
+ * ```
5205
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5206
+ */
5207
+ SpotterSharedConversationViewed = "spotterSharedConversationViewed",
5208
+ /**
5209
+ * Emitted when the user toggles the share-modal "include new messages since
5210
+ * last shared version" checkbox.
5211
+ * @example
5212
+ * ```js
5213
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
5214
+ * // payload: { convId: string, includeNewMessages: boolean }
5215
+ * })
5216
+ * ```
5217
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5218
+ */
5219
+ SpotterShareIncludeNewMessagesCheckboxToggled = "spotterShareIncludeNewMessagesCheckboxToggled",
5220
+ /**
5221
+ * Emitted when the user dismisses the stale-snapshot info banner via its
5222
+ * cross (distinct from the include-new-messages checkbox toggle).
5223
+ * @example
5224
+ * ```js
5225
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
5226
+ * // payload: { convId: string }
5227
+ * })
5228
+ * ```
5229
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5230
+ */
5231
+ SpotterShareStaleInfoBannerDismissed = "spotterShareStaleInfoBannerDismissed",
5232
+ /**
5233
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
5234
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
5235
+ * / `SpotterConversationShareRevoked` result events.
5236
+ * @example
5237
+ * ```js
5238
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
5239
+ * // payload: { convId: string }
5240
+ * })
5241
+ * ```
5242
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5243
+ */
5244
+ SpotterShareModalConfirmButtonClicked = "spotterShareModalConfirmButtonClicked",
5245
+ /**
5246
+ * Emitted when the share modal is dismissed via the Cancel button.
5247
+ * @example
5248
+ * ```js
5249
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
5250
+ * // payload: { convId: string }
5251
+ * })
5252
+ * ```
5253
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5254
+ */
5255
+ SpotterShareModalCancelButtonClicked = "spotterShareModalCancelButtonClicked",
5256
+ /**
5257
+ * Emitted when a recipient leaves the read-only shared view via the Exit
5258
+ * button.
5259
+ * @example
5260
+ * ```js
5261
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
5262
+ * // payload: { convId: string }
5263
+ * })
5264
+ * ```
5265
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5266
+ */
5267
+ SpotterSharedConversationExitButtonClicked = "spotterSharedConversationExitButtonClicked",
5268
+ /**
5269
+ * Emitted when a Spotter conversation is pinned.
5270
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5271
+ * @example
5272
+ * ```js
5273
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
5274
+ * console.log('Conversation pinned', payload);
5275
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
5276
+ * })
5277
+ * ```
5278
+ */
5279
+ SpotterConversationPinned = "spotterConversationPinned",
5280
+ /**
5281
+ * Emitted when a Spotter conversation is unpinned.
5282
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5283
+ * @example
5284
+ * ```js
5285
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
5286
+ * console.log('Conversation unpinned', payload);
5287
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
5288
+ * })
5289
+ * ```
5290
+ */
5291
+ SpotterConversationUnpinned = "spotterConversationUnpinned",
4804
5292
  /**
4805
5293
  * Emitted when a Spotter conversation is selected/clicked.
4806
5294
  * @example
@@ -4813,6 +5301,30 @@ export enum EmbedEvent {
4813
5301
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4814
5302
  */
4815
5303
  SpotterConversationSelected = "spotterConversationSelected",
5304
+ /**
5305
+ * Emitted when the Spotter agent finishes streaming/rendering a response.
5306
+ * Includes the conversation and message identifiers so the host app can
5307
+ * fetch the full conversation history via the REST API if needed.
5308
+ *
5309
+ * The payload data has the shape `{ convId: string, messageId: string }`.
5310
+ *
5311
+ * Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
5312
+ * inside the full application).
5313
+ * @example
5314
+ * ```js
5315
+ * spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
5316
+ * console.log('Spotter response complete', payload);
5317
+ * })
5318
+ * ```
5319
+ * @example
5320
+ * ```js
5321
+ * appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
5322
+ * console.log('Spotter response complete', payload);
5323
+ * })
5324
+ * ```
5325
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
5326
+ */
5327
+ SpotterResponseComplete = "spotterResponseComplete",
4816
5328
  /**
4817
5329
  * @hidden
4818
5330
  * Emitted when the auth token is about to get expired and needs to be refreshed.
@@ -5166,6 +5678,7 @@ export enum HostEvent {
5166
5678
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5167
5679
  * console.log("iFrameURL", url);
5168
5680
  * ```
5681
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5169
5682
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5170
5683
  */
5171
5684
  GetIframeUrl = "GetIframeUrl",
@@ -5292,6 +5805,17 @@ export enum HostEvent {
5292
5805
  * name: string,
5293
5806
  * type: ATTRIBUTE/MEASURE,
5294
5807
  * dataType: INT64/CHAR/DATE }
5808
+ *
5809
+ * `applicability` - Optional. Scopes the filter to a specific target,
5810
+ * for example, a single Liveboard tab, so the panel for the correct
5811
+ * scoped filter is opened. Available from SDK: 1.53.0 |
5812
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
5813
+ *
5814
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
5815
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5816
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5817
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
5818
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5295
5819
  * @example
5296
5820
  * ```js
5297
5821
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -5304,6 +5828,14 @@ export enum HostEvent {
5304
5828
  * ```
5305
5829
  * @example
5306
5830
  * ```js
5831
+ * // Open a filter scoped to a specific Liveboard tab
5832
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
5833
+ * column: { columnId: '<column-GUID>' },
5834
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
5835
+ * });
5836
+ * ```
5837
+ * @example
5838
+ * ```js
5307
5839
  * // Open filter from search context
5308
5840
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5309
5841
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -5314,29 +5846,96 @@ export enum HostEvent {
5314
5846
  */
5315
5847
  OpenFilter = "openFilter",
5316
5848
  /**
5317
- * Add columns to the current search query.
5318
- * @param - { columnIds: string[] }
5849
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5850
+ * *Add filter* button in the Liveboard edit header opens, so the host
5851
+ * app can start the add-filter flow from its own UI.
5852
+ *
5853
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5854
+ * Hiding the *Add filter* button with `hiddenActions:
5855
+ * [Action.AddFilter]` does not block this event, but disabling it with
5856
+ * `disabledActions` does.
5857
+ *
5858
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5859
+ * existing filter, this event starts the creation of a new filter.
5860
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5319
5861
  * @example
5320
5862
  * ```js
5321
- * searchEmbed.trigger(HostEvent.AddColumns, { columnIds: ['<column-GUID>','<column-GUID>'] })
5863
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5322
5864
  * ```
5865
+ */
5866
+ OpenAddFilterModal = "openAddFilterModal",
5867
+ /**
5868
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5869
+ * *Add parameter* button in the Liveboard edit header opens.
5870
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5871
+ *
5872
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5873
+ * Hiding the *Add parameter* button with `hiddenActions:
5874
+ * [Action.AddParameter]` does not block this event, but disabling it
5875
+ * with `disabledActions` does.
5876
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5323
5877
  * @example
5324
5878
  * ```js
5325
- * // Add columns from search context
5326
- * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5327
- * searchEmbed.trigger(HostEvent.AddColumns, {
5328
- * columnIds: ['col-guid-1', 'col-guid-2']
5329
- * }, ContextType.Search);
5879
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5330
5880
  * ```
5331
- * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5332
5881
  */
5333
- AddColumns = "addColumns",
5882
+ OpenAddParameterModal = "openAddParameterModal",
5334
5883
  /**
5335
- * Remove a column from the current search query.
5336
- * @param - { columnId: string }
5884
+ * Open the parameter panel for a particular parameter on a Liveboard.
5885
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
5886
+ * @param - Includes the following keys:
5887
+ * - `parameter`: An object identifying the parameter to open, for
5888
+ * example, `{ parameterId: '<parameter-GUID>' }`.
5889
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
5890
+ * for example, a single Liveboard tab, so the panel for the correct
5891
+ * scoped parameter is opened. Includes the following attributes:
5892
+ *
5893
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
5894
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5895
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5896
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
5897
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5337
5898
  * @example
5338
5899
  * ```js
5339
- * searchEmbed.trigger(HostEvent.RemoveColumn, { columnId: '<column-Guid>' })
5900
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5901
+ * parameter: { parameterId: '<parameter-GUID>' }
5902
+ * });
5903
+ * ```
5904
+ * @example
5905
+ * ```js
5906
+ * // Open a parameter scoped to a specific group
5907
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5908
+ * parameter: { parameterId: '<parameter-GUID>' },
5909
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
5910
+ * });
5911
+ * ```
5912
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5913
+ */
5914
+ OpenParameter = "openParameter",
5915
+ /**
5916
+ * Add columns to the current search query.
5917
+ * @param - { columnIds: string[] }
5918
+ * @example
5919
+ * ```js
5920
+ * searchEmbed.trigger(HostEvent.AddColumns, { columnIds: ['<column-GUID>','<column-GUID>'] })
5921
+ * ```
5922
+ * @example
5923
+ * ```js
5924
+ * // Add columns from search context
5925
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5926
+ * searchEmbed.trigger(HostEvent.AddColumns, {
5927
+ * columnIds: ['col-guid-1', 'col-guid-2']
5928
+ * }, ContextType.Search);
5929
+ * ```
5930
+ * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5931
+ */
5932
+ AddColumns = "addColumns",
5933
+ /**
5934
+ * Remove a column from the current search query.
5935
+ * @param - { columnId: string }
5936
+ * @example
5937
+ * ```js
5938
+ * searchEmbed.trigger(HostEvent.RemoveColumn, { columnId: '<column-Guid>' })
5340
5939
  * ```
5341
5940
  * @example
5342
5941
  * ```js
@@ -5362,6 +5961,10 @@ export enum HostEvent {
5362
5961
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5363
5962
  * data=>console.log(data))
5364
5963
  * ```
5964
+ * @returns data - Object with a `v2Content` string: the export request
5965
+ * payload for the current Liveboard.
5966
+ * @returns type - The passthrough event name,
5967
+ * `getExportRequestForCurrentPinboard`.
5365
5968
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5366
5969
  */
5367
5970
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5464,6 +6067,9 @@ export enum HostEvent {
5464
6067
  * }, ContextType.Spotter);
5465
6068
  * ```
5466
6069
  *
6070
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
6071
+ * @returns tabId - GUID of the tab within that Liveboard.
6072
+ * @returns vizId - GUID of the newly created visualization.
5467
6073
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5468
6074
  */
5469
6075
  Pin = "pin",
@@ -5502,13 +6108,13 @@ export enum HostEvent {
5502
6108
  * Trigger the **Manage schedule** action on an embedded Liveboard
5503
6109
  * @example
5504
6110
  * ```js
5505
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6111
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5506
6112
  * ```
5507
6113
  * @example
5508
6114
  * ```js
5509
6115
  * // Manage schedules from liveboard context
5510
6116
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5511
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6117
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5512
6118
  * ```
5513
6119
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5514
6120
  */
@@ -5953,6 +6559,7 @@ export enum HostEvent {
5953
6559
  * console.log(tml.answer);
5954
6560
  * });
5955
6561
  * ```
6562
+ * @returns The TML representation of the current Answer, as an object.
5956
6563
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
5957
6564
  * @important
5958
6565
  */
@@ -6376,6 +6983,14 @@ export enum HostEvent {
6376
6983
  /**
6377
6984
  * Get details of filters applied on the Liveboard.
6378
6985
  * Returns arrays containing Liveboard filter and runtime filter elements.
6986
+ * Each Liveboard filter includes an optional `applicability` attribute
6987
+ * indicating the scope of the filter. It contains a `level`
6988
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6989
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6990
+ * level there is no `targetId`, since the filter applies to the
6991
+ * whole Liveboard.
6992
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6993
+ * ThoughtSpot: 26.10.0.cl.
6379
6994
  * @example
6380
6995
  * ```js
6381
6996
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
@@ -6388,6 +7003,8 @@ export enum HostEvent {
6388
7003
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6389
7004
  * console.log('filters', data);
6390
7005
  * ```
7006
+ * @returns liveboardFilters - Filters applied on the Liveboard.
7007
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6391
7008
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6392
7009
  */
6393
7010
  GetFilters = "getFilters",
@@ -6415,6 +7032,16 @@ export enum HostEvent {
6415
7032
  *
6416
7033
  * `type` - To update filters for date time, specify the date format type.
6417
7034
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
7035
+ *
7036
+ * `applicability` - Optional. Scopes the filter to a specific target,
7037
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
7038
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
7039
+ *
7040
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
7041
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
7042
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
7043
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
7044
+ * Liveboard.
6418
7045
  * @example
6419
7046
  * ```js
6420
7047
  *
@@ -6491,6 +7118,21 @@ export enum HostEvent {
6491
7118
  * }
6492
7119
  * }, ContextType.Liveboard);
6493
7120
  * ```
7121
+ * @example
7122
+ * ```js
7123
+ * // Scope the filter to a specific Liveboard tab
7124
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7125
+ * filter: {
7126
+ * column: "item type",
7127
+ * oper: "IN",
7128
+ * values: ["bags", "shirts"],
7129
+ * applicability: {
7130
+ * level: "TAB",
7131
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
7132
+ * }
7133
+ * }
7134
+ * });
7135
+ * ```
6494
7136
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6495
7137
  */
6496
7138
  UpdateFilters = "updateFilters",
@@ -6512,9 +7154,37 @@ export enum HostEvent {
6512
7154
  * console.log('tabs', tabDetails);
6513
7155
  * });
6514
7156
  * ```
7157
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7158
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7159
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6515
7160
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6516
7161
  */
6517
7162
  GetTabs = "getTabs",
7163
+ /**
7164
+ * Get group details for the current Liveboard.
7165
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
7166
+ * @example
7167
+ * ```js
7168
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
7169
+ * console.log(
7170
+ * groupDetails // GroupDetails of current Liveboard
7171
+ * );
7172
+ * })
7173
+ * ```
7174
+ * @example
7175
+ * ```js
7176
+ * // Get groups from liveboard context
7177
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
7178
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
7179
+ * console.log('groups', groupDetails);
7180
+ * });
7181
+ * ```
7182
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7183
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7184
+ * @returns Groups - Group details, each with at least `id` and `name`.
7185
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7186
+ */
7187
+ GetGroups = "getGroups",
6518
7188
  /**
6519
7189
  * Set the visible tabs on a Liveboard.
6520
7190
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -6586,6 +7256,9 @@ export enum HostEvent {
6586
7256
  * // Alternative direct usage (not recommended)
6587
7257
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6588
7258
  * ```
7259
+ * @returns session - Session identifier for the Answer, for use with the
7260
+ * `AnswerService`.
7261
+ * @returns embedAnswerData - Data backing the Answer, when available.
6589
7262
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6590
7263
  */
6591
7264
  GetAnswerSession = "getAnswerSession",
@@ -6642,6 +7315,15 @@ export enum HostEvent {
6642
7315
  * - `name`: Name of the parameter.
6643
7316
  * - `value`: The value to set for the parameter.
6644
7317
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
7318
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
7319
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
7320
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
7321
+ *
7322
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
7323
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
7324
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
7325
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
7326
+ * Liveboard.
6645
7327
  *
6646
7328
  * @example
6647
7329
  * ```js
@@ -6653,6 +7335,18 @@ export enum HostEvent {
6653
7335
  * ```
6654
7336
  * @example
6655
7337
  * ```js
7338
+ * // Scope the parameter to a specific Liveboard tab
7339
+ * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
7340
+ * name: "Integer Range Param",
7341
+ * value: 10,
7342
+ * applicability: {
7343
+ * level: "TAB",
7344
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
7345
+ * }
7346
+ * }])
7347
+ * ```
7348
+ * @example
7349
+ * ```js
6656
7350
  * // Update parameters from liveboard context
6657
7351
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
6658
7352
  * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
@@ -6666,6 +7360,14 @@ export enum HostEvent {
6666
7360
  UpdateParameters = "UpdateParameters",
6667
7361
  /**
6668
7362
  * Triggers GetParameters to fetch the runtime Parameters.
7363
+ * Each parameter includes an optional `applicability` attribute
7364
+ * indicating the scope of the parameter. It contains a `level`
7365
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
7366
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
7367
+ * level there is no `targetId`, since the parameter applies to the
7368
+ * whole Liveboard.
7369
+ * The `applicability` attribute is available from SDK: 1.53.0 |
7370
+ * ThoughtSpot: 26.10.0.cl.
6669
7371
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6670
7372
  * ```js
6671
7373
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
@@ -6690,12 +7392,16 @@ export enum HostEvent {
6690
7392
  * console.log('parameters', parameters);
6691
7393
  * });
6692
7394
  * ```
7395
+ * @returns parameters - Parameters currently applied on the Liveboard.
6693
7396
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
6694
7397
  */
6695
7398
  GetParameters = "GetParameters",
6696
7399
  /**
6697
7400
  * Triggers an event to update a personalized view of a Liveboard.
6698
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7401
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7402
+ * which additionally accepts a `viewName`, resets to the original view when
7403
+ * called with an empty payload, and reports an error when a named view
7404
+ * cannot be found.
6699
7405
  * ```js
6700
7406
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6701
7407
  * ```
@@ -6713,10 +7419,15 @@ export enum HostEvent {
6713
7419
  UpdatePersonalisedView = "UpdatePersonalisedView",
6714
7420
  /**
6715
7421
  * Triggers an event to update a personalized view of a Liveboard.
7422
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7423
+ * which additionally accepts a `viewName`, resets to the original view when
7424
+ * called with an empty payload, and reports an error when a named view
7425
+ * cannot be found.
6716
7426
  * ```js
6717
7427
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6718
7428
  * ```
6719
7429
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7430
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6720
7431
  */
6721
7432
  UpdatePersonalizedView = "UpdatePersonalisedView",
6722
7433
  /**
@@ -6819,6 +7530,10 @@ export enum HostEvent {
6819
7530
  * description: "Generated from Spotter"
6820
7531
  * }, ContextType.Spotter);
6821
7532
  * ```
7533
+ * @returns answerId - GUID of the saved Answer.
7534
+ * @returns saveResponse - Raw response from the save operation.
7535
+ * @returns shareResponse - Raw response from the share operation, when the
7536
+ * Answer was also made discoverable.
6822
7537
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
6823
7538
  */
6824
7539
  SaveAnswer = "saveAnswer",
@@ -6932,6 +7647,36 @@ export enum HostEvent {
6932
7647
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6933
7648
  */
6934
7649
  ResetSpotterConversation = "ResetSpotterConversation",
7650
+ /**
7651
+ * Opens the Spotter share-conversation modal for the given conversation.
7652
+ * `conversationId` is **mandatory** — you must pass the id of the
7653
+ * conversation to share. Also no-op when sharing is disabled
7654
+ * (enableShareConversation off) or when already in the read-only shared view.
7655
+ * @example
7656
+ * ```js
7657
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
7658
+ * ```
7659
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7660
+ */
7661
+ ShareSpotterConversation = "ShareSpotterConversation",
7662
+ /**
7663
+ * Closes the Spotter share-conversation modal. No-op if none is open.
7664
+ * @example
7665
+ * ```js
7666
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
7667
+ * ```
7668
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7669
+ */
7670
+ CloseSpotterShareConversation = "CloseSpotterShareConversation",
7671
+ /**
7672
+ * Exits the read-only shared-conversation view.
7673
+ * @example
7674
+ * ```js
7675
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
7676
+ * ```
7677
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7678
+ */
7679
+ ExitSpotterSharedConversation = "ExitSpotterSharedConversation",
6935
7680
  /**
6936
7681
  * Deletes the last prompt in spotter embed.
6937
7682
  * @example
@@ -7027,6 +7772,41 @@ export enum HostEvent {
7027
7772
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
7028
7773
  */
7029
7774
  StartNewSpotterConversation = "StartNewSpotterConversation",
7775
+ /**
7776
+ * Pins a saved Spotter conversation so it floats to the top of the past
7777
+ * conversations sidebar. The `conversationId` of the conversation to pin is
7778
+ * required.
7779
+ *
7780
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7781
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7782
+ * instance.
7783
+ *
7784
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7785
+ * @example
7786
+ * ```js
7787
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
7788
+ * conversationId: '<conversation-id>',
7789
+ * });
7790
+ * ```
7791
+ */
7792
+ PinSpotterConversation = "PinSpotterConversation",
7793
+ /**
7794
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
7795
+ * conversation to unpin is required.
7796
+ *
7797
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7798
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7799
+ * instance.
7800
+ *
7801
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7802
+ * @example
7803
+ * ```js
7804
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
7805
+ * conversationId: '<conversation-id>',
7806
+ * });
7807
+ * ```
7808
+ */
7809
+ UnpinSpotterConversation = "UnpinSpotterConversation",
7030
7810
  /**
7031
7811
  * @hidden
7032
7812
  * Get the current context of the embedded page.
@@ -7137,9 +7917,10 @@ export type SpotterFileUploadFileTypes = {
7137
7917
  * ThoughtSpot application pages include actions and menu commands
7138
7918
  * for various user-initiated operations. These actions are represented
7139
7919
  * as enumeration members in the SDK. To control actions in the embedded view:
7140
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7141
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7142
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7920
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7921
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7922
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7923
+ * are shown; all others are hidden.
7143
7924
  *
7144
7925
  * Use disabledActions to disable (gray out) an action.
7145
7926
  * Use hiddenActions to hide (fully remove) an action.
@@ -7192,6 +7973,17 @@ export enum Action {
7192
7973
  * ```
7193
7974
  */
7194
7975
  SaveAsView = "saveAsView",
7976
+ /**
7977
+ * The **EditInputTable** action on a Liveboard
7978
+ * page. Allows users to edit an input table used in an Answer directly from
7979
+ * a Liveboard.
7980
+ * @example
7981
+ * ```js
7982
+ * disabledActions: [Action.EditInputTable]
7983
+ * ```
7984
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7985
+ */
7986
+ EditInputTable = "editInputTable",
7195
7987
  /**
7196
7988
  * The **Make a copy** action on a Liveboard or Answer
7197
7989
  * page. Creates a copy of the Liveboard.
@@ -8393,6 +9185,19 @@ export enum Action {
8393
9185
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
8394
9186
  */
8395
9187
  ChangeFilterVisibilityInTab = "changeFilterVisibilityInTab",
9188
+ /**
9189
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
9190
+ * including filter, parameter, and cross-filter chips at the liveboard,
9191
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
9192
+ *
9193
+ * @example
9194
+ * ```js
9195
+ * hiddenActions: [Action.AllLiveboardFilters]
9196
+ * disabledActions: [Action.AllLiveboardFilters]
9197
+ * ```
9198
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
9199
+ */
9200
+ AllLiveboardFilters = "allLiveboardFilters",
8396
9201
  /**
8397
9202
  * The **Data model instructions** button on the Spotter interface.
8398
9203
  * Allows opening the data model instructions modal.
@@ -8494,6 +9299,10 @@ export enum Action {
8494
9299
  * The **Add to Coaching** feature allows adding reference questions and
8495
9300
  * business terms to improve Spotter’s responses. This feature is generally available
8496
9301
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9302
+ *
9303
+ * This action governs both the answer-card **Add to memory** CTA and its
9304
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9305
+ * (they are mutually exclusive).
8497
9306
  * @example
8498
9307
  * ```js
8499
9308
  * hiddenAction: [Action.InConversationTraining]
@@ -8728,6 +9537,89 @@ export enum Action {
8728
9537
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8729
9538
  */
8730
9539
  SpotterChatRename = "spotterChatRename",
9540
+ /**
9541
+ * Controls visibility and disable state of the Spotter conversation Share
9542
+ * button in the chat header. Only takes effect once sharing is enabled
9543
+ * (enableShareConversation on).
9544
+ * @example
9545
+ * ```js
9546
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
9547
+ * ```
9548
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9549
+ */
9550
+ SpotterShareConversationButtonHeader = "spotterShareConversationButtonHeader",
9551
+ /**
9552
+ * Controls visibility and disable state of the Share item in the Spotter
9553
+ * conversation history (sidebar) edit menu. Independent of the header button
9554
+ * above, so a host can show Share in one entry point and hide it in the other.
9555
+ * @example
9556
+ * ```js
9557
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
9558
+ * ```
9559
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9560
+ */
9561
+ SpotterShareConversationMenuItemSidebar = "spotterShareConversationMenuItemSidebar",
9562
+ /**
9563
+ * Controls visibility of the entire read-only shared-conversation data-access
9564
+ * banner shown when a recipient opens a shared view. Hide-only.
9565
+ * @example
9566
+ * ```js
9567
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
9568
+ * ```
9569
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9570
+ */
9571
+ SpotterSharedConversationBanner = "spotterSharedConversationBanner",
9572
+ /**
9573
+ * Controls visibility and disable state of the cross/close button on the
9574
+ * read-only shared-conversation data-access banner (keeps the banner itself).
9575
+ * @example
9576
+ * ```js
9577
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
9578
+ * ```
9579
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9580
+ */
9581
+ SpotterSharedConversationBannerDismissButton = "spotterSharedConversationBannerDismissButton",
9582
+ /**
9583
+ * Controls visibility and disable state of the Exit button in the read-only
9584
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
9585
+ * host event.
9586
+ * @example
9587
+ * ```js
9588
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
9589
+ * ```
9590
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9591
+ */
9592
+ SpotterSharedConversationExitButton = "spotterSharedConversationExitButton",
9593
+ /**
9594
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
9595
+ * to the current moment…"). Hide-only.
9596
+ * @example
9597
+ * ```js
9598
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
9599
+ * ```
9600
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9601
+ */
9602
+ SpotterShareUpToCurrentInfo = "spotterShareUpToCurrentInfo",
9603
+ /**
9604
+ * Controls visibility and disable state of the share-modal "include new
9605
+ * messages since last shared version" checkbox.
9606
+ * @example
9607
+ * ```js
9608
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
9609
+ * ```
9610
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9611
+ */
9612
+ SpotterShareIncludeNewMessagesCheckbox = "spotterShareIncludeNewMessagesCheckbox",
9613
+ /**
9614
+ * Controls visibility and disable state of the cross on the share-modal
9615
+ * stale-snapshot info banner.
9616
+ * @example
9617
+ * ```js
9618
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
9619
+ * ```
9620
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9621
+ */
9622
+ SpotterShareStaleInfoBannerDismissButton = "spotterShareStaleInfoBannerDismissButton",
8731
9623
  /**
8732
9624
  * Controls visibility and disable state of the delete action
8733
9625
  * in the Spotter conversation edit menu.
@@ -8738,6 +9630,16 @@ export enum Action {
8738
9630
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8739
9631
  */
8740
9632
  SpotterChatDelete = "spotterChatDelete",
9633
+ /**
9634
+ * Controls visibility and disable state of the pin/unpin action
9635
+ * in the Spotter conversation edit menu.
9636
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9637
+ * @example
9638
+ * ```js
9639
+ * disabledActions: [Action.SpotterChatPin]
9640
+ * ```
9641
+ */
9642
+ SpotterChatPin = "spotterChatPin",
8741
9643
  /**
8742
9644
  * Controls visibility and disable state of the documentation/best practices
8743
9645
  * link in the Spotter sidebar footer.
@@ -8781,6 +9683,56 @@ export enum Action {
8781
9683
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
8782
9684
  */
8783
9685
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9686
+ /**
9687
+ * The **Basic Search** starter prompt pill.
9688
+ *
9689
+ * Starter prompt pills are the row of category buttons shown above the
9690
+ * Spotter chat input before a conversation starts. They give a new user
9691
+ * ready-made questions to click instead of typing one from scratch, and
9692
+ * disappear once the conversation begins. There are three, one per action
9693
+ * below.
9694
+ *
9695
+ * Clicking this pill opens a card of suggested simple questions; picking one
9696
+ * submits it to Spotter right away. Visible by default, and hidden along
9697
+ * with the other pills when the surface itself is off (see
9698
+ * {@link SpotterChatViewConfig.starterPrompts}).
9699
+ * @example
9700
+ * ```js
9701
+ * hiddenActions: [Action.QuickSearchPill]
9702
+ * ```
9703
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9704
+ */
9705
+ QuickSearchPill = "quickSearchPill",
9706
+ /**
9707
+ * The **Deep Analysis** starter prompt pill, next to
9708
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9709
+ *
9710
+ * Clicking it opens a card of suggested investigative questions ("why did
9711
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9712
+ * rather than submitting immediately, so the user can edit it first.
9713
+ * Visible by default.
9714
+ * @example
9715
+ * ```js
9716
+ * hiddenActions: [Action.DeepAnalysisPill]
9717
+ * ```
9718
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9719
+ */
9720
+ DeepAnalysisPill = "deepAnalysisPill",
9721
+ /**
9722
+ * The **Data Literacy** starter prompt pill, next to
9723
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9724
+ *
9725
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9726
+ * that describes the data the model can answer over, helping a user who does
9727
+ * not yet know what is in the data source. The prompt text always comes from
9728
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9729
+ * @example
9730
+ * ```js
9731
+ * hiddenActions: [Action.DataLiteracyPill]
9732
+ * ```
9733
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9734
+ */
9735
+ DataLiteracyPill = "dataLiteracyPill",
8784
9736
  /**
8785
9737
  * The **Include current period** checkbox for date filters.
8786
9738
  * Controls the visibility and availability of the option to include
@@ -8928,7 +9880,39 @@ export enum Action {
8928
9880
  * disabledActions: [Action.SpotterAnalystSidebar]
8929
9881
  * ```
8930
9882
  */
8931
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9883
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9884
+ /**
9885
+ * Controls visibility and disable state of the analyst list
9886
+ * ("Show all") in the Spotter Analyst interface.
9887
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9888
+ * @example
9889
+ * ```js
9890
+ * hiddenActions: [Action.SpotterAnalystList]
9891
+ * disabledActions: [Action.SpotterAnalystList]
9892
+ * ```
9893
+ */
9894
+ SpotterAnalystList = "spotterAnalystList",
9895
+ /**
9896
+ * Controls visibility and disable state of the default Spotter analyst
9897
+ * entry in the Spotter Analyst interface.
9898
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9899
+ * @example
9900
+ * ```js
9901
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9902
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9903
+ * ```
9904
+ */
9905
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9906
+ /**
9907
+ * The **Spotter** button in the Liveboard header.
9908
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9909
+ * @example
9910
+ * ```js
9911
+ * hiddenActions: [Action.SpotterOnLiveboard]
9912
+ * disabledActions: [Action.SpotterOnLiveboard]
9913
+ * ```
9914
+ */
9915
+ SpotterOnLiveboard = "spotterOnLiveboard"
8932
9916
  }
8933
9917
  export enum PrefetchFeatures {
8934
9918
  FullApp = "FullApp",
@@ -9266,7 +10250,9 @@ export enum EmbedErrorCodes {
9266
10250
  /** UpdateFilters payload is invalid - missing or malformed filter/filters */
9267
10251
  UPDATEFILTERS_INVALID_PAYLOAD = "UPDATEFILTERS_INVALID_PAYLOAD",
9268
10252
  /** DrillDown payload is invalid - missing or malformed points */
9269
- DRILLDOWN_INVALID_PAYLOAD = "DRILLDOWN_INVALID_PAYLOAD"
10253
+ DRILLDOWN_INVALID_PAYLOAD = "DRILLDOWN_INVALID_PAYLOAD",
10254
+ /** UpdateParameters payload is invalid - malformed applicability */
10255
+ UPDATEPARAMETERS_INVALID_PAYLOAD = "UPDATEPARAMETERS_INVALID_PAYLOAD"
9270
10256
  }
9271
10257
  /**
9272
10258
  * Error event object emitted when an error occurs in an embedded component.
@@ -9419,7 +10405,7 @@ export type ApiInterceptFlags = {
9419
10405
  * const embed = new LiveboardEmbed('#embed', {
9420
10406
  * ...viewConfig,
9421
10407
  * enableApiIntercept: true,
9422
- * interceptUrls: [InterceptedApiType.DATA],
10408
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9423
10409
  * })
9424
10410
  * ```
9425
10411
  *
@@ -9912,6 +10898,43 @@ export interface LiveboardTab {
9912
10898
  name: string;
9913
10899
  [key: string]: any;
9914
10900
  }
10901
+ export interface LiveboardGroup {
10902
+ id: string;
10903
+ name: string;
10904
+ [key: string]: any;
10905
+ }
10906
+ /**
10907
+ * Levels at which a filter or parameter can be applied.
10908
+ */
10909
+ export enum ApplicabilityLevel {
10910
+ Liveboard = "LIVEBOARD",
10911
+ Tab = "TAB",
10912
+ Group = "GROUP"
10913
+ }
10914
+ /**
10915
+ * Scopes a filter or parameter to a specific target.
10916
+ * At `LIVEBOARD` level the filter applies to the whole Liveboard, so `targetId`
10917
+ * is not required.
10918
+ */
10919
+ export interface Applicability {
10920
+ level: ApplicabilityLevel;
10921
+ targetId?: string;
10922
+ }
10923
+ export interface FilterUpdate {
10924
+ column: string;
10925
+ oper: string;
10926
+ values: string[];
10927
+ type?: string;
10928
+ applicability?: Applicability;
10929
+ }
10930
+ export interface LiveboardFilter {
10931
+ applicability?: Applicability;
10932
+ [key: string]: any;
10933
+ }
10934
+ export interface LiveboardParameter {
10935
+ applicability?: Applicability;
10936
+ [key: string]: any;
10937
+ }
9915
10938
  export enum UIPassthroughEvent {
9916
10939
  PinAnswerToLiveboard = "addVizToPinboard",
9917
10940
  SaveAnswer = "saveAnswer",
@@ -9928,6 +10951,7 @@ export enum UIPassthroughEvent {
9928
10951
  GetParameters = "getParameters",
9929
10952
  GetTML = "getTML",
9930
10953
  GetTabs = "getTabs",
10954
+ GetGroups = "getGroups",
9931
10955
  GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
9932
10956
  }
9933
10957
  export type UIPassthroughContractBase = {
@@ -10006,7 +11030,7 @@ export type UIPassthroughContractBase = {
10006
11030
  vizId?: string;
10007
11031
  };
10008
11032
  response: {
10009
- liveboardFilters: Record<string, any>[];
11033
+ liveboardFilters: LiveboardFilter[];
10010
11034
  runtimeFilters: RuntimeFilter[];
10011
11035
  };
10012
11036
  };
@@ -10019,7 +11043,7 @@ export type UIPassthroughContractBase = {
10019
11043
  [UIPassthroughEvent.GetParameters]: {
10020
11044
  request: Record<string, never>;
10021
11045
  response: {
10022
- parameters: Record<string, any>[];
11046
+ parameters: LiveboardParameter[];
10023
11047
  };
10024
11048
  };
10025
11049
  [UIPassthroughEvent.GetTML]: {
@@ -10037,6 +11061,14 @@ export type UIPassthroughContractBase = {
10037
11061
  Tabs: LiveboardTab[];
10038
11062
  };
10039
11063
  };
11064
+ [UIPassthroughEvent.GetGroups]: {
11065
+ request: Record<string, never>;
11066
+ response: {
11067
+ orderedGroupIds: string[];
11068
+ numberOfGroups: number;
11069
+ Groups: LiveboardGroup[];
11070
+ };
11071
+ };
10040
11072
  [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
10041
11073
  request: Record<string, never>;
10042
11074
  response: {
@@ -10048,18 +11080,8 @@ export type UIPassthroughContractBase = {
10048
11080
  };
10049
11081
  [UIPassthroughEvent.UpdateFilters]: {
10050
11082
  request: {
10051
- filter?: {
10052
- column: string;
10053
- oper: string;
10054
- values: string[];
10055
- type?: string;
10056
- };
10057
- filters?: {
10058
- column: string;
10059
- oper: string;
10060
- values: string[];
10061
- type?: string;
10062
- }[];
11083
+ filter?: FilterUpdate;
11084
+ filters?: FilterUpdate[];
10063
11085
  };
10064
11086
  response: unknown;
10065
11087
  };
@@ -10092,6 +11114,7 @@ export type EmbedApiHostEventMapping = {
10092
11114
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
10093
11115
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
10094
11116
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
11117
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
10095
11118
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
10096
11119
  };
10097
11120
  export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
@@ -10136,6 +11159,7 @@ class HostEventClient {
10136
11159
  protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>, context?: ContextType): Promise<HostEventResponse<HostEvent.Pin, ContextType>>;
10137
11160
  protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>, context?: ContextType): Promise<any>;
10138
11161
  protected handleUpdateFiltersEvent(payload: HostEventRequest<HostEvent.UpdateFilters>, context?: ContextType): Promise<any>;
11162
+ protected handleUpdateParametersEvent(payload: HostEventRequest<HostEvent.UpdateParameters>, context?: ContextType): Promise<any>;
10139
11163
  protected handleDrillDownEvent(payload: HostEventRequest<HostEvent.DrillDown>, context?: ContextType): Promise<any>;
10140
11164
  /**
10141
11165
  * Dispatches a host event using the appropriate channel:
@@ -10146,7 +11170,7 @@ class HostEventClient {
10146
11170
  * @param payload - Optional payload for the event
10147
11171
  * @param context - Optional context (e.g. vizId) for scoped operations
10148
11172
  */
10149
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11173
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10150
11174
  }
10151
11175
  class TsEmbed {
10152
11176
  /**
@@ -10351,6 +11375,12 @@ class TsEmbed {
10351
11375
  protected getEmbedParamsObject(): Record<any, any>;
10352
11376
  protected getRootIframeSrc(): string;
10353
11377
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11378
+ /**
11379
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11380
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11381
+ * backward compatibility.
11382
+ */
11383
+ protected getPreRenderConfig(): PreRenderConfig;
10354
11384
  /**
10355
11385
  * Returns true if this embed instance is configured for pre-rendering.
10356
11386
  */
@@ -10389,12 +11419,14 @@ class TsEmbed {
10389
11419
  * fresh element; an element passed directly cannot be re-resolved.
10390
11420
  */
10391
11421
  private resolvePreRenderContainerTarget;
11422
+ private inheritPreRenderContainer;
11423
+ private getCustomPreRenderContainer;
10392
11424
  /**
10393
- * Makes the container a positioning context for the absolutely positioned
10394
- * wrapper, stashing the original inline `position` on the element (once) so
10395
- * destroy() can restore it exactly, leaving no trace. Recording it on the
10396
- * element rather than per-instance lets the override be reverted even when
10397
- * embeds share the same container.
11425
+ * Makes the resolved container a positioning context for the absolutely
11426
+ * positioned wrapper, stashing the original inline `position` on the element
11427
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11428
+ * on the element rather than per-instance lets the override be reverted even
11429
+ * when embeds share the same container.
10398
11430
  */
10399
11431
  private applyPreRenderContainerPositioning;
10400
11432
  /**
@@ -10542,7 +11574,7 @@ class TsEmbed {
10542
11574
  * ```
10543
11575
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
10544
11576
  */
10545
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11577
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
10546
11578
  /**
10547
11579
  * Triggers an event to the embedded app, skipping the UI flow.
10548
11580
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -10738,6 +11770,45 @@ export interface SearchOptions {
10738
11770
  */
10739
11771
  searchQuery: string;
10740
11772
  }
11773
+ /**
11774
+ * The query mode Spotter uses when answering a question.
11775
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11776
+ */
11777
+ export enum SpotterQueryMode {
11778
+ FAST_SEARCH = "fastSearch",
11779
+ RESEARCH = "research"
11780
+ }
11781
+ /**
11782
+ * Configuration for the pin/unpin conversation feature in the Spotter sidebar.
11783
+ * Grouped into one object because pin exposes several related settings
11784
+ * (enable + label overrides), unlike single-item actions like rename or
11785
+ * delete.
11786
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11787
+ */
11788
+ export interface SpotterChatPinConfig {
11789
+ /**
11790
+ * Enables the pin/unpin conversation feature in embedded Spotter. Disabled
11791
+ * by default — hosts must opt in. When off, the Pin/Unpin menu entry and
11792
+ * the pin glyph are hidden and the PinSpotterConversation /
11793
+ * UnpinSpotterConversation host events are no-ops. Native (non-embedded)
11794
+ * Spotter is unaffected and ships pin enabled.
11795
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11796
+ * @default false
11797
+ */
11798
+ enabled?: boolean;
11799
+ /**
11800
+ * Custom label text for the pin action in the conversation edit menu.
11801
+ * Defaults to translated "Pin" text.
11802
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11803
+ */
11804
+ pinLabel?: string;
11805
+ /**
11806
+ * Custom label text for the unpin action in the conversation edit menu.
11807
+ * Defaults to translated "Unpin" text.
11808
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11809
+ */
11810
+ unpinLabel?: string;
11811
+ }
10741
11812
  /**
10742
11813
  * Configuration for the Spotter sidebar.
10743
11814
  * Can be used in SpotterEmbed and AppEmbed.
@@ -10775,6 +11846,12 @@ export interface SpotterSidebarViewConfig {
10775
11846
  * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
10776
11847
  */
10777
11848
  spotterChatDeleteLabel?: string;
11849
+ /**
11850
+ * Pin/unpin conversation feature config (enable + label overrides).
11851
+ * Off by default in embed — hosts opt in via `enabled`.
11852
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
11853
+ */
11854
+ spotterChatPinConfig?: SpotterChatPinConfig;
10778
11855
  /**
10779
11856
  * Custom title text for the delete conversation confirmation modal.
10780
11857
  * Defaults to translated "Delete chat" text.
@@ -10826,50 +11903,281 @@ export interface SpotterSidebarViewConfig {
10826
11903
  spotterAnalystsLabel?: string;
10827
11904
  }
10828
11905
  /**
10829
- * Configuration for customizing Spotter chat UI branding.
10830
- * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
11906
+ * Configuration for the Spotter conversation sharing feature.
11907
+ * Can be used in SpotterEmbed and AppEmbed.
11908
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
10831
11909
  * @group Embed components
10832
11910
  */
10833
- export interface SpotterChatViewConfig {
11911
+ export interface SpotterShareConversationConfig {
10834
11912
  /**
10835
- * Hides the ThoughtSpot logo/icon in tool response
10836
- * cards. The branding label prefix is controlled
10837
- * separately via `toolResponseCardBrandingLabel`.
10838
- * External MCP tool branding is not affected.
11913
+ * Enables sharing of the conversation.
11914
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
10839
11915
  * @default false
10840
11916
  */
10841
- hideToolResponseCardBranding?: boolean;
11917
+ enableShareConversation?: boolean;
10842
11918
  /**
10843
- * Custom label to replace the "ThoughtSpot" prefix
10844
- * in tool response cards. Set to an empty string
10845
- * `''` to hide the prefix entirely. Works
10846
- * independently of `hideToolResponseCardBranding`.
10847
- * External MCP tool branding is not affected.
11919
+ * Header Share button + sidebar Share item label.
11920
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11921
+ * @default "Share"
10848
11922
  */
10849
- toolResponseCardBrandingLabel?: string;
11923
+ spotterShareLabel?: string;
10850
11924
  /**
10851
- * Enables file upload in the Spotter chat interface.
10852
- *
10853
- * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
10854
- * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
10855
- * @default false
11925
+ * Share modal title.
11926
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
10856
11927
  */
10857
- spotterFileUploadEnabled?: boolean;
11928
+ spotterShareModalTitle?: string;
10858
11929
  /**
10859
- * Restricts the allowed file types for Spotter file upload.
10860
- *
10861
- * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
10862
- * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
11930
+ * Modal confirm button label.
11931
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11932
+ * @default "Share"
10863
11933
  */
10864
- spotterFileUploadFileTypes?: SpotterFileUploadFileTypes;
11934
+ spotterShareConfirmLabel?: string;
11935
+ /**
11936
+ * Modal cancel button label.
11937
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11938
+ * @default "Cancel"
11939
+ */
11940
+ spotterShareCancelLabel?: string;
11941
+ /**
11942
+ * "Add users or groups" label.
11943
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11944
+ */
11945
+ spotterShareAddUsersLabel?: string;
11946
+ /**
11947
+ * Empty-state title ("No users added yet").
11948
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11949
+ */
11950
+ spotterShareEmptyTitle?: string;
11951
+ /**
11952
+ * Empty-state subtitle ("Not shared with any user").
11953
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11954
+ */
11955
+ spotterShareEmptySubtitle?: string;
11956
+ /**
11957
+ * "Include new messages since last shared version" checkbox label.
11958
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11959
+ */
11960
+ spotterShareIncludeNewMessagesLabel?: string;
11961
+ /**
11962
+ * Footer note when the snapshot is current ("…up to the current moment…").
11963
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11964
+ */
11965
+ spotterShareUpToCurrentLabel?: string;
11966
+ /**
11967
+ * Stale-snapshot info banner text ("All added users and groups will receive…").
11968
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11969
+ */
11970
+ spotterShareStaleInfoLabel?: string;
11971
+ /**
11972
+ * Read-only shared-view data-access banner message.
11973
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11974
+ */
11975
+ spotterSharedConversationBannerMessage?: string;
11976
+ /**
11977
+ * Read-only shared-view Exit button label.
11978
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11979
+ * @default "Exit"
11980
+ */
11981
+ spotterSharedConversationExitLabel?: string;
11982
+ }
11983
+ /**
11984
+ * A single starter prompt question shown under a category pill.
11985
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11986
+ * @group Embed components
11987
+ */
11988
+ export interface StarterPromptQuestion {
11989
+ /**
11990
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
11991
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
11992
+ */
11993
+ label?: string;
11994
+ /**
11995
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
11996
+ * 300 characters.
11997
+ */
11998
+ prompt: string;
11999
+ }
12000
+ /**
12001
+ * Configuration for a starter prompt category with questions
12002
+ * (`quick` and `research`).
12003
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12004
+ * @group Embed components
12005
+ */
12006
+ export interface StarterPromptCategory {
12007
+ /**
12008
+ * Overrides the default category pill label. ThoughtSpot truncates it
12009
+ * beyond 30 characters.
12010
+ */
12011
+ label?: string;
12012
+ /**
12013
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12014
+ * and drops any entry without a `prompt`.
12015
+ */
12016
+ questions?: StarterPromptQuestion[];
12017
+ }
12018
+ /**
12019
+ * Configuration for the Data Literacy starter prompt category.
12020
+ * Only the label is customizable; the prompt text comes from the backend.
12021
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12022
+ * @group Embed components
12023
+ */
12024
+ export interface StarterPreviewDataCategory {
12025
+ /**
12026
+ * Overrides the default category pill label. ThoughtSpot truncates it
12027
+ * beyond 30 characters.
12028
+ */
12029
+ label?: string;
12030
+ }
12031
+ /**
12032
+ * Content configuration for the Spotter starter prompts.
12033
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12034
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12035
+ *
12036
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12037
+ * the Liveboard SpotterViz surface are configured separately through
12038
+ * {@link SpotterVizConfig.customStarterPrompts}.
12039
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12040
+ * @group Embed components
12041
+ */
12042
+ export interface StarterPromptsConfig {
12043
+ /**
12044
+ * Turns the starter prompts surface on. Must be set explicitly, an
12045
+ * unset flag leaves the surface off.
12046
+ *
12047
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12048
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12049
+ * @default false
12050
+ */
12051
+ enable?: boolean;
12052
+ /** Basic Search category configuration. */
12053
+ quick?: StarterPromptCategory;
12054
+ /** Deep Analysis category configuration. */
12055
+ research?: StarterPromptCategory;
12056
+ /** Data Literacy category configuration. */
12057
+ previewData?: StarterPreviewDataCategory;
12058
+ /**
12059
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12060
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12061
+ */
12062
+ liveboard?: StarterPromptQuestion[];
12063
+ }
12064
+ /**
12065
+ * Configuration for customizing Spotter chat UI branding.
12066
+ * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
12067
+ * @group Embed components
12068
+ */
12069
+ export interface SpotterChatViewConfig {
12070
+ /**
12071
+ * Hides the ThoughtSpot logo/icon in tool response
12072
+ * cards. The branding label prefix is controlled
12073
+ * separately via `toolResponseCardBrandingLabel`.
12074
+ * External MCP tool branding is not affected.
12075
+ * @default false
12076
+ */
12077
+ hideToolResponseCardBranding?: boolean;
12078
+ /**
12079
+ * Custom label to replace the "ThoughtSpot" prefix
12080
+ * in tool response cards. Set to an empty string
12081
+ * `''` to hide the prefix entirely. Works
12082
+ * independently of `hideToolResponseCardBranding`.
12083
+ * External MCP tool branding is not affected.
12084
+ */
12085
+ toolResponseCardBrandingLabel?: string;
12086
+ /**
12087
+ * Enables file upload in the Spotter chat interface.
12088
+ *
12089
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12090
+ * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12091
+ * @default false
12092
+ */
12093
+ spotterFileUploadEnabled?: boolean;
12094
+ /**
12095
+ * Restricts the allowed file types for Spotter file upload.
12096
+ *
12097
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12098
+ * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12099
+ */
12100
+ spotterFileUploadFileTypes?: SpotterFileUploadFileTypes;
10865
12101
  /**
10866
12102
  * Enables starter prompts in the Spotter chat interface.
10867
12103
  *
10868
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12104
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12105
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12106
+ *
12107
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
10869
12108
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
10870
12109
  * @default false
10871
12110
  */
10872
12111
  enableStarterPrompts?: boolean;
12112
+ /**
12113
+ * Customizes the labels and questions of the Spotter starter prompts.
12114
+ * Individual pills are hidden or shown with `hiddenActions` /
12115
+ * `visibleActions` using `Action.QuickSearchPill`,
12116
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12117
+ *
12118
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12119
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12120
+ * @example
12121
+ * ```js
12122
+ * const embed = new SpotterEmbed('#tsEmbed', {
12123
+ * worksheetId: 'worksheet-id',
12124
+ * hiddenActions: [Action.DeepAnalysisPill],
12125
+ * spotterChatConfig: {
12126
+ * starterPrompts: {
12127
+ * enable: true,
12128
+ * quick: {
12129
+ * label: 'Quick questions',
12130
+ * questions: [
12131
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12132
+ * ],
12133
+ * },
12134
+ * previewData: { label: 'Explore your data' },
12135
+ * },
12136
+ * },
12137
+ * })
12138
+ * ```
12139
+ */
12140
+ starterPrompts?: StarterPromptsConfig;
12141
+ /**
12142
+ * Opens the Spotter chat panel when the Liveboard loads.
12143
+ *
12144
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12145
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12146
+ * @default true
12147
+ * @example
12148
+ * ```js
12149
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12150
+ * liveboardId: 'liveboard-id',
12151
+ * spotterChatConfig: {
12152
+ * openSpotterOnLiveboardByDefault: false,
12153
+ * },
12154
+ * })
12155
+ * ```
12156
+ */
12157
+ openSpotterOnLiveboardByDefault?: boolean;
12158
+ }
12159
+ /**
12160
+ * Configuration for the Spotter Analyst experience.
12161
+ * Can be used in SpotterEmbed.
12162
+ * @group Embed components
12163
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12164
+ * @example
12165
+ * ```js
12166
+ * const embed = new SpotterEmbed('#tsEmbed', {
12167
+ * ... //other embed view config
12168
+ * spotterAnalystConfig: {
12169
+ * analystId: 'analyst-id-1234',
12170
+ * },
12171
+ * })
12172
+ * ```
12173
+ */
12174
+ export interface SpotterAnalystConfig {
12175
+ /**
12176
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12177
+ * and no "Show all".
12178
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12179
+ */
12180
+ analystId?: string;
10873
12181
  }
10874
12182
  /**
10875
12183
  * The configuration for the embedded spotterEmbed options.
@@ -10879,8 +12187,43 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
10879
12187
  /**
10880
12188
  * The ID of the data source object. For example, Model, View, or Table. Spotter uses
10881
12189
  * this object to query data and generate Answers.
12190
+ * This field is optional. If not provided, Spotter loads using the
12191
+ * previously selected user data source.
10882
12192
  */
10883
- worksheetId: string;
12193
+ worksheetId?: string;
12194
+ /**
12195
+ * The array of data source GUIDs to set on load. Spotter uses
12196
+ * these GUIDs to query data and generate Answers.
12197
+ * dataSources is preferred over worksheetId if both are provided.
12198
+ * The feature is currently behind a feature flag.
12199
+ *
12200
+ * Supported embed types: `SpotterEmbed`
12201
+ * @example
12202
+ * ```js
12203
+ * const embed = new SpotterEmbed('#tsEmbed', {
12204
+ * // ...other embed view config
12205
+ * dataSources: ['id-2345', 'id-2345'],
12206
+ * });
12207
+ * ```
12208
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12209
+ */
12210
+ dataSources?: string[];
12211
+ /**
12212
+ * Configuration for the Spotter Analyst experience.
12213
+ *
12214
+ * Supported embed types: `SpotterEmbed`
12215
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12216
+ * @example
12217
+ * ```js
12218
+ * const embed = new SpotterEmbed('#tsEmbed', {
12219
+ * ... //other embed view config
12220
+ * spotterAnalystConfig: {
12221
+ * analystId: 'analyst-id-1234',
12222
+ * },
12223
+ * })
12224
+ * ```
12225
+ */
12226
+ spotterAnalystConfig?: SpotterAnalystConfig;
10884
12227
  /**
10885
12228
  * Ability to pass a starting search query to the conversation.
10886
12229
  */
@@ -11040,6 +12383,39 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11040
12383
  * ```
11041
12384
  */
11042
12385
  updatedSpotterChatPrompt?: boolean;
12386
+ /**
12387
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
12388
+ *
12389
+ * Supported embed types: `SpotterEmbed`
12390
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12391
+ * @default false
12392
+ * @example
12393
+ * ```js
12394
+ * const embed = new SpotterEmbed('#tsEmbed', {
12395
+ * ... //other embed view config
12396
+ * showSpotterRadiance : true,
12397
+ * })
12398
+ * ```
12399
+ */
12400
+ showSpotterRadiance?: boolean;
12401
+ /**
12402
+ * Sets the default query mode when Spotter loads — Fast Search or
12403
+ * Research Mode. Applies fresh on every new session for this embed
12404
+ * instance only; it does not persist as a user preference and does
12405
+ * not affect other embeds or native ThoughtSpot usage.
12406
+ *
12407
+ * Supported embed types: `SpotterEmbed`, `AppEmbed`
12408
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12409
+ * @default SpotterQueryMode.FAST_SEARCH
12410
+ * @example
12411
+ * ```js
12412
+ * const embed = new SpotterEmbed('#tsEmbed', {
12413
+ * ... //other embed view config
12414
+ * defaultQueryMode: SpotterQueryMode.RESEARCH,
12415
+ * })
12416
+ * ```
12417
+ */
12418
+ defaultQueryMode?: SpotterQueryMode;
11043
12419
  /**
11044
12420
  * Enables the stop answer generation button in the Spotter embed UI,
11045
12421
  * allowing users to interrupt an ongoing answer generation.
@@ -11098,6 +12474,59 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11098
12474
  * ```
11099
12475
  */
11100
12476
  spotterChatConfig?: SpotterChatViewConfig;
12477
+ /**
12478
+ * Configuration for the Spotter conversation sharing feature.
12479
+ *
12480
+ * Supported embed types: `SpotterEmbed`, `AppEmbed`
12481
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12482
+ * @example
12483
+ * ```js
12484
+ * const embed = new SpotterEmbed('#tsEmbed', {
12485
+ * ... //other embed view config
12486
+ * spotterShareConversationConfig: {
12487
+ * enableShareConversation: true,
12488
+ * },
12489
+ * })
12490
+ * ```
12491
+ */
12492
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
12493
+ /**
12494
+ * The ID of a shared Spotter conversation to open directly in the read-only
12495
+ * reader view. Use this to land a share recipient in the shared conversation
12496
+ * when they open a host-configured `CONVERSATION_URL` share link: read the
12497
+ * `{conversation-id}` from your page URL and pass it here.
12498
+ *
12499
+ * Requires the Spotter conversation-sharing feature to be enabled
12500
+ * (`spotterShareConversationConfig.enableShareConversation`). The recipient
12501
+ * must be an authorized sharee — the server returns access-denied otherwise.
12502
+ *
12503
+ * Supported embed types: `SpotterEmbed`
12504
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12505
+ * @example
12506
+ * ```js
12507
+ * const convId = new URLSearchParams(window.location.search).get('conversation-id');
12508
+ * const embed = new SpotterEmbed('#tsEmbed', {
12509
+ * ... //other embed view config
12510
+ * sharedConversationId: convId,
12511
+ * })
12512
+ * ```
12513
+ */
12514
+ sharedConversationId?: string;
12515
+ /**
12516
+ * updatedSpotterExperience : Controls the updated Spotter experience.
12517
+ *
12518
+ * Supported embed types: `SpotterEmbed`
12519
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12520
+ * @default false
12521
+ * @example
12522
+ * ```js
12523
+ * const embed = new SpotterEmbed('#tsEmbed', {
12524
+ * ... //other embed view config
12525
+ * updatedSpotterExperience : true,
12526
+ * })
12527
+ * ```
12528
+ */
12529
+ updatedSpotterExperience?: boolean;
11101
12530
  }
11102
12531
  /**
11103
12532
  * The configuration for the embedded spotterEmbed options.
@@ -11114,7 +12543,9 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
11114
12543
  export interface SpotterAppInitData extends DefaultAppInitData {
11115
12544
  embedParams?: {
11116
12545
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12546
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
11117
12547
  visualOverridesParams?: VisualizationOverrides | null;
12548
+ starterPrompts?: StarterPromptsConfig;
11118
12549
  };
11119
12550
  }
11120
12551
  /**
@@ -11204,12 +12635,17 @@ export interface SpotterVizStarterPrompt {
11204
12635
  * customStarterPrompts: [
11205
12636
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
11206
12637
  * ],
11207
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12638
+ * // The options below require SDK: 1.51.0
11208
12639
  * loaderHeadline: 'Crunching the numbers...',
11209
12640
  * loaderTips: [
11210
12641
  * { label: 'Tip', text: 'try asking about revenue by region' },
11211
12642
  * { label: 'Tip', text: 'use natural language' },
11212
12643
  * ],
12644
+ * liveboardBrandName: 'Reports',
12645
+ * spotterBrandName: 'Analyst',
12646
+ * insightTileBrandName: 'Insight card',
12647
+ * insightTileViewPlanLabel: 'View plan',
12648
+ * insightTileLoaderText: 'Generating insight',
11213
12649
  * },
11214
12650
  * })
11215
12651
  * ```
@@ -11257,19 +12693,47 @@ export interface SpotterVizConfig {
11257
12693
  /**
11258
12694
  * Custom headline text shown in the SpotterViz loading state.
11259
12695
  * Replaces the default loading headline.
11260
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12696
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11261
12697
  */
11262
12698
  loaderHeadline?: string;
11263
12699
  /**
11264
12700
  * Custom tips shown in the SpotterViz loading state.
11265
12701
  * Replaces the default loading tips with the provided list.
11266
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12702
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11267
12703
  */
11268
12704
  loaderTips?: SpotterVizLoaderTip[];
12705
+ /**
12706
+ * Custom term used to replace "Liveboard" in the agent's responses.
12707
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12708
+ * @default ''
12709
+ */
12710
+ liveboardBrandName?: string;
12711
+ /**
12712
+ * Custom term used to replace "Spotter" in the agent's responses.
12713
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12714
+ * @default ''
12715
+ */
12716
+ spotterBrandName?: string;
12717
+ /**
12718
+ * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
12719
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12720
+ * @default ''
12721
+ */
12722
+ insightTileBrandName?: string;
12723
+ /**
12724
+ * Custom term used to replace "View plan" in the insight tile menu.
12725
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12726
+ */
12727
+ insightTileViewPlanLabel?: string;
12728
+ /**
12729
+ * Custom loader text shown on the insight tile.
12730
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
12731
+ */
12732
+ insightTileLoaderText?: string;
11269
12733
  }
11270
12734
  /**
11271
12735
  * A single tip shown in the SpotterViz loading state.
11272
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12736
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11273
12737
  * @group Embed components
11274
12738
  */
11275
12739
  export interface SpotterVizLoaderTip {
@@ -11313,7 +12777,15 @@ export enum Page {
11313
12777
  /**
11314
12778
  * Monitor Alerts Page
11315
12779
  */
11316
- Monitor = "monitor"
12780
+ Monitor = "monitor",
12781
+ /**
12782
+ * Collections listing page
12783
+ */
12784
+ Collections = "collections",
12785
+ /**
12786
+ * Liveboard schedules listing page
12787
+ */
12788
+ LiveboardSchedules = "liveboard-schedules"
11317
12789
  }
11318
12790
  /**
11319
12791
  * Define the initial state of column custom group accordions
@@ -11358,6 +12830,9 @@ export enum HomePage {
11358
12830
  /**
11359
12831
  * Modular (v2) introduces the updated Modular Home Experience.
11360
12832
  * It serves as the foundational version of the home page.
12833
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
12834
+ * {@link HomePage.Focused} (V4) instead.
12835
+ * @deprecated V1 and V2 home page experiences are deprecated.
11361
12836
  */
11362
12837
  Modular = "v2",
11363
12838
  /**
@@ -11431,13 +12906,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11431
12906
  showPrimaryNavbar?: boolean;
11432
12907
  /**
11433
12908
  * Control the visibility of the left navigation panel on the home page
11434
- * in the V2 and V3 navigation and home page experience.
12909
+ * in the V3 and V4 navigation and home page experience.
11435
12910
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
11436
12911
  * navigation bars are visible, this flag will only hide the left navigation bar
11437
12912
  * on the home page.
11438
12913
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
11439
12914
  *
11440
- * **Note**: This attribute is not supported in the classic (V1) experience.
12915
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
12916
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
11441
12917
  *
11442
12918
  * Supported embed types: `AppEmbed`
11443
12919
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11503,11 +12979,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11503
12979
  hideHamburger?: boolean;
11504
12980
  /**
11505
12981
  * Control the visibility of the object search
11506
- * on the top navigation bar in the
11507
- * V2 and V3 navigation experience.
12982
+ * on the top navigation bar in the V3 navigation experience.
11508
12983
  *
11509
- * **Note**: This attribute is not supported
11510
- * in the classic (V1) experience.
12984
+ * **Note**: The classic (V1) and V2 navigation experiences are
12985
+ * deprecated. This attribute applies to the V3 navigation experience.
11511
12986
  *
11512
12987
  * Supported embed types: `AppEmbed`
11513
12988
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -11525,8 +13000,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11525
13000
  * Control the visibility of the notification icon
11526
13001
  * on the top navigation bar in V3 navigation experience.
11527
13002
  *
11528
- * **Note**: This attribute is not supported
11529
- * in the classic (V1) and V2 experience modes.
13003
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
13004
+ * This attribute applies to the V3 experience.
11530
13005
  *
11531
13006
  * Supported embed types: `AppEmbed`
11532
13007
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -11541,14 +13016,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11541
13016
  */
11542
13017
  hideNotification?: boolean;
11543
13018
  /**
11544
- * Control the visibility of the application selection menu
11545
- * in the top navigation bar in the V2 experience.
13019
+ * Control the visibility of the application selection menu.
11546
13020
  * In the V3 experience, it shows or hides application selection
11547
13021
  * icons on the left navigation panel.
11548
13022
  * By default, the application selection menu and icons are
11549
13023
  * shown in the UI.
11550
13024
  *
11551
- * **Note**: This attribute is not supported in the classic (V1) experience.
13025
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
13026
+ * This attribute applies to the V3 experience.
11552
13027
  *
11553
13028
  * Supported embed types: `AppEmbed`
11554
13029
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11566,7 +13041,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11566
13041
  * Control the visibility of the Org switcher button on the nav-bar.
11567
13042
  * By default, the Org switcher button is shown.
11568
13043
  *
11569
- * **Note**: This attribute is not supported in the classic (V1) experience.
13044
+ * **Note**: The classic (V1) experience is deprecated. This attribute
13045
+ * applies to V2 (deprecated), V3 and V4 experiences.
11570
13046
  *
11571
13047
  * Supported embed types: `AppEmbed`
11572
13048
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -11707,6 +13183,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11707
13183
  * `false` fetches visualizations incrementally as
11708
13184
  * users scroll the page to view the charts and tables.
11709
13185
  *
13186
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13187
+ * {@link lazyLoadingForFullHeight} and
13188
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13189
+ * they scroll into view. Set either flag to `false` to opt out.
13190
+ *
11710
13191
  * Supported embed types: `AppEmbed`
11711
13192
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
11712
13193
  * @example
@@ -11725,6 +13206,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11725
13206
  * Supported embed types: `AppEmbed`
11726
13207
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
11727
13208
  * @default false
13209
+ * Use the discoveryExperience.homePage option with
13210
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
13211
+ * {@link HomePage.Focused} (V4) instead.
13212
+ * @deprecated The V1 and V2 home page experiences are deprecated.
11728
13213
  * @example
11729
13214
  * ```js
11730
13215
  * const embed = new AppEmbed('#tsEmbed', {
@@ -11856,11 +13341,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11856
13341
  /**
11857
13342
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
11858
13343
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
11859
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
13344
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
11860
13345
  *
11861
13346
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
11862
13347
  * @type {boolean}
11863
13348
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
13349
+ * @default true
11864
13350
  * @example
11865
13351
  * ```js
11866
13352
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -11873,10 +13359,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11873
13359
  isContinuousLiveboardPDFEnabled?: boolean;
11874
13360
  /**
11875
13361
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
13362
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
11876
13363
  *
11877
13364
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
11878
13365
  * @type {boolean}
11879
13366
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13367
+ * @default true
11880
13368
  * @example
11881
13369
  * ```js
11882
13370
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -11889,10 +13377,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11889
13377
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
11890
13378
  /**
11891
13379
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
13380
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
11892
13381
  *
11893
13382
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
11894
13383
  * @type {boolean}
11895
13384
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13385
+ * @default true
11896
13386
  * @example
11897
13387
  * ```js
11898
13388
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -11904,11 +13394,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11904
13394
  */
11905
13395
  isGranularXLSXCSVSchedulesEnabled?: boolean;
11906
13396
  /**
11907
- * This flag is used to enable the full height lazy load data.
13397
+ * Loads visualizations only as they scroll into the viewport, instead of
13398
+ * loading the whole full-height Liveboard at once.
13399
+ *
13400
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13401
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13402
+ * set explicitly. Set it to `false` to load every visualization upfront.
13403
+ * The flag has no effect unless `fullHeight` is enabled.
11908
13404
  *
11909
13405
  * @type {boolean}
11910
13406
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
11911
- * @default false
13407
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
11912
13408
  * @example
11913
13409
  * ```js
11914
13410
  * const embed = new AppEmbed('#embed-container', {
@@ -11920,27 +13416,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11920
13416
  */
11921
13417
  lazyLoadingForFullHeight?: boolean;
11922
13418
  /**
11923
- * This flag is used to enable container-aware full height lazy loading.
13419
+ * Computes the visible region of the embed against its scrollable and
13420
+ * clipping ancestors, instead of treating the browser window as the only
13421
+ * viewport, and tracks scroll and resize on those ancestors.
11924
13422
  *
11925
- * Use this when the embed is rendered inside a scrollable or clipping
11926
- * container instead of relying on the browser window as the only viewport.
13423
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13424
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13425
+ * set explicitly. Set it to `false` when the page scrolls with the window
13426
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13427
+ * tracking.
11927
13428
  *
11928
13429
  * @type {boolean}
11929
- * @default false
13430
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
11930
13431
  * @hidden
11931
13432
  */
11932
13433
  enableScrollableContainerLazyLoading?: boolean;
11933
13434
  /**
11934
- * The margin to be used for lazy loading.
13435
+ * How far outside the viewport a visualization starts loading, when
13436
+ * {@link lazyLoadingForFullHeight} is enabled.
11935
13437
  *
11936
13438
  * For example, if the margin is set to '10px',
11937
13439
  * the visualization will be loaded 10px before its top edge is visible in the
11938
13440
  * viewport.
11939
13441
  *
11940
- * The format is similar to CSS margin.
13442
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13443
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13444
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13445
+ * `auto`; an invalid value is logged and ignored.
13446
+ *
13447
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13448
+ * visualization ahead of the scroll position, so a chart has usually
13449
+ * finished loading by the time it scrolls into view. Use a smaller margin
13450
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13451
+ * only once it is actually visible.
11941
13452
  *
11942
13453
  * @type {string}
11943
13454
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13455
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
11944
13456
  * @example
11945
13457
  * ```js
11946
13458
  * const embed = new AppEmbed('#embed-container', {
@@ -11968,6 +13480,40 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11968
13480
  * ```
11969
13481
  */
11970
13482
  updatedSpotterChatPrompt?: boolean;
13483
+ /**
13484
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
13485
+ *
13486
+ * Supported embed types: `AppEmbed`
13487
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13488
+ * @default false
13489
+ * @example
13490
+ * ```js
13491
+ * const embed = new AppEmbed('#tsEmbed', {
13492
+ * ... //other embed view config
13493
+ * showSpotterRadiance : true,
13494
+ * })
13495
+ * ```
13496
+ */
13497
+ showSpotterRadiance?: boolean;
13498
+ /**
13499
+ * Sets the default query mode when Spotter loads — Fast Search or
13500
+ * Research Mode. Applies fresh on every new session for this embed
13501
+ * instance only; it does not persist as a user preference and does
13502
+ * not affect other embeds or native ThoughtSpot usage.
13503
+ * Only applicable when navigating to Spotter within the app.
13504
+ *
13505
+ * Supported embed types: `AppEmbed`
13506
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13507
+ * @default SpotterQueryMode.FAST_SEARCH
13508
+ * @example
13509
+ * ```js
13510
+ * const embed = new AppEmbed('#tsEmbed', {
13511
+ * ... //other embed view config
13512
+ * defaultQueryMode: SpotterQueryMode.RESEARCH,
13513
+ * })
13514
+ * ```
13515
+ */
13516
+ defaultQueryMode?: SpotterQueryMode;
11971
13517
  /**
11972
13518
  * Controls the visibility of the past conversations sidebar.
11973
13519
  *
@@ -11993,6 +13539,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
11993
13539
  * spotterSidebarConfig: {
11994
13540
  * enablePastConversationsSidebar: true,
11995
13541
  * spotterSidebarTitle: 'My Conversations',
13542
+ * // Opt in to pin/unpin conversations in embedded Spotter
13543
+ * spotterChatPinConfig: {
13544
+ * enabled: true,
13545
+ * },
11996
13546
  * },
11997
13547
  * })
11998
13548
  * ```
@@ -12016,6 +13566,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12016
13566
  * ```
12017
13567
  */
12018
13568
  spotterChatConfig?: SpotterChatViewConfig;
13569
+ /**
13570
+ * Configuration for the Spotter conversation sharing feature.
13571
+ *
13572
+ * Supported embed types: `AppEmbed`
13573
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13574
+ * @example
13575
+ * ```js
13576
+ * const embed = new AppEmbed('#tsEmbed', {
13577
+ * ... //other embed view config
13578
+ * spotterShareConversationConfig: {
13579
+ * enableShareConversation: true,
13580
+ * },
13581
+ * })
13582
+ * ```
13583
+ */
13584
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13585
+ /**
13586
+ * Sets the default data sources (Models) for the Spotter experience shown on
13587
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
13588
+ * preselect the data sources available to Spotter, or the literal
13589
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
13590
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
13591
+ * Auto mode in `SpotterEmbed`.
13592
+ *
13593
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
13594
+ * `'auto_mode'` takes precedence and is selected by default.
13595
+ *
13596
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
13597
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
13598
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
13599
+ *
13600
+ * Supported embed types: `AppEmbed`
13601
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
13602
+ * @example
13603
+ * ```js
13604
+ * const embed = new AppEmbed('#tsEmbed', {
13605
+ * ... // other embed view config
13606
+ * discoveryExperience: { homePage: HomePage.Focused },
13607
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
13608
+ * })
13609
+ * ```
13610
+ */
13611
+ spotterDataSources?: string[];
12019
13612
  /**
12020
13613
  * Configuration for the SpotterViz interface shown on the Liveboard.
12021
13614
  * Customize the brand name, description, chat input placeholder,
@@ -12034,12 +13627,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12034
13627
  * inputChatPlaceholder: 'Ask a question...',
12035
13628
  * hideStarterPrompts: false,
12036
13629
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
12037
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13630
+ * // The options below require SDK: 1.51.0
12038
13631
  * loaderHeadline: 'Crunching the numbers...',
12039
13632
  * loaderTips: [
12040
13633
  * { label: 'Tip', text: 'try asking about revenue by region' },
12041
13634
  * { label: 'Tip', text: 'use natural language' },
12042
13635
  * ],
13636
+ * liveboardBrandName: 'Reports',
13637
+ * spotterBrandName: 'Analyst',
13638
+ * insightTileBrandName: 'Insight card',
13639
+ * insightTileViewPlanLabel: 'View plan',
13640
+ * insightTileLoaderText: 'Generating insight',
12043
13641
  * },
12044
13642
  * })
12045
13643
  * ```
@@ -12105,6 +13703,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12105
13703
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12106
13704
  */
12107
13705
  visualOverrides?: VisualizationOverrides;
13706
+ /**
13707
+ * updatedSpotterExperience : Controls the updated Spotter experience.
13708
+ *
13709
+ * Supported embed types: `AppEmbed`
13710
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13711
+ * @default false
13712
+ * @example
13713
+ * ```js
13714
+ * const embed = new AppEmbed('#tsEmbed', {
13715
+ * ... //other embed view config
13716
+ * updatedSpotterExperience : true,
13717
+ * })
13718
+ * ```
13719
+ */
13720
+ updatedSpotterExperience?: boolean;
12108
13721
  }
12109
13722
  /**
12110
13723
  * APP_INIT data shape for AppEmbed.
@@ -12114,6 +13727,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
12114
13727
  embedParams?: {
12115
13728
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12116
13729
  spotterVizConfig?: SpotterVizConfig;
13730
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13731
+ starterPrompts?: StarterPromptsConfig;
12117
13732
  };
12118
13733
  }
12119
13734
  /**
@@ -12144,6 +13759,7 @@ export class AppEmbed extends V1Embed {
12144
13759
  * embedded Liveboard or visualization.
12145
13760
  */
12146
13761
  protected getEmbedParams(): string;
13762
+ protected getEmbedParamsObject(): any;
12147
13763
  private sendFullHeightLazyLoadData;
12148
13764
  /**
12149
13765
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -12395,7 +14011,7 @@ export const prefetch: (url?: string, prefetchFeatures?: PrefetchFeatures[], add
12395
14011
  /**
12396
14012
  * Initializes the Visual Embed SDK globally and perform
12397
14013
  * authentication if applicable. This function needs to be called before any ThoughtSpot
12398
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
14014
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
12399
14015
  * to actually embed. That is handled internally.
12400
14016
  * @param embedConfig The configuration object containing ThoughtSpot host,
12401
14017
  * authentication mechanism and so on.
@@ -12494,6 +14110,7 @@ export const reloadIframe: (iFrame: HTMLIFrameElement) => void;
12494
14110
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
12495
14111
  embedParams?: {
12496
14112
  spotterVizConfig?: SpotterVizConfig;
14113
+ starterPrompts?: StarterPromptsConfig;
12497
14114
  };
12498
14115
  }
12499
14116
  /**
@@ -12512,6 +14129,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12512
14129
  * Setting `fullHeight` to `false` fetches visualizations
12513
14130
  * incrementally as users scroll the page to view the charts and tables.
12514
14131
  *
14132
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14133
+ * {@link lazyLoadingForFullHeight} and
14134
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14135
+ * they scroll into view. Set either flag to `false` to opt out.
14136
+ *
12515
14137
  *
12516
14138
  * Supported embed types: `LiveboardEmbed`
12517
14139
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -12851,11 +14473,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12851
14473
  /**
12852
14474
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
12853
14475
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
12854
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
14476
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
12855
14477
  *
12856
14478
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12857
14479
  * @type {boolean}
12858
14480
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
14481
+ * @default true
12859
14482
  * @example
12860
14483
  * ```js
12861
14484
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12868,10 +14491,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12868
14491
  isContinuousLiveboardPDFEnabled?: boolean;
12869
14492
  /**
12870
14493
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
14494
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
12871
14495
  *
12872
14496
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12873
14497
  * @type {boolean}
12874
14498
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14499
+ * @default true
12875
14500
  * @example
12876
14501
  * ```js
12877
14502
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12884,10 +14509,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12884
14509
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
12885
14510
  /**
12886
14511
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
14512
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
12887
14513
  *
12888
14514
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12889
14515
  * @type {boolean}
12890
14516
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14517
+ * @default true
12891
14518
  * @example
12892
14519
  * ```js
12893
14520
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12899,11 +14526,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12899
14526
  */
12900
14527
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12901
14528
  /**
12902
- * This flag is used to enable the full height lazy load data.
14529
+ * Loads visualizations only as they scroll into the viewport, instead of
14530
+ * loading the whole full-height Liveboard at once.
14531
+ *
14532
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14533
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14534
+ * set explicitly. Set it to `false` to load every visualization upfront.
14535
+ * The flag has no effect unless `fullHeight` is enabled.
12903
14536
  *
12904
14537
  * @type {boolean}
12905
14538
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12906
- * @default false
14539
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12907
14540
  * @example
12908
14541
  * ```js
12909
14542
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -12915,26 +14548,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12915
14548
  */
12916
14549
  lazyLoadingForFullHeight?: boolean;
12917
14550
  /**
12918
- * This flag is used to enable container-aware full height lazy loading.
14551
+ * Computes the visible region of the embed against its scrollable and
14552
+ * clipping ancestors, instead of treating the browser window as the only
14553
+ * viewport, and tracks scroll and resize on those ancestors.
12919
14554
  *
12920
- * Use this when the embed is rendered inside a scrollable or clipping
12921
- * container instead of relying on the browser window as the only viewport.
14555
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14556
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14557
+ * set explicitly. Set it to `false` when the page scrolls with the window
14558
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14559
+ * tracking.
12922
14560
  *
12923
14561
  * @type {boolean}
12924
- * @default false
14562
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12925
14563
  */
12926
14564
  enableScrollableContainerLazyLoading?: boolean;
12927
14565
  /**
12928
- * The margin to be used for lazy loading.
14566
+ * How far outside the viewport a visualization starts loading, when
14567
+ * {@link lazyLoadingForFullHeight} is enabled.
12929
14568
  *
12930
14569
  * For example, if the margin is set to '10px',
12931
14570
  * the visualization will be loaded 10px before its top edge is visible in the
12932
14571
  * viewport.
12933
14572
  *
12934
- * The format is similar to CSS margin.
14573
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14574
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14575
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14576
+ * `auto`; an invalid value is logged and ignored.
14577
+ *
14578
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14579
+ * visualization ahead of the scroll position, so a chart has usually
14580
+ * finished loading by the time it scrolls into view. Use a smaller margin
14581
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14582
+ * only once it is actually visible.
12935
14583
  *
12936
14584
  * @type {string}
12937
14585
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14586
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12938
14587
  * @example
12939
14588
  * ```js
12940
14589
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -12978,6 +14627,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12978
14627
  * ```
12979
14628
  */
12980
14629
  updatedSpotterChatPrompt?: boolean;
14630
+ /**
14631
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
14632
+ *
14633
+ * Supported embed types: `LiveboardEmbed`
14634
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14635
+ * @default false
14636
+ * @example
14637
+ * ```js
14638
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14639
+ * ... //other embed view config
14640
+ * showSpotterRadiance : true,
14641
+ * })
14642
+ * ```
14643
+ */
14644
+ showSpotterRadiance?: boolean;
12981
14645
  /**
12982
14646
  * Enables the stop answer generation button in the Spotter embed UI,
12983
14647
  * allowing users to interrupt an ongoing answer generation.
@@ -13023,12 +14687,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13023
14687
  * inputChatPlaceholder: 'Ask a question...',
13024
14688
  * hideStarterPrompts: false,
13025
14689
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13026
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14690
+ * // The options below require SDK: 1.51.0
13027
14691
  * loaderHeadline: 'Crunching the numbers...',
13028
14692
  * loaderTips: [
13029
14693
  * { label: 'Tip', text: 'try asking about revenue by region' },
13030
14694
  * { label: 'Tip', text: 'use natural language' },
13031
14695
  * ],
14696
+ * liveboardBrandName: 'Reports',
14697
+ * spotterBrandName: 'Analyst',
14698
+ * insightTileBrandName: 'Insight card',
14699
+ * insightTileViewPlanLabel: 'View plan',
14700
+ * insightTileLoaderText: 'Generating insight',
13032
14701
  * },
13033
14702
  * })
13034
14703
  * ```
@@ -13047,6 +14716,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13047
14716
  * ```
13048
14717
  */
13049
14718
  enableLiveboardDataCache?: boolean;
14719
+ /**
14720
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14721
+ *
14722
+ * Supported embed types: `LiveboardEmbed`
14723
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14724
+ * @default false
14725
+ * @example
14726
+ * ```js
14727
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14728
+ * ... //other embed view config
14729
+ * updatedSpotterExperience : true,
14730
+ * })
14731
+ * ```
14732
+ */
14733
+ updatedSpotterExperience?: boolean;
13050
14734
  }
13051
14735
  /**
13052
14736
  * Embed a ThoughtSpot Liveboard or visualization. When rendered it already
@@ -13119,7 +14803,7 @@ export class LiveboardEmbed extends V1Embed {
13119
14803
  * @param {any} data The payload to send with the message
13120
14804
  * @returns A promise that resolves with the response from the embedded app
13121
14805
  */
13122
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14806
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
13123
14807
  /**
13124
14808
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
13125
14809
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -13807,6 +15491,10 @@ export const MIXPANEL_EVENT: {
13807
15491
  VISUAL_SDK_IFRAME_LOAD_PERFORMANCE: string;
13808
15492
  VISUAL_SDK_EMBED_CREATE: string;
13809
15493
  VERCEL_INTEGRATION_COMPLETED: string;
15494
+ VISUAL_SDK_RENDER_CALLED: string;
15495
+ VISUAL_SDK_PRE_RENDER: string;
15496
+ VISUAL_SDK_SHOW_PRE_RENDER: string;
15497
+ VISUAL_SDK_HIDE_PRE_RENDER: string;
13810
15498
  };
13811
15499
  /**
13812
15500
  * Pushes the event with its Property key-value map to mixpanel.