@thoughtspot/visual-embed-sdk 1.52.0 → 1.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/cjs/package.json +9 -1
  2. package/cjs/src/contracts/contracts.spec.d.ts +2 -0
  3. package/cjs/src/contracts/contracts.spec.d.ts.map +1 -0
  4. package/cjs/src/contracts/contracts.spec.js +345 -0
  5. package/cjs/src/contracts/contracts.spec.js.map +1 -0
  6. package/cjs/src/contracts/embed-event-payloads.d.ts +73 -0
  7. package/cjs/src/contracts/embed-event-payloads.d.ts.map +1 -0
  8. package/cjs/src/contracts/embed-event-payloads.js +3 -0
  9. package/cjs/src/contracts/embed-event-payloads.js.map +1 -0
  10. package/cjs/src/contracts/host-event-contracts.d.ts +378 -0
  11. package/cjs/src/contracts/host-event-contracts.d.ts.map +1 -0
  12. package/cjs/src/contracts/host-event-contracts.js +3 -0
  13. package/cjs/src/contracts/host-event-contracts.js.map +1 -0
  14. package/cjs/src/contracts/index.d.ts +22 -0
  15. package/cjs/src/contracts/index.d.ts.map +1 -0
  16. package/cjs/src/contracts/index.js +33 -0
  17. package/cjs/src/contracts/index.js.map +1 -0
  18. package/cjs/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  19. package/cjs/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  20. package/cjs/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
  21. package/cjs/src/contracts/ui-passthrough-contracts.js.map +1 -0
  22. package/cjs/src/embed/app.d.ts +17 -140
  23. package/cjs/src/embed/app.d.ts.map +1 -1
  24. package/cjs/src/embed/app.js +20 -120
  25. package/cjs/src/embed/app.js.map +1 -1
  26. package/cjs/src/embed/app.spec.js +70 -26
  27. package/cjs/src/embed/app.spec.js.map +1 -1
  28. package/cjs/src/embed/events.spec.js +12 -2
  29. package/cjs/src/embed/events.spec.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +3 -2
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +23 -18
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +36 -36
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/hostEventClient/utils.d.ts +1 -1
  37. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  38. package/cjs/src/embed/hostEventClient/utils.js +3 -3
  39. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  40. package/cjs/src/embed/liveboard.d.ts +9 -161
  41. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  42. package/cjs/src/embed/liveboard.js +66 -134
  43. package/cjs/src/embed/liveboard.js.map +1 -1
  44. package/cjs/src/embed/liveboard.spec.js +211 -28
  45. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  46. package/cjs/src/embed/search.d.ts +14 -0
  47. package/cjs/src/embed/search.d.ts.map +1 -1
  48. package/cjs/src/embed/search.js +4 -1
  49. package/cjs/src/embed/search.js.map +1 -1
  50. package/cjs/src/embed/search.spec.js +65 -0
  51. package/cjs/src/embed/search.spec.js.map +1 -1
  52. package/cjs/src/embed/ts-embed.d.ts +17 -22
  53. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  54. package/cjs/src/embed/ts-embed.js +82 -56
  55. package/cjs/src/embed/ts-embed.js.map +1 -1
  56. package/cjs/src/embed/ts-embed.spec.js +325 -17
  57. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  58. package/cjs/src/full-height.d.ts +137 -0
  59. package/cjs/src/full-height.d.ts.map +1 -0
  60. package/cjs/src/full-height.js +272 -0
  61. package/cjs/src/full-height.js.map +1 -0
  62. package/cjs/src/full-height.spec.d.ts +2 -0
  63. package/cjs/src/full-height.spec.d.ts.map +1 -0
  64. package/cjs/src/full-height.spec.js +835 -0
  65. package/cjs/src/full-height.spec.js.map +1 -0
  66. package/cjs/src/index.d.ts +4 -3
  67. package/cjs/src/index.d.ts.map +1 -1
  68. package/cjs/src/index.js +3 -3
  69. package/cjs/src/index.js.map +1 -1
  70. package/cjs/src/react/all-types-export.d.ts +1 -1
  71. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  72. package/cjs/src/react/all-types-export.js.map +1 -1
  73. package/cjs/src/react/all-types-export.parity.spec.js +55 -3
  74. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -1
  75. package/cjs/src/types.d.ts +540 -3
  76. package/cjs/src/types.d.ts.map +1 -1
  77. package/cjs/src/types.js +326 -1
  78. package/cjs/src/types.js.map +1 -1
  79. package/cjs/src/utils/processTrigger.d.ts +3 -1
  80. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  81. package/cjs/src/utils/processTrigger.js +19 -51
  82. package/cjs/src/utils/processTrigger.js.map +1 -1
  83. package/cjs/src/utils/transport/iframe-transport.d.ts +55 -0
  84. package/cjs/src/utils/transport/iframe-transport.d.ts.map +1 -0
  85. package/cjs/src/utils/transport/iframe-transport.js +108 -0
  86. package/cjs/src/utils/transport/iframe-transport.js.map +1 -0
  87. package/cjs/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  88. package/cjs/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  89. package/cjs/src/utils/transport/iframe-transport.spec.js +140 -0
  90. package/cjs/src/utils/transport/iframe-transport.spec.js.map +1 -0
  91. package/cjs/src/utils.d.ts +18 -0
  92. package/cjs/src/utils.d.ts.map +1 -1
  93. package/cjs/src/utils.js +39 -1
  94. package/cjs/src/utils.js.map +1 -1
  95. package/cjs/src/utils.spec.js +62 -0
  96. package/cjs/src/utils.spec.js.map +1 -1
  97. package/dist/{index-BMppCU63.js → index-C1pmYb5H.js} +1 -1
  98. package/dist/src/contracts/contracts.spec.d.ts +2 -0
  99. package/dist/src/contracts/contracts.spec.d.ts.map +1 -0
  100. package/dist/src/contracts/embed-event-payloads.d.ts +73 -0
  101. package/dist/src/contracts/embed-event-payloads.d.ts.map +1 -0
  102. package/dist/src/contracts/host-event-contracts.d.ts +378 -0
  103. package/dist/src/contracts/host-event-contracts.d.ts.map +1 -0
  104. package/dist/src/contracts/index.d.ts +22 -0
  105. package/dist/src/contracts/index.d.ts.map +1 -0
  106. package/dist/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  107. package/dist/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  108. package/dist/src/embed/app.d.ts +17 -140
  109. package/dist/src/embed/app.d.ts.map +1 -1
  110. package/dist/src/embed/hostEventClient/host-event-client.d.ts +3 -2
  111. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  112. package/dist/src/embed/hostEventClient/utils.d.ts +1 -1
  113. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  114. package/dist/src/embed/liveboard.d.ts +9 -161
  115. package/dist/src/embed/liveboard.d.ts.map +1 -1
  116. package/dist/src/embed/search.d.ts +14 -0
  117. package/dist/src/embed/search.d.ts.map +1 -1
  118. package/dist/src/embed/ts-embed.d.ts +17 -22
  119. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  120. package/dist/src/full-height.d.ts +137 -0
  121. package/dist/src/full-height.d.ts.map +1 -0
  122. package/dist/src/full-height.spec.d.ts +2 -0
  123. package/dist/src/full-height.spec.d.ts.map +1 -0
  124. package/dist/src/index.d.ts +4 -3
  125. package/dist/src/index.d.ts.map +1 -1
  126. package/dist/src/react/all-types-export.d.ts +1 -1
  127. package/dist/src/react/all-types-export.d.ts.map +1 -1
  128. package/dist/src/types.d.ts +540 -3
  129. package/dist/src/types.d.ts.map +1 -1
  130. package/dist/src/utils/processTrigger.d.ts +3 -1
  131. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  132. package/dist/src/utils/transport/iframe-transport.d.ts +55 -0
  133. package/dist/src/utils/transport/iframe-transport.d.ts.map +1 -0
  134. package/dist/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  135. package/dist/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  136. package/dist/src/utils.d.ts +18 -0
  137. package/dist/src/utils.d.ts.map +1 -1
  138. package/dist/tsembed-react.es.js +925 -363
  139. package/dist/tsembed-react.js +924 -362
  140. package/dist/tsembed.es.js +925 -363
  141. package/dist/tsembed.js +924 -362
  142. package/dist/visual-embed-sdk-react-full.d.ts +1357 -656
  143. package/dist/visual-embed-sdk-react.d.ts +1257 -606
  144. package/dist/visual-embed-sdk.d.ts +1320 -642
  145. package/lib/package.json +9 -1
  146. package/lib/src/contracts/contracts.spec.d.ts +2 -0
  147. package/lib/src/contracts/contracts.spec.d.ts.map +1 -0
  148. package/lib/src/contracts/contracts.spec.js +342 -0
  149. package/lib/src/contracts/contracts.spec.js.map +1 -0
  150. package/lib/src/contracts/embed-event-payloads.d.ts +73 -0
  151. package/lib/src/contracts/embed-event-payloads.d.ts.map +1 -0
  152. package/lib/src/contracts/embed-event-payloads.js +2 -0
  153. package/lib/src/contracts/embed-event-payloads.js.map +1 -0
  154. package/lib/src/contracts/host-event-contracts.d.ts +378 -0
  155. package/lib/src/contracts/host-event-contracts.d.ts.map +1 -0
  156. package/lib/src/contracts/host-event-contracts.js +2 -0
  157. package/lib/src/contracts/host-event-contracts.js.map +1 -0
  158. package/lib/src/contracts/index.d.ts +22 -0
  159. package/lib/src/contracts/index.d.ts.map +1 -0
  160. package/lib/src/contracts/index.js +22 -0
  161. package/lib/src/contracts/index.js.map +1 -0
  162. package/lib/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  163. package/lib/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  164. package/lib/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
  165. package/lib/src/contracts/ui-passthrough-contracts.js.map +1 -0
  166. package/lib/src/embed/app.d.ts +17 -140
  167. package/lib/src/embed/app.d.ts.map +1 -1
  168. package/lib/src/embed/app.js +22 -122
  169. package/lib/src/embed/app.js.map +1 -1
  170. package/lib/src/embed/app.spec.js +70 -26
  171. package/lib/src/embed/app.spec.js.map +1 -1
  172. package/lib/src/embed/events.spec.js +12 -2
  173. package/lib/src/embed/events.spec.js.map +1 -1
  174. package/lib/src/embed/hostEventClient/host-event-client.d.ts +3 -2
  175. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  176. package/lib/src/embed/hostEventClient/host-event-client.js +6 -1
  177. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  178. package/lib/src/embed/hostEventClient/host-event-client.spec.js +1 -1
  179. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  180. package/lib/src/embed/hostEventClient/utils.d.ts +1 -1
  181. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  182. package/lib/src/embed/hostEventClient/utils.js +1 -1
  183. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  184. package/lib/src/embed/liveboard.d.ts +9 -161
  185. package/lib/src/embed/liveboard.d.ts.map +1 -1
  186. package/lib/src/embed/liveboard.js +67 -135
  187. package/lib/src/embed/liveboard.js.map +1 -1
  188. package/lib/src/embed/liveboard.spec.js +211 -28
  189. package/lib/src/embed/liveboard.spec.js.map +1 -1
  190. package/lib/src/embed/search.d.ts +14 -0
  191. package/lib/src/embed/search.d.ts.map +1 -1
  192. package/lib/src/embed/search.js +4 -1
  193. package/lib/src/embed/search.js.map +1 -1
  194. package/lib/src/embed/search.spec.js +65 -0
  195. package/lib/src/embed/search.spec.js.map +1 -1
  196. package/lib/src/embed/ts-embed.d.ts +17 -22
  197. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  198. package/lib/src/embed/ts-embed.js +82 -56
  199. package/lib/src/embed/ts-embed.js.map +1 -1
  200. package/lib/src/embed/ts-embed.spec.js +322 -14
  201. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  202. package/lib/src/full-height.d.ts +137 -0
  203. package/lib/src/full-height.d.ts.map +1 -0
  204. package/lib/src/full-height.js +268 -0
  205. package/lib/src/full-height.js.map +1 -0
  206. package/lib/src/full-height.spec.d.ts +2 -0
  207. package/lib/src/full-height.spec.d.ts.map +1 -0
  208. package/lib/src/full-height.spec.js +833 -0
  209. package/lib/src/full-height.spec.js.map +1 -0
  210. package/lib/src/index.d.ts +4 -3
  211. package/lib/src/index.d.ts.map +1 -1
  212. package/lib/src/index.js +1 -1
  213. package/lib/src/index.js.map +1 -1
  214. package/lib/src/react/all-types-export.d.ts +1 -1
  215. package/lib/src/react/all-types-export.d.ts.map +1 -1
  216. package/lib/src/react/all-types-export.js.map +1 -1
  217. package/lib/src/react/all-types-export.parity.spec.js +55 -3
  218. package/lib/src/react/all-types-export.parity.spec.js.map +1 -1
  219. package/lib/src/types.d.ts +540 -3
  220. package/lib/src/types.d.ts.map +1 -1
  221. package/lib/src/types.js +326 -1
  222. package/lib/src/types.js.map +1 -1
  223. package/lib/src/utils/processTrigger.d.ts +3 -1
  224. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  225. package/lib/src/utils/processTrigger.js +19 -51
  226. package/lib/src/utils/processTrigger.js.map +1 -1
  227. package/lib/src/utils/transport/iframe-transport.d.ts +55 -0
  228. package/lib/src/utils/transport/iframe-transport.d.ts.map +1 -0
  229. package/lib/src/utils/transport/iframe-transport.js +101 -0
  230. package/lib/src/utils/transport/iframe-transport.js.map +1 -0
  231. package/lib/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  232. package/lib/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  233. package/lib/src/utils/transport/iframe-transport.spec.js +138 -0
  234. package/lib/src/utils/transport/iframe-transport.spec.js.map +1 -0
  235. package/lib/src/utils.d.ts +18 -0
  236. package/lib/src/utils.d.ts.map +1 -1
  237. package/lib/src/utils.js +37 -0
  238. package/lib/src/utils.js.map +1 -1
  239. package/lib/src/utils.spec.js +63 -1
  240. package/lib/src/utils.spec.js.map +1 -1
  241. package/lib/src/visual-embed-sdk.d.ts +1320 -642
  242. package/package.json +9 -1
  243. package/src/contracts/contracts.spec.ts +392 -0
  244. package/src/contracts/embed-event-payloads.ts +83 -0
  245. package/src/contracts/host-event-contracts.ts +456 -0
  246. package/src/contracts/index.ts +53 -0
  247. package/src/contracts/ui-passthrough-contracts.ts +301 -0
  248. package/src/embed/app.spec.ts +86 -34
  249. package/src/embed/app.ts +37 -264
  250. package/src/embed/events.spec.ts +14 -2
  251. package/src/embed/hostEventClient/host-event-client.spec.ts +2 -2
  252. package/src/embed/hostEventClient/host-event-client.ts +18 -5
  253. package/src/embed/hostEventClient/utils.ts +2 -1
  254. package/src/embed/liveboard.spec.ts +257 -38
  255. package/src/embed/liveboard.ts +75 -296
  256. package/src/embed/search.spec.ts +80 -0
  257. package/src/embed/search.ts +20 -0
  258. package/src/embed/ts-embed.spec.ts +448 -15
  259. package/src/embed/ts-embed.ts +109 -66
  260. package/src/full-height.spec.ts +1008 -0
  261. package/src/full-height.ts +361 -0
  262. package/src/index.ts +93 -5
  263. package/src/react/all-types-export.parity.spec.ts +63 -3
  264. package/src/react/all-types-export.ts +45 -0
  265. package/src/types.ts +540 -1
  266. package/src/utils/processTrigger.ts +28 -58
  267. package/src/utils/transport/iframe-transport.spec.ts +177 -0
  268. package/src/utils/transport/iframe-transport.ts +122 -0
  269. package/src/utils.spec.ts +71 -0
  270. package/src/utils.ts +38 -0
  271. package/cjs/src/embed/hostEventClient/contracts.d.ts +0 -231
  272. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  273. package/cjs/src/embed/hostEventClient/contracts.js.map +0 -1
  274. package/dist/src/embed/hostEventClient/contracts.d.ts +0 -231
  275. package/dist/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  276. package/lib/src/embed/hostEventClient/contracts.d.ts +0 -231
  277. package/lib/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  278. package/lib/src/embed/hostEventClient/contracts.js.map +0 -1
  279. package/src/embed/hostEventClient/contracts.ts +0 -262
@@ -1299,6 +1299,280 @@ export declare class AnswerService {
1299
1299
  addDisplayedVizToLiveboard(liveboardId: string): Promise<any>;
1300
1300
  setTMLOverride(override: any): void;
1301
1301
  }
1302
+ export interface LiveboardTab {
1303
+ id: string;
1304
+ name: string;
1305
+ [key: string]: any;
1306
+ }
1307
+ export interface LiveboardGroup {
1308
+ id: string;
1309
+ name: string;
1310
+ [key: string]: any;
1311
+ }
1312
+ /**
1313
+ * Levels at which a filter or parameter can be applied.
1314
+ */
1315
+ export declare enum ApplicabilityLevel {
1316
+ Liveboard = "LIVEBOARD",
1317
+ Tab = "TAB",
1318
+ Group = "GROUP"
1319
+ }
1320
+ /**
1321
+ * Scopes a filter or parameter to a specific target.
1322
+ * At `LIVEBOARD` level the filter applies to the whole Liveboard, so `targetId`
1323
+ * is not required. `level` accepts the enum or its string value, e.g. `'TAB'`.
1324
+ */
1325
+ export interface Applicability {
1326
+ level: ApplicabilityLevel | `${ApplicabilityLevel}`;
1327
+ targetId?: string;
1328
+ }
1329
+ export interface FilterUpdate {
1330
+ column: string;
1331
+ oper: string;
1332
+ values: string[];
1333
+ type?: string;
1334
+ applicability?: Applicability;
1335
+ }
1336
+ export interface LiveboardFilter {
1337
+ applicability?: Applicability;
1338
+ [key: string]: any;
1339
+ }
1340
+ export interface LiveboardParameter {
1341
+ applicability?: Applicability;
1342
+ [key: string]: any;
1343
+ }
1344
+ export declare enum UIPassthroughEvent {
1345
+ PinAnswerToLiveboard = "addVizToPinboard",
1346
+ SaveAnswer = "saveAnswer",
1347
+ GetDiscoverabilityStatus = "getDiscoverabilityStatus",
1348
+ GetAvailableUIPassthroughs = "getAvailableUiPassthroughs",
1349
+ GetAnswerConfig = "getAnswerPageConfig",
1350
+ GetLiveboardConfig = "getPinboardPageConfig",
1351
+ GetUnsavedAnswerTML = "getUnsavedAnswerTML",
1352
+ UpdateFilters = "updateFilters",
1353
+ Drilldown = "drillDown",
1354
+ GetAnswerSession = "getAnswerSession",
1355
+ GetFilters = "getFilters",
1356
+ GetIframeUrl = "getIframeUrl",
1357
+ GetParameters = "getParameters",
1358
+ GetTML = "getTML",
1359
+ GetTabs = "getTabs",
1360
+ GetGroups = "getGroups",
1361
+ GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
1362
+ }
1363
+ /**
1364
+ * UI passthrough contract. Each event's request/response is a named interface so it
1365
+ * documents and imports cleanly; `UIPassthroughContractBase` maps events to the pairs.
1366
+ */
1367
+ /** Request for {@link UIPassthroughEvent.PinAnswerToLiveboard}. */
1368
+ export interface PinAnswerToLiveboardRequest {
1369
+ vizId?: string;
1370
+ newVizName: string;
1371
+ newVizDescription?: string;
1372
+ liveboardId?: string;
1373
+ tabId?: string;
1374
+ newLiveboardName?: string;
1375
+ newTabName?: string;
1376
+ }
1377
+ /** Response for {@link UIPassthroughEvent.PinAnswerToLiveboard}. */
1378
+ export interface PinAnswerToLiveboardResponse {
1379
+ liveboardId: string;
1380
+ tabId: string;
1381
+ vizId: string;
1382
+ }
1383
+ /** Request for {@link UIPassthroughEvent.SaveAnswer}. */
1384
+ export interface SaveAnswerRequest {
1385
+ name: string;
1386
+ description: string;
1387
+ vizId?: string;
1388
+ isDiscoverable?: boolean;
1389
+ }
1390
+ /** Response for {@link UIPassthroughEvent.SaveAnswer}. */
1391
+ export interface SaveAnswerResponse {
1392
+ answerId: string;
1393
+ saveResponse?: any;
1394
+ shareResponse?: any;
1395
+ }
1396
+ /** Response for {@link UIPassthroughEvent.GetDiscoverabilityStatus}. */
1397
+ export interface GetDiscoverabilityStatusResponse {
1398
+ shouldShowDiscoverability: boolean;
1399
+ isDiscoverabilityCheckboxUnselectedPerOrg: boolean;
1400
+ }
1401
+ /** Response for {@link UIPassthroughEvent.GetAvailableUIPassthroughs}. */
1402
+ export interface GetAvailableUIPassthroughsResponse {
1403
+ keys: string[];
1404
+ }
1405
+ /** Request for {@link UIPassthroughEvent.GetAnswerConfig}. */
1406
+ export interface GetAnswerConfigRequest {
1407
+ vizId?: string;
1408
+ }
1409
+ /** Request for {@link UIPassthroughEvent.GetUnsavedAnswerTML}. */
1410
+ export interface GetUnsavedAnswerTMLRequest {
1411
+ sessionId?: string;
1412
+ vizId?: string;
1413
+ }
1414
+ /** Response for {@link UIPassthroughEvent.GetUnsavedAnswerTML}. */
1415
+ export interface GetUnsavedAnswerTMLResponse {
1416
+ tml: string;
1417
+ }
1418
+ /** Request for {@link UIPassthroughEvent.GetAnswerSession}. */
1419
+ export interface GetAnswerSessionRequest {
1420
+ vizId?: string;
1421
+ }
1422
+ /** Response for {@link UIPassthroughEvent.GetAnswerSession}. */
1423
+ export interface GetAnswerSessionResponse {
1424
+ session: SessionInterface;
1425
+ embedAnswerData?: Record<string, any>;
1426
+ }
1427
+ /** Request for {@link UIPassthroughEvent.GetFilters}. */
1428
+ export interface GetFiltersRequest {
1429
+ vizId?: string;
1430
+ }
1431
+ /** Response for {@link UIPassthroughEvent.GetFilters}. */
1432
+ export interface GetFiltersResponse {
1433
+ liveboardFilters: LiveboardFilter[];
1434
+ runtimeFilters: RuntimeFilter[];
1435
+ }
1436
+ /** Response for {@link UIPassthroughEvent.GetIframeUrl}. */
1437
+ export interface GetIframeUrlResponse {
1438
+ iframeUrl: string;
1439
+ }
1440
+ /** Response for {@link UIPassthroughEvent.GetParameters}. */
1441
+ export interface GetParametersResponse {
1442
+ parameters: LiveboardParameter[];
1443
+ }
1444
+ /** Request for {@link UIPassthroughEvent.GetTML}. */
1445
+ export interface GetTMLRequest {
1446
+ vizId?: string;
1447
+ includeNonExecutedSearchTokens?: boolean;
1448
+ }
1449
+ /** Response for {@link UIPassthroughEvent.GetTabs}. */
1450
+ export interface GetTabsResponse {
1451
+ orderedTabIds: string[];
1452
+ numberOfTabs: number;
1453
+ Tabs: LiveboardTab[];
1454
+ }
1455
+ /** Response for {@link UIPassthroughEvent.GetGroups}. */
1456
+ export interface GetGroupsResponse {
1457
+ orderedGroupIds: string[];
1458
+ numberOfGroups: number;
1459
+ Groups: LiveboardGroup[];
1460
+ }
1461
+ /** Response for {@link UIPassthroughEvent.GetExportRequestForCurrentPinboard}. */
1462
+ export interface GetExportRequestForCurrentPinboardResponse {
1463
+ data: {
1464
+ v2Content: string;
1465
+ };
1466
+ type: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
1467
+ }
1468
+ /**
1469
+ * Request for {@link UIPassthroughEvent.UpdateFilters}. Not the host-event
1470
+ * `UpdateFiltersRequest` (host-event-contracts.ts), which has a different shape.
1471
+ */
1472
+ export interface UpdateFiltersPassthroughRequest {
1473
+ filter?: FilterUpdate;
1474
+ filters?: FilterUpdate[];
1475
+ }
1476
+ /** Request for {@link UIPassthroughEvent.Drilldown}. */
1477
+ export interface DrilldownRequest {
1478
+ points: {
1479
+ selectedPoints?: string[];
1480
+ clickedPoint?: string;
1481
+ };
1482
+ columnGuid?: string;
1483
+ autoDrillDown?: boolean;
1484
+ vizId?: string;
1485
+ }
1486
+ /** Maps each UI passthrough event to its request/response pair. */
1487
+ export type UIPassthroughContractBase = {
1488
+ [UIPassthroughEvent.PinAnswerToLiveboard]: {
1489
+ request: PinAnswerToLiveboardRequest;
1490
+ response: PinAnswerToLiveboardResponse;
1491
+ };
1492
+ [UIPassthroughEvent.SaveAnswer]: {
1493
+ request: SaveAnswerRequest;
1494
+ response: SaveAnswerResponse;
1495
+ };
1496
+ [UIPassthroughEvent.GetDiscoverabilityStatus]: {
1497
+ request: any;
1498
+ response: GetDiscoverabilityStatusResponse;
1499
+ };
1500
+ [UIPassthroughEvent.GetAvailableUIPassthroughs]: {
1501
+ request: any;
1502
+ response: GetAvailableUIPassthroughsResponse;
1503
+ };
1504
+ [UIPassthroughEvent.GetAnswerConfig]: {
1505
+ request: GetAnswerConfigRequest;
1506
+ response: any;
1507
+ };
1508
+ [UIPassthroughEvent.GetLiveboardConfig]: {
1509
+ request: any;
1510
+ response: any;
1511
+ };
1512
+ [UIPassthroughEvent.GetUnsavedAnswerTML]: {
1513
+ request: GetUnsavedAnswerTMLRequest;
1514
+ response: GetUnsavedAnswerTMLResponse;
1515
+ };
1516
+ [UIPassthroughEvent.GetAnswerSession]: {
1517
+ request: GetAnswerSessionRequest;
1518
+ response: GetAnswerSessionResponse;
1519
+ };
1520
+ [UIPassthroughEvent.GetFilters]: {
1521
+ request: GetFiltersRequest;
1522
+ response: GetFiltersResponse;
1523
+ };
1524
+ [UIPassthroughEvent.GetIframeUrl]: {
1525
+ request: Record<string, never>;
1526
+ response: GetIframeUrlResponse;
1527
+ };
1528
+ [UIPassthroughEvent.GetParameters]: {
1529
+ request: Record<string, never>;
1530
+ response: GetParametersResponse;
1531
+ };
1532
+ [UIPassthroughEvent.GetTML]: {
1533
+ request: GetTMLRequest;
1534
+ response: Record<string, any>;
1535
+ };
1536
+ [UIPassthroughEvent.GetTabs]: {
1537
+ request: Record<string, never>;
1538
+ response: GetTabsResponse;
1539
+ };
1540
+ [UIPassthroughEvent.GetGroups]: {
1541
+ request: Record<string, never>;
1542
+ response: GetGroupsResponse;
1543
+ };
1544
+ [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
1545
+ request: Record<string, never>;
1546
+ response: GetExportRequestForCurrentPinboardResponse;
1547
+ };
1548
+ [UIPassthroughEvent.UpdateFilters]: {
1549
+ request: UpdateFiltersPassthroughRequest;
1550
+ response: unknown;
1551
+ };
1552
+ [UIPassthroughEvent.Drilldown]: {
1553
+ request: DrilldownRequest;
1554
+ response: unknown;
1555
+ };
1556
+ };
1557
+ export type UIPassthroughRequest<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["request"];
1558
+ export type UIPassthroughResponse<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["response"];
1559
+ export type UIPassthroughArrayResponse<ApiName extends keyof UIPassthroughContractBase> = Array<{
1560
+ refId?: string;
1561
+ value?: UIPassthroughResponse<ApiName>;
1562
+ error?: any;
1563
+ }>;
1564
+ export type EmbedApiHostEventMapping = {
1565
+ [HostEvent.Pin]: UIPassthroughEvent.PinAnswerToLiveboard;
1566
+ [HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer;
1567
+ [HostEvent.GetAnswerSession]: UIPassthroughEvent.GetAnswerSession;
1568
+ [HostEvent.GetFilters]: UIPassthroughEvent.GetFilters;
1569
+ [HostEvent.GetIframeUrl]: UIPassthroughEvent.GetIframeUrl;
1570
+ [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
1571
+ [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
1572
+ [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
1573
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
1574
+ [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
1575
+ };
1302
1576
  /**
1303
1577
  * The authentication mechanism for allowing access to
1304
1578
  * the embedded app
@@ -3733,6 +4007,15 @@ export interface RuntimeParameter {
3733
4007
  * Values
3734
4008
  */
3735
4009
  value: number | boolean | string;
4010
+ /**
4011
+ * Whether the parameter is visible to the user (`UpdateParameters` only).
4012
+ */
4013
+ isVisibleToUser?: boolean;
4014
+ /**
4015
+ * Scope of the update (`UpdateParameters` only). Omitting it, or `level`,
4016
+ * targets the Liveboard level.
4017
+ */
4018
+ applicability?: Applicability;
3736
4019
  }
3737
4020
  /**
3738
4021
  * Event types emitted by the embedded ThoughtSpot application.
@@ -4184,6 +4467,9 @@ export declare enum EmbedEvent {
4184
4467
  Download = "download",
4185
4468
  /**
4186
4469
  * Emitted when the download action is triggered on an Answer.
4470
+ * Payload varies by context: {@link VizScopedRequest} (Search, Answer,
4471
+ * Liveboard), {@link RequiredVizRequest} (Spotter, vizId required). trigger()
4472
+ * accepts the union now; per-context enforced next release.
4187
4473
  * Use start:true to subscribe to when download is initiated, or end:true to
4188
4474
  * subscribe to when download is completed. Default is end:true.
4189
4475
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.0.sw
@@ -4200,6 +4486,9 @@ export declare enum EmbedEvent {
4200
4486
  DownloadAsPng = "downloadAsPng",
4201
4487
  /**
4202
4488
  * Emitted when the Download as PDF action is triggered on an Answer
4489
+ * Payload varies by context: {@link VizScopedRequest} (Search, Answer; plus
4490
+ * liveboardId on Liveboard), {@link RequiredVizRequest} (Spotter). trigger()
4491
+ * accepts the union now; per-context enforced next release.
4203
4492
  * Use start:true to subscribe to when download as PDF is initiated, or end:true to
4204
4493
  * subscribe to when download as PDF is completed. Default is end:true.
4205
4494
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
@@ -4216,6 +4505,9 @@ export declare enum EmbedEvent {
4216
4505
  DownloadAsPdf = "downloadAsPdf",
4217
4506
  /**
4218
4507
  * Emitted when the Download as CSV action is triggered on an Answer.
4508
+ * Payload varies by context: {@link VizScopedRequest} (Search, Answer,
4509
+ * Liveboard), {@link RequiredVizRequest} (Spotter, vizId required). trigger()
4510
+ * accepts the union now; per-context enforced next release.
4219
4511
  * Use start:true to subscribe to when download as CSV is initiated, or end:true to
4220
4512
  * subscribe to when download as CSV is completed. Default is end:true.
4221
4513
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
@@ -4232,6 +4524,9 @@ export declare enum EmbedEvent {
4232
4524
  DownloadAsCsv = "downloadAsCsv",
4233
4525
  /**
4234
4526
  * Emitted when the Download as XLSX action is triggered on an Answer.
4527
+ * Payload varies by context: {@link VizScopedRequest} (Search, Answer,
4528
+ * Liveboard), {@link RequiredVizRequest} (Spotter, vizId required). trigger()
4529
+ * accepts the union now; per-context enforced next release.
4235
4530
  * Use start:true to subscribe to when download as XLSX is initiated, or end:true to
4236
4531
  * subscribe to when download as XLSX is completed. Default is end:true.
4237
4532
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
@@ -4510,6 +4805,9 @@ export declare enum EmbedEvent {
4510
4805
  Schedule = "subscription",
4511
4806
  /**
4512
4807
  * Emitted when a user clicks **Edit** on a Liveboard or visualization
4808
+ * Payload varies by context: {@link VizScopedRequest} (Liveboard),
4809
+ * {@link RequiredVizRequest} (Spotter, vizId required). trigger() accepts the
4810
+ * union now; per-context enforced next release.
4513
4811
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
4514
4812
  * @example
4515
4813
  * ```js
@@ -5588,6 +5886,7 @@ export declare enum HostEvent {
5588
5886
  * the search query string.
5589
5887
  * Supported in `AppEmbed` and `SearchEmbed` deployments.
5590
5888
  * Includes the following properties:
5889
+ * Payload: {@link SearchRequest}.
5591
5890
  * @param - Includes the following keys:
5592
5891
  * - `searchQuery`: Query string with search tokens.
5593
5892
  * - `dataSources`: Data source GUID to search on.
@@ -5615,6 +5914,9 @@ export declare enum HostEvent {
5615
5914
  Search = "search",
5616
5915
  /**
5617
5916
  * Triggers a drill on certain points of the specified column
5917
+ * Payload: {@link DrillDownRequest}; in Liveboard context vizId is required
5918
+ * ({@link RequiredVizRequest}). trigger() accepts the union now; per-context
5919
+ * enforced next release.
5618
5920
  * Includes the following properties:
5619
5921
  * @param - Includes the following keys:
5620
5922
  * - `points`: An object containing `selectedPoints` and/or `clickedPoint`
@@ -5694,6 +5996,8 @@ export declare enum HostEvent {
5694
5996
  Reload = "reload",
5695
5997
  /**
5696
5998
  * Get iframe URL for the current embed view.
5999
+ * Payload: none.
6000
+ * Response: {@link GetIframeUrlResponse}.
5697
6001
  * @example
5698
6002
  * ```js
5699
6003
  * const url = embed.trigger(HostEvent.GetIframeUrl);
@@ -5712,6 +6016,7 @@ export declare enum HostEvent {
5712
6016
  GetIframeUrl = "GetIframeUrl",
5713
6017
  /**
5714
6018
  * Display specific visualizations on a Liveboard.
6019
+ * Payload: `string[]`.
5715
6020
  * @param - An array of GUIDs of the visualization to show. The visualization IDs not passed
5716
6021
  * in this parameter will be hidden.
5717
6022
  * @example
@@ -5734,6 +6039,7 @@ export declare enum HostEvent {
5734
6039
  SetVisibleVizs = "SetPinboardVisibleVizs",
5735
6040
  /**
5736
6041
  * Set a Liveboard tab as an active tab.
6042
+ * Payload: {@link SetActiveTabRequest}.
5737
6043
  * @param - tabId - string of id of Tab to show
5738
6044
  * @example
5739
6045
  * ```js
@@ -5761,6 +6067,7 @@ export declare enum HostEvent {
5761
6067
  * and `AppEmbed` only. In full application embedding, this event updates
5762
6068
  * the runtime filters applied on the Liveboard and saved Answer objects.
5763
6069
  *
6070
+ * Payload: {@link RuntimeFilter}[].
5764
6071
  * @param - Array of {@link RuntimeFilter} objects. Each item includes:
5765
6072
  * - `columnName`: Name of the column to filter on.
5766
6073
  * - `operator`: {@link RuntimeFilterOp} to apply. For more information, see
@@ -5802,6 +6109,7 @@ export declare enum HostEvent {
5802
6109
  * Accepts either a plain value or an object with `path`
5803
6110
  * and an optional `replace` flag.
5804
6111
  *
6112
+ * Payload: `string` | `number` | {@link NavigateRequest}.
5805
6113
  * @param data - A string path, a numeric history delta, or an object
5806
6114
  * `{ path: string | number, replace?: boolean }`.
5807
6115
  * - `path` — the route to navigate to, or a history delta such as `1`
@@ -5829,6 +6137,9 @@ export declare enum HostEvent {
5829
6137
  /**
5830
6138
  * Open the filter panel for a particular column.
5831
6139
  * Works with Search and Liveboard embed.
6140
+ * Payload: {@link OpenFilterRequest} (the cross-context superset). The
6141
+ * accepted fields vary by context: {@link OpenFilterLiveboardRequest},
6142
+ * {@link OpenFilterSpotterRequest}, {@link OpenFilterSearchRequest}.
5832
6143
  * @param - { columnId: string,
5833
6144
  * name: string,
5834
6145
  * type: ATTRIBUTE/MEASURE,
@@ -5911,6 +6222,7 @@ export declare enum HostEvent {
5911
6222
  /**
5912
6223
  * Open the parameter panel for a particular parameter on a Liveboard.
5913
6224
  * Mirrors {@link HostEvent.OpenFilter} for parameters.
6225
+ * Payload: {@link OpenParameterRequest}.
5914
6226
  * @param - Includes the following keys:
5915
6227
  * - `parameter`: An object identifying the parameter to open, for
5916
6228
  * example, `{ parameterId: '<parameter-GUID>' }`.
@@ -5942,6 +6254,7 @@ export declare enum HostEvent {
5942
6254
  OpenParameter = "openParameter",
5943
6255
  /**
5944
6256
  * Add columns to the current search query.
6257
+ * Payload: `{ columnIds: string[] }`.
5945
6258
  * @param - { columnIds: string[] }
5946
6259
  * @example
5947
6260
  * ```js
@@ -5960,6 +6273,7 @@ export declare enum HostEvent {
5960
6273
  AddColumns = "addColumns",
5961
6274
  /**
5962
6275
  * Remove a column from the current search query.
6276
+ * Payload: `{ columnId: string }`.
5963
6277
  * @param - { columnId: string }
5964
6278
  * @example
5965
6279
  * ```js
@@ -5984,6 +6298,8 @@ export declare enum HostEvent {
5984
6298
  * sorting, toggling of legends, and data drill down.
5985
6299
  * For more information, see
5986
6300
  * link:https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#transient-lb-content[Liveboard data with unsaved changes].
6301
+ * Payload: none.
6302
+ * Response: {@link GetExportRequestForCurrentPinboardResponse}.
5987
6303
  * @example
5988
6304
  * ```js
5989
6305
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
@@ -6005,6 +6321,8 @@ export declare enum HostEvent {
6005
6321
  * requiring additional user input via the *Pin to Liveboard* modal, define
6006
6322
  * the following parameters:
6007
6323
  *
6324
+ * Payload: {@link PinAnswerToLiveboardRequest}.
6325
+ * Response: {@link PinAnswerToLiveboardResponse}.
6008
6326
  * @param - Includes the following keys:
6009
6327
  * - `vizId`: GUID of the saved Answer or Spotter visualization ID to pin to a
6010
6328
  * Liveboard.
@@ -6119,6 +6437,7 @@ export declare enum HostEvent {
6119
6437
  LiveboardInfo = "pinboardInfo",
6120
6438
  /**
6121
6439
  * Trigger the **Schedule** action on an embedded Liveboard.
6440
+ * Payload: {@link VizScopedRequest}.
6122
6441
  * @example
6123
6442
  * ```js
6124
6443
  * liveboardEmbed.trigger(HostEvent.Schedule)
@@ -6134,6 +6453,7 @@ export declare enum HostEvent {
6134
6453
  Schedule = "subscription",
6135
6454
  /**
6136
6455
  * Trigger the **Manage schedule** action on an embedded Liveboard
6456
+ * Payload: {@link VizScopedRequest}.
6137
6457
  * @example
6138
6458
  * ```js
6139
6459
  * liveboardEmbed.trigger(HostEvent.SchedulesList)
@@ -6150,6 +6470,7 @@ export declare enum HostEvent {
6150
6470
  /**
6151
6471
  * Trigger the **Export TML** action on an embedded Liveboard or
6152
6472
  * Answer.
6473
+ * Payload: {@link VizScopedRequest}.
6153
6474
  * @example
6154
6475
  * ```js
6155
6476
  * liveboardEmbed.trigger(HostEvent.ExportTML)
@@ -6172,6 +6493,7 @@ export declare enum HostEvent {
6172
6493
  /**
6173
6494
  * Trigger the **Edit TML** action on an embedded Liveboard or
6174
6495
  * saved Answers in the full application embedding.
6496
+ * Payload: {@link VizScopedRequest}.
6175
6497
  * @example
6176
6498
  * ```js
6177
6499
  * liveboardEmbed.trigger(HostEvent.EditTML)
@@ -6193,6 +6515,7 @@ export declare enum HostEvent {
6193
6515
  EditTML = "editTSL",
6194
6516
  /**
6195
6517
  * Trigger the **Update TML** action on an embedded Liveboard.
6518
+ * Payload: {@link VizScopedRequest}.
6196
6519
  * @example
6197
6520
  * ```js
6198
6521
  * liveboardEmbed.trigger(HostEvent.UpdateTML)
@@ -6210,6 +6533,7 @@ export declare enum HostEvent {
6210
6533
  * Trigger the **Download PDF** action on an embedded Liveboard,
6211
6534
  * visualization or Answer.
6212
6535
  *
6536
+ * Payload: {@link VizScopedRequest} plus optional `liveboardId`.
6213
6537
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6214
6538
  *
6215
6539
  * **NOTE**: The **Download** > **PDF** action is available on
@@ -6260,6 +6584,7 @@ export declare enum HostEvent {
6260
6584
  /**
6261
6585
  * Trigger the **AI Highlights** action on an embedded Liveboard
6262
6586
  *
6587
+ * Payload: none.
6263
6588
  * @example
6264
6589
  * ```js
6265
6590
  * liveboardEmbed.trigger(HostEvent.AIHighlights)
@@ -6314,6 +6639,9 @@ export declare enum HostEvent {
6314
6639
  MakeACopy = "makeACopy",
6315
6640
  /**
6316
6641
  * Trigger the **Delete** action for a Liveboard.
6642
+ * Payload varies by context: {@link RequiredVizRequest} (Liveboard, vizId
6643
+ * required), {@link VizScopedRequest} (Search). trigger() accepts the union
6644
+ * now; per-context enforced next release.
6317
6645
  * @example
6318
6646
  * ```js
6319
6647
  * appEmbed.trigger(HostEvent.Remove)
@@ -6328,6 +6656,7 @@ export declare enum HostEvent {
6328
6656
  Remove = "delete",
6329
6657
  /**
6330
6658
  * Trigger the **Explore** action on a visualization.
6659
+ * Payload: {@link RequiredVizRequest}.
6331
6660
  * @param - an object with `vizId` as a key
6332
6661
  * @example
6333
6662
  * ```js
@@ -6347,6 +6676,7 @@ export declare enum HostEvent {
6347
6676
  /**
6348
6677
  * Trigger the **Create alert** action on a KPI chart
6349
6678
  * in a Liveboard or saved Answer.
6679
+ * Payload: {@link VizScopedRequest}.
6350
6680
  * @param - an object with `vizId` as a key
6351
6681
  * @example
6352
6682
  * ```js
@@ -6378,6 +6708,7 @@ export declare enum HostEvent {
6378
6708
  /**
6379
6709
  * Trigger the **Manage alerts** action on a KPI chart
6380
6710
  * in a visualization or saved Answer.
6711
+ * Payload: {@link VizScopedRequest}.
6381
6712
  * @param - an object with `vizId` as a key
6382
6713
  * @example
6383
6714
  * ```js
@@ -6415,6 +6746,7 @@ export declare enum HostEvent {
6415
6746
  * on a Liveboard.
6416
6747
  *
6417
6748
  * This event is not supported in visualization embed and search embed.
6749
+ * Payload: {@link VizScopedRequest}.
6418
6750
  * @param - Object parameter. Includes the following keys:
6419
6751
  * - `vizId`: To trigger the action for a specific visualization in Liveboard embed,
6420
6752
  * pass in `vizId` as a key. In Spotter embed, `vizId` refers to the Answer ID and
@@ -6457,6 +6789,7 @@ export declare enum HostEvent {
6457
6789
  Edit = "edit",
6458
6790
  /**
6459
6791
  * Trigger the **Copy link** action on a Liveboard or visualization
6792
+ * Payload: {@link VizScopedRequest}.
6460
6793
  * @param - object - to trigger the action for a
6461
6794
  * specific visualization in Liveboard embed, pass in `vizId` as a key
6462
6795
  * @example
@@ -6502,6 +6835,7 @@ export declare enum HostEvent {
6502
6835
  CopyLink = "embedDocument",
6503
6836
  /**
6504
6837
  * Trigger the **Present** action on a Liveboard or visualization
6838
+ * Payload: {@link VizScopedRequest}.
6505
6839
  * @param - object - to trigger the action for a specific visualization
6506
6840
  * in Liveboard embed, pass in `vizId` as a key
6507
6841
  * @example
@@ -6547,6 +6881,8 @@ export declare enum HostEvent {
6547
6881
  Present = "present",
6548
6882
  /**
6549
6883
  * Get TML for the current search.
6884
+ * Payload: {@link GetTMLRequest}.
6885
+ * Response: `Record<string, any>`.
6550
6886
  * @example
6551
6887
  * ```js
6552
6888
  * searchEmbed.trigger(HostEvent.GetTML).then((tml) => {
@@ -6596,6 +6932,7 @@ export declare enum HostEvent {
6596
6932
  * Trigger the **Show underlying data** action on a
6597
6933
  * chart or table.
6598
6934
  *
6935
+ * Payload: {@link VizScopedRequest}.
6599
6936
  * @param - an object with vizId as a key
6600
6937
  * @example
6601
6938
  * ```js
@@ -6629,6 +6966,7 @@ export declare enum HostEvent {
6629
6966
  * Trigger the **Delete** action for a visualization
6630
6967
  * in an embedded Liveboard, or a chart or table
6631
6968
  * generated from Search.
6969
+ * Payload: {@link VizScopedRequest}.
6632
6970
  * @param - Liveboard embed takes an object with `vizId` as a key.
6633
6971
  * Can be left empty if embedding Search or visualization.
6634
6972
  * @example
@@ -6657,6 +6995,7 @@ export declare enum HostEvent {
6657
6995
  /**
6658
6996
  * Trigger the **SpotIQ analyze** action on a
6659
6997
  * chart or table.
6998
+ * Payload: {@link VizScopedRequest}.
6660
6999
  * @param - Liveboard embed takes `vizId` as a
6661
7000
  * key. Can be left undefined when embedding Search or
6662
7001
  * visualization.
@@ -6719,6 +7058,7 @@ export declare enum HostEvent {
6719
7058
  /**
6720
7059
  * Trigger the **Download** > **PNG** action on
6721
7060
  * charts in the embedded view.
7061
+ * Payload: {@link VizScopedRequest}.
6722
7062
  * @example
6723
7063
  * ```js
6724
7064
  * liveboardEmbed.trigger(HostEvent.DownloadAsPng,
@@ -6749,6 +7089,7 @@ export declare enum HostEvent {
6749
7089
  /**
6750
7090
  * Trigger the **Download** > **CSV** action on tables in
6751
7091
  * the embedded view.
7092
+ * Payload: {@link VizScopedRequest}.
6752
7093
  * @param - `vizId` refers to the Visualization ID in Spotter embed and is required in Spotter embed.
6753
7094
  * @example
6754
7095
  * ```js
@@ -6788,6 +7129,7 @@ export declare enum HostEvent {
6788
7129
  /**
6789
7130
  * Trigger the **Download** > **XLSX** action on tables
6790
7131
  * in the embedded view.
7132
+ * Payload: {@link VizScopedRequest}.
6791
7133
  * @param - `vizId` refers to the Visualization ID in Spotter embed and is required in Spotter embed.
6792
7134
  * @example
6793
7135
  * ```js
@@ -6827,6 +7169,7 @@ export declare enum HostEvent {
6827
7169
  /**
6828
7170
  * Trigger the **Share** action on an embedded
6829
7171
  * Liveboard or Answer.
7172
+ * Payload: {@link VizScopedRequest}.
6830
7173
  * @example
6831
7174
  * ```js
6832
7175
  * liveboardEmbed.trigger(HostEvent.Share)
@@ -6853,6 +7196,7 @@ export declare enum HostEvent {
6853
7196
  * Trigger the **Save** action on a Liveboard, Answer, or Spotter.
6854
7197
  * Saves the changes.
6855
7198
  *
7199
+ * Payload: {@link VizScopedRequest}.
6856
7200
  * @param - `vizId` refers to the Spotter Visualization Id used in Spotter embed.
6857
7201
  * It is required and can be retrieved from the data embed event.
6858
7202
  *
@@ -6904,6 +7248,7 @@ export declare enum HostEvent {
6904
7248
  /**
6905
7249
  * Trigger the **Sync to Sheets** action on an embedded visualization or Answer
6906
7250
  * Sends data from an Answer or Liveboard visualization to a Google sheet.
7251
+ * Payload: {@link VizScopedRequest}.
6907
7252
  * @param - an object with `vizId` as a key
6908
7253
  * @example
6909
7254
  * ```js
@@ -6934,6 +7279,7 @@ export declare enum HostEvent {
6934
7279
  * Trigger the **Sync to Other Apps** action on an embedded visualization or Answer
6935
7280
  * Sends data from an Answer or Liveboard visualization to third-party apps such
6936
7281
  * as Slack, Salesforce, Microsoft Teams, ServiceNow and so on.
7282
+ * Payload: {@link VizScopedRequest}.
6937
7283
  * @param - an object with vizId as a key
6938
7284
  * @example
6939
7285
  * ```js
@@ -6964,6 +7310,7 @@ export declare enum HostEvent {
6964
7310
  * Trigger the **Manage pipelines** action on an embedded
6965
7311
  * visualization or Answer.
6966
7312
  * Allows users to manage ThoughtSpot Sync pipelines.
7313
+ * Payload: {@link VizScopedRequest}.
6967
7314
  * @param - an object with `vizId` as a key
6968
7315
  * @example
6969
7316
  * ```js
@@ -6992,6 +7339,7 @@ export declare enum HostEvent {
6992
7339
  ManagePipelines = "manage-pipeline",
6993
7340
  /**
6994
7341
  * Reset search operation on the Search or Answer page.
7342
+ * Payload: none.
6995
7343
  * @example
6996
7344
  * ```js
6997
7345
  * searchEmbed.trigger(HostEvent.ResetSearch)
@@ -7019,6 +7367,8 @@ export declare enum HostEvent {
7019
7367
  * whole Liveboard.
7020
7368
  * The `applicability` attribute is available from SDK: 1.53.0 |
7021
7369
  * ThoughtSpot: 26.10.0.cl.
7370
+ * Payload: {@link GetFiltersRequest}.
7371
+ * Response: {@link GetFiltersResponse}.
7022
7372
  * @example
7023
7373
  * ```js
7024
7374
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
@@ -7038,6 +7388,7 @@ export declare enum HostEvent {
7038
7388
  GetFilters = "getFilters",
7039
7389
  /**
7040
7390
  * Update one or several filters applied on a Liveboard.
7391
+ * Payload: {@link UpdateFiltersRequest}.
7041
7392
  * @param - Includes the following keys:
7042
7393
  * - `filter`: A single filter object containing column name, filter operator, and
7043
7394
  * values.
@@ -7166,6 +7517,8 @@ export declare enum HostEvent {
7166
7517
  UpdateFilters = "updateFilters",
7167
7518
  /**
7168
7519
  * Get tab details for the current Liveboard.
7520
+ * Payload: none.
7521
+ * Response: {@link GetTabsResponse}.
7169
7522
  * @example
7170
7523
  * ```js
7171
7524
  * liveboardEmbed.trigger(HostEvent.GetTabs).then((tabDetails) => {
@@ -7191,6 +7544,8 @@ export declare enum HostEvent {
7191
7544
  /**
7192
7545
  * Get group details for the current Liveboard.
7193
7546
  * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
7547
+ * Payload: none.
7548
+ * Response: {@link GetGroupsResponse}.
7194
7549
  * @example
7195
7550
  * ```js
7196
7551
  * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
@@ -7215,6 +7570,7 @@ export declare enum HostEvent {
7215
7570
  GetGroups = "getGroups",
7216
7571
  /**
7217
7572
  * Set the visible tabs on a Liveboard.
7573
+ * Payload: `string[]`.
7218
7574
  * @param - an array of ids of tabs to show, the IDs not passed
7219
7575
  * will be hidden.
7220
7576
  * @example
@@ -7237,6 +7593,7 @@ export declare enum HostEvent {
7237
7593
  SetVisibleTabs = "SetPinboardVisibleTabs",
7238
7594
  /**
7239
7595
  * Set the hidden tabs on a Liveboard.
7596
+ * Payload: `string[]`.
7240
7597
  * @param - an array of the IDs of the tabs to hide.
7241
7598
  * The IDs not passed will be shown.
7242
7599
  * @example
@@ -7265,6 +7622,8 @@ export declare enum HostEvent {
7265
7622
  * `getAnswerService()` method on the embed instance to get an AnswerService
7266
7623
  * object that provides a more convenient interface for working with answers.
7267
7624
  *
7625
+ * Payload: {@link GetAnswerSessionRequest}.
7626
+ * Response: {@link GetAnswerSessionResponse}.
7268
7627
  * @example
7269
7628
  * ```js
7270
7629
  * // Preferred way to get an AnswerService
@@ -7292,6 +7651,7 @@ export declare enum HostEvent {
7292
7651
  GetAnswerSession = "getAnswerSession",
7293
7652
  /**
7294
7653
  * Trigger the *Ask Sage* action for visualizations
7654
+ * Payload: {@link RequiredVizRequest}.
7295
7655
  * @example
7296
7656
  * ```js
7297
7657
  * liveboardEmbed.trigger(HostEvent.AskSage,
@@ -7303,6 +7663,7 @@ export declare enum HostEvent {
7303
7663
  /**
7304
7664
  * Trigger cross filter update action on a Liveboard.
7305
7665
  *
7666
+ * Payload: {@link UpdateCrossFilterRequest}.
7306
7667
  * @example
7307
7668
  * ```js
7308
7669
  * liveboardEmbed.trigger(HostEvent.UpdateCrossFilter, {
@@ -7318,7 +7679,9 @@ export declare enum HostEvent {
7318
7679
  UpdateCrossFilter = "UpdateCrossFilter",
7319
7680
  /**
7320
7681
  * Trigger reset action for a personalized Liveboard view.
7321
- * This event is deprecated. Use {@link HostEvent.ResetLiveboardPersonalizedView} instead.
7682
+ * This event is deprecated.
7683
+ * Use {@link HostEvent.ResetLiveboardPersonalizedView} instead.
7684
+ * Payload: none.
7322
7685
  * @example
7323
7686
  * ```js
7324
7687
  * liveboardEmbed.trigger(HostEvent.ResetLiveboardPersonalisedView);
@@ -7339,6 +7702,7 @@ export declare enum HostEvent {
7339
7702
  /**
7340
7703
  * Triggers an action to update Parameter values on embedded
7341
7704
  * Answers, Liveboard, and Spotter answer in Edit mode.
7705
+ * Payload: {@link RuntimeParameter}[].
7342
7706
  * @param - Includes the following keys for each item:
7343
7707
  * - `name`: Name of the parameter.
7344
7708
  * - `value`: The value to set for the parameter.
@@ -7396,6 +7760,8 @@ export declare enum HostEvent {
7396
7760
  * whole Liveboard.
7397
7761
  * The `applicability` attribute is available from SDK: 1.53.0 |
7398
7762
  * ThoughtSpot: 26.10.0.cl.
7763
+ * Payload: none.
7764
+ * Response: {@link GetParametersResponse}.
7399
7765
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
7400
7766
  * ```js
7401
7767
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
@@ -7433,6 +7799,7 @@ export declare enum HostEvent {
7433
7799
  * ```js
7434
7800
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
7435
7801
  * ```
7802
+ * Payload: {@link PersonalisedViewRequest} (`viewId` only).
7436
7803
  * @example
7437
7804
  * ```js
7438
7805
  * // Update personalized view from liveboard context
@@ -7465,6 +7832,7 @@ export declare enum HostEvent {
7465
7832
  * If neither is provided, the Liveboard resets to the original/default view.
7466
7833
  * When a `viewName` is provided and multiple views share
7467
7834
  * the same name, the first match is selected.
7835
+ * Payload: {@link PersonalisedViewRequest}.
7468
7836
  * @example
7469
7837
  * ```js
7470
7838
  * liveboardEmbed.trigger(
@@ -7508,6 +7876,8 @@ export declare enum HostEvent {
7508
7876
  * If no parameters are specified, the save action is
7509
7877
  * triggered with a modal to prompt users to
7510
7878
  * add a name and description for the Answer.
7879
+ * Payload: {@link SaveAnswerRequest}.
7880
+ * Response: {@link SaveAnswerResponse}.
7511
7881
  * @param - Includes the following keys:
7512
7882
  * - `vizId`: Refers to the Answer ID in Spotter embed and is **required** in Spotter
7513
7883
  * embed.
@@ -7593,6 +7963,7 @@ export declare enum HostEvent {
7593
7963
  /**
7594
7964
  * Triggers a search operation with the search tokens specified in
7595
7965
  * the search query string in spotter embed.
7966
+ * Payload: {@link SpotterSearchRequest}.
7596
7967
  * @param - Includes the following keys:
7597
7968
  * - `query`: Text string in Natural Language format.
7598
7969
  * - `executeSearch`: Boolean to execute search and update search query.
@@ -7617,6 +7988,7 @@ export declare enum HostEvent {
7617
7988
  SpotterSearch = "SpotterSearch",
7618
7989
  /**
7619
7990
  * Edits the last prompt in spotter embed.
7991
+ * Payload: `string`.
7620
7992
  * @param - `query`: Text string
7621
7993
  * @example
7622
7994
  * ```js
@@ -7633,6 +8005,7 @@ export declare enum HostEvent {
7633
8005
  EditLastPrompt = "EditLastPrompt",
7634
8006
  /**
7635
8007
  * Opens the data source preview modal in Spotter Embed.
8008
+ * Payload: none.
7636
8009
  * @example
7637
8010
  * ```js
7638
8011
  * spotterEmbed.trigger(HostEvent.PreviewSpotterData);
@@ -7668,6 +8041,7 @@ export declare enum HostEvent {
7668
8041
  DataModelInstructions = "DataModelInstructions",
7669
8042
  /**
7670
8043
  * Resets the Spotter Embed Conversation.
8044
+ * Payload: none.
7671
8045
  * @example
7672
8046
  * ```js
7673
8047
  * spotterEmbed.trigger(HostEvent.ResetSpotterConversation);
@@ -7680,6 +8054,7 @@ export declare enum HostEvent {
7680
8054
  * `conversationId` is **mandatory** — you must pass the id of the
7681
8055
  * conversation to share. Also no-op when sharing is disabled
7682
8056
  * (enableShareConversation off) or when already in the read-only shared view.
8057
+ * Payload: {@link ConversationScopedRequest}.
7683
8058
  * @example
7684
8059
  * ```js
7685
8060
  * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
@@ -7689,6 +8064,7 @@ export declare enum HostEvent {
7689
8064
  ShareSpotterConversation = "ShareSpotterConversation",
7690
8065
  /**
7691
8066
  * Closes the Spotter share-conversation modal. No-op if none is open.
8067
+ * Payload: none.
7692
8068
  * @example
7693
8069
  * ```js
7694
8070
  * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
@@ -7698,6 +8074,7 @@ export declare enum HostEvent {
7698
8074
  CloseSpotterShareConversation = "CloseSpotterShareConversation",
7699
8075
  /**
7700
8076
  * Exits the read-only shared-conversation view.
8077
+ * Payload: none.
7701
8078
  * @example
7702
8079
  * ```js
7703
8080
  * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
@@ -7707,6 +8084,7 @@ export declare enum HostEvent {
7707
8084
  ExitSpotterSharedConversation = "ExitSpotterSharedConversation",
7708
8085
  /**
7709
8086
  * Deletes the last prompt in spotter embed.
8087
+ * Payload: none.
7710
8088
  * @example
7711
8089
  * ```js
7712
8090
  * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
@@ -7716,6 +8094,7 @@ export declare enum HostEvent {
7716
8094
  DeleteLastPrompt = "DeleteLastPrompt",
7717
8095
  /**
7718
8096
  * Toggle the visualization to chart or table view.
8097
+ * Payload: {@link RequiredVizRequest}.
7719
8098
  * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7720
8099
  * @example
7721
8100
  * ```js
@@ -7754,6 +8133,7 @@ export declare enum HostEvent {
7754
8133
  VisibleEmbedCoordinates = "visibleEmbedCoordinates",
7755
8134
  /**
7756
8135
  * Trigger the *Spotter* action for visualizations present on the liveboard's vizzes.
8136
+ * Payload: {@link RequiredVizRequest}.
7757
8137
  * @param - `vizId` refers to the Visualization ID in Spotter embed and is required.
7758
8138
  * @example
7759
8139
  * ```js
@@ -7815,6 +8195,7 @@ export declare enum HostEvent {
7815
8195
  * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7816
8196
  * instance.
7817
8197
  *
8198
+ * Payload: {@link ConversationScopedRequest}.
7818
8199
  * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7819
8200
  * @example
7820
8201
  * ```js
@@ -7832,6 +8213,7 @@ export declare enum HostEvent {
7832
8213
  * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7833
8214
  * instance.
7834
8215
  *
8216
+ * Payload: {@link ConversationScopedRequest}.
7835
8217
  * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7836
8218
  * @example
7837
8219
  * ```js
@@ -7856,6 +8238,7 @@ export declare enum HostEvent {
7856
8238
  * Trigger the **Send Test Email** action in the Liveboard schedule modal.
7857
8239
  * Sends a test schedule email to self or all recipients.
7858
8240
  * Requires `isSendNowLiveboardSchedulingEnabled` to be enabled.
8241
+ * Payload: {@link ScheduleEmailRequest}.
7859
8242
  * @example
7860
8243
  * ```js
7861
8244
  * liveboardEmbed.trigger(HostEvent.SendTestScheduleEmail, {
@@ -7874,6 +8257,7 @@ export declare enum HostEvent {
7874
8257
  SendTestScheduleEmail = "sendTestScheduleEmail",
7875
8258
  /**
7876
8259
  * Sends a user message (prompt) to the SpotterViz panel programmatically.
8260
+ * Payload: `{ query: string }`.
7877
8261
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7878
8262
  * @param query - the prompt text to send.
7879
8263
  * @example
@@ -7886,6 +8270,7 @@ export declare enum HostEvent {
7886
8270
  SpotterVizSendUserMessage = "SpotterVizSendUserMessage",
7887
8271
  /**
7888
8272
  * Initializes a new SpotterViz conversation.
8273
+ * Payload: none.
7889
8274
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7890
8275
  * @example
7891
8276
  * ```js
@@ -7895,6 +8280,7 @@ export declare enum HostEvent {
7895
8280
  InitSpotterVizConversation = "InitSpotterVizConversation",
7896
8281
  /**
7897
8282
  * Opens the SpotterViz panel.
8283
+ * Payload: none.
7898
8284
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7899
8285
  * @example
7900
8286
  * ```js
@@ -7904,6 +8290,7 @@ export declare enum HostEvent {
7904
8290
  OpenSpotterVizPanel = "OpenSpotterVizPanel",
7905
8291
  /**
7906
8292
  * Closes the SpotterViz panel.
8293
+ * Payload: none.
7907
8294
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7908
8295
  * @example
7909
8296
  * ```js
@@ -7914,6 +8301,7 @@ export declare enum HostEvent {
7914
8301
  /**
7915
8302
  * Clears browser cache and fetches new data for liveboard ChartViz Containers.
7916
8303
  * Requires `enableLiveboardDataCache` to be enabled.
8304
+ * Payload: {@link ScheduleEmailRequest}.
7917
8305
  * @example
7918
8306
  * ```js
7919
8307
  * liveboardEmbed.trigger(HostEvent.RefreshLiveboardBrowserCache);
@@ -9946,89 +10334,350 @@ export declare enum Action {
9946
10334
  * disabledActions: [Action.SpotterOnLiveboard]
9947
10335
  * ```
9948
10336
  */
9949
- SpotterOnLiveboard = "spotterOnLiveboard"
9950
- }
9951
- export declare enum PrefetchFeatures {
9952
- FullApp = "FullApp",
9953
- SearchEmbed = "SearchEmbed",
9954
- LiveboardEmbed = "LiveboardEmbed",
9955
- VizEmbed = "VizEmbed"
9956
- }
9957
- /**
9958
- * Enum for options to change context trigger.
9959
- * The `BOTH_CLICKS` option is available from 10.8.0.cl.
9960
- */
9961
- export declare enum ContextMenuTriggerOptions {
9962
- LEFT_CLICK = "left-click",
9963
- RIGHT_CLICK = "right-click",
9964
- BOTH_CLICKS = "both-clicks"
9965
- }
9966
- export interface ColumnValue {
9967
- column: {
9968
- id: string;
9969
- name: string;
9970
- dataType: string;
9971
- [key: string]: any;
9972
- };
9973
- value: string | number | boolean | {
9974
- v: {
9975
- s: number;
9976
- e: number;
9977
- };
9978
- };
9979
- }
9980
- export interface VizPoint {
9981
- selectedAttributes: ColumnValue[];
9982
- selectedMeasures: ColumnValue[];
9983
- }
9984
- /**
9985
- * @group Events
9986
- */
9987
- export interface CustomActionPayload {
9988
- contextMenuPoints?: {
9989
- clickedPoint: VizPoint;
9990
- selectedPoints: VizPoint[];
9991
- };
9992
- embedAnswerData: {
9993
- name: string;
9994
- id: string;
9995
- sources: {
9996
- header: {
9997
- guid: string;
9998
- };
9999
- };
10000
- columns: any[];
10001
- data: any[];
10002
- [key: string]: any;
10003
- };
10004
- session: SessionInterface;
10005
- vizId?: string;
10006
- }
10007
- export interface CustomAction {
10008
- name: string;
10009
- id: string;
10010
- position: CustomActionsPosition;
10011
- target: CustomActionTarget;
10012
- metadataIds?: {
10013
- answerIds?: string[];
10014
- liveboardIds?: string[];
10015
- vizIds?: string[];
10016
- };
10017
- dataModelIds?: {
10018
- modelIds?: string[];
10019
- modelColumnNames?: string[];
10020
- };
10021
- orgIds?: string[];
10022
- groupIds?: string[];
10023
- }
10024
- /**
10025
- * Enum options to show custom actions at different
10026
- * positions in the application.
10027
- */
10028
- export declare enum CustomActionsPosition {
10337
+ SpotterOnLiveboard = "spotterOnLiveboard",
10029
10338
  /**
10030
- * Shows the action as a primary button
10031
- * in the toolbar area of the embed.
10339
+ * Controls the visibility and disabled state of the "Chart Type" menu item
10340
+ * in Chart Settings V2.
10341
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10342
+ * @example
10343
+ * ```js
10344
+ * {
10345
+ * hiddenActions: [Action.ChartTypeSettings],
10346
+ * disabledActions: [Action.ChartTypeSettings],
10347
+ * }
10348
+ * ```
10349
+ */
10350
+ ChartTypeSettings = "CHART_TYPE",
10351
+ /**
10352
+ * Controls the visibility and disabled state of the "Layout" menu item
10353
+ * in Chart Settings V2.
10354
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10355
+ * @example
10356
+ * ```js
10357
+ * {
10358
+ * hiddenActions: [Action.LayoutSettings],
10359
+ * disabledActions: [Action.LayoutSettings],
10360
+ * }
10361
+ * ```
10362
+ */
10363
+ LayoutSettings = "LAYOUT",
10364
+ /**
10365
+ * Controls the visibility and disabled state of the "Column" menu item
10366
+ * in Chart Settings V2.
10367
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10368
+ * @example
10369
+ * ```js
10370
+ * {
10371
+ * hiddenActions: [Action.ColumnSettings],
10372
+ * disabledActions: [Action.ColumnSettings],
10373
+ * }
10374
+ * ```
10375
+ */
10376
+ ColumnSettings = "COLUMN",
10377
+ /**
10378
+ * Controls the visibility and disabled state of the "Axis" menu item
10379
+ * in Chart Settings V2.
10380
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10381
+ * @example
10382
+ * ```js
10383
+ * {
10384
+ * hiddenActions: [Action.AxisSettings],
10385
+ * disabledActions: [Action.AxisSettings],
10386
+ * }
10387
+ * ```
10388
+ */
10389
+ AxisSettings = "AXIS",
10390
+ /**
10391
+ * Controls the visibility and disabled state of the "Data Label" menu item
10392
+ * in Chart Settings V2.
10393
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10394
+ * @example
10395
+ * ```js
10396
+ * {
10397
+ * hiddenActions: [Action.DataLabelSettings],
10398
+ * disabledActions: [Action.DataLabelSettings],
10399
+ * }
10400
+ * ```
10401
+ */
10402
+ DataLabelSettings = "DATA_LABEL",
10403
+ /**
10404
+ * Controls the visibility and disabled state of the "Tooltip" menu item
10405
+ * in Chart Settings V2.
10406
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10407
+ * @example
10408
+ * ```js
10409
+ * {
10410
+ * hiddenActions: [Action.TooltipSettings],
10411
+ * disabledActions: [Action.TooltipSettings],
10412
+ * }
10413
+ * ```
10414
+ */
10415
+ TooltipSettings = "TOOLTIP",
10416
+ /**
10417
+ * Controls the visibility and disabled state of the "Legend" menu item
10418
+ * in Chart Settings V2.
10419
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10420
+ * @example
10421
+ * ```js
10422
+ * {
10423
+ * hiddenActions: [Action.LegendSettings],
10424
+ * disabledActions: [Action.LegendSettings],
10425
+ * }
10426
+ * ```
10427
+ */
10428
+ LegendSettings = "LEGEND",
10429
+ /**
10430
+ * Controls the visibility and disabled state of the "Display" menu item
10431
+ * in Chart Settings V2.
10432
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10433
+ * @example
10434
+ * ```js
10435
+ * {
10436
+ * hiddenActions: [Action.DisplaySettings],
10437
+ * disabledActions: [Action.DisplaySettings],
10438
+ * }
10439
+ * ```
10440
+ */
10441
+ DisplaySettings = "DISPLAY",
10442
+ /**
10443
+ * Controls the visibility and disabled state of the "Query Details" menu
10444
+ * item in Chart Settings V2.
10445
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10446
+ * @example
10447
+ * ```js
10448
+ * {
10449
+ * hiddenActions: [Action.QuerySettings],
10450
+ * disabledActions: [Action.QuerySettings],
10451
+ * }
10452
+ * ```
10453
+ */
10454
+ QuerySettings = "QUERY_DETAILS",
10455
+ /**
10456
+ * Controls the visibility and disabled state of the "Custom Action" menu
10457
+ * item in Chart Settings V2.
10458
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10459
+ * @example
10460
+ * ```js
10461
+ * {
10462
+ * hiddenActions: [Action.CustomSettings],
10463
+ * disabledActions: [Action.CustomSettings],
10464
+ * }
10465
+ * ```
10466
+ */
10467
+ CustomSettings = "CUSTOM_ACTION",
10468
+ /**
10469
+ * Controls the visibility and disabled state of the "Muze AI" menu item
10470
+ * in Chart Settings V2.
10471
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10472
+ * @example
10473
+ * ```js
10474
+ * {
10475
+ * hiddenActions: [Action.MuzeAiSettings],
10476
+ * disabledActions: [Action.MuzeAiSettings],
10477
+ * }
10478
+ * ```
10479
+ */
10480
+ MuzeAiSettings = "MUZE_AI",
10481
+ /**
10482
+ * Controls the visibility and disabled state of the "R Analysis" menu item
10483
+ * in Chart Settings V2.
10484
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
10485
+ * @example
10486
+ * ```js
10487
+ * {
10488
+ * hiddenActions: [Action.RAnalysisSettings],
10489
+ * disabledActions: [Action.RAnalysisSettings],
10490
+ * }
10491
+ * ```
10492
+ */
10493
+ RAnalysisSettings = "R_ANALYSIS",
10494
+ /**
10495
+ * Controls the visibility and disabled state of the "Add to Collection" menu item.
10496
+ * @version SDK: 1.52.1 | ThoughtSpot Cloud: 26.5.0.cl
10497
+ * @example
10498
+ * ```js
10499
+ * {
10500
+ * hiddenActions: [Action.AddToCollection],
10501
+ * disabledActions: [Action.AddToCollection],
10502
+ * }
10503
+ * ```
10504
+ */
10505
+ AddToCollection = "addToCollection",
10506
+ /**
10507
+ * Controls the visibility and disabled state of the "Create Collection" button.
10508
+ * @version SDK: 1.52.1 | ThoughtSpot Cloud: 26.5.0.cl
10509
+ * @example
10510
+ * ```js
10511
+ * {
10512
+ * hiddenActions: [Action.CreateCollection],
10513
+ * disabledActions: [Action.CreateCollection],
10514
+ * }
10515
+ * ```
10516
+ */
10517
+ CreateCollection = "createCollection",
10518
+ /**
10519
+ * Controls the visibility and disabled state of the "Move" menu item in a
10520
+ * Collection.
10521
+ * @version SDK: 1.52.1 | ThoughtSpot Cloud: 26.5.0.cl
10522
+ * @example
10523
+ * ```js
10524
+ * {
10525
+ * hiddenActions: [Action.MoveToCollection],
10526
+ * disabledActions: [Action.MoveToCollection],
10527
+ * }
10528
+ * ```
10529
+ */
10530
+ MoveToCollection = "moveToCollection",
10531
+ /**
10532
+ * Controls the visibility and disabled state of the "Remove" menu item in a
10533
+ * Collection.
10534
+ * @version SDK: 1.52.1 | ThoughtSpot Cloud: 26.5.0.cl
10535
+ * @example
10536
+ * ```js
10537
+ * {
10538
+ * hiddenActions: [Action.RemoveFromCollection],
10539
+ * disabledActions: [Action.RemoveFromCollection],
10540
+ * }
10541
+ * ```
10542
+ */
10543
+ RemoveFromCollection = "removeFromCollection",
10544
+ /**
10545
+ * Controls the visibility and disabled state of the "Delete" menu item for a
10546
+ * Collection.
10547
+ * @version SDK: 1.52.1 | ThoughtSpot Cloud: 26.5.0.cl
10548
+ * @example
10549
+ * ```js
10550
+ * {
10551
+ * hiddenActions: [Action.DeleteCollection],
10552
+ * disabledActions: [Action.DeleteCollection],
10553
+ * }
10554
+ * ```
10555
+ */
10556
+ DeleteCollection = "deleteCollection"
10557
+ }
10558
+ export declare enum PrefetchFeatures {
10559
+ FullApp = "FullApp",
10560
+ SearchEmbed = "SearchEmbed",
10561
+ LiveboardEmbed = "LiveboardEmbed",
10562
+ VizEmbed = "VizEmbed"
10563
+ }
10564
+ /**
10565
+ * Enum for options to change context trigger.
10566
+ * The `BOTH_CLICKS` option is available from 10.8.0.cl.
10567
+ */
10568
+ export declare enum ContextMenuTriggerOptions {
10569
+ LEFT_CLICK = "left-click",
10570
+ RIGHT_CLICK = "right-click",
10571
+ BOTH_CLICKS = "both-clicks"
10572
+ }
10573
+ export interface ColumnValue {
10574
+ column: {
10575
+ id: string;
10576
+ name: string;
10577
+ dataType: string;
10578
+ [key: string]: any;
10579
+ };
10580
+ value: string | number | boolean | {
10581
+ v: {
10582
+ s: number;
10583
+ e: number;
10584
+ };
10585
+ };
10586
+ }
10587
+ export interface VizPoint {
10588
+ selectedAttributes: ColumnValue[];
10589
+ selectedMeasures: ColumnValue[];
10590
+ }
10591
+ /**
10592
+ * @group Events
10593
+ */
10594
+ export interface CustomActionPayload {
10595
+ /**
10596
+ * Id of the custom action that was triggered. Matches the `id` you set on
10597
+ * the {@link CustomAction}. Omitted on Liveboard-level code-based actions.
10598
+ */
10599
+ id?: string;
10600
+ contextMenuPoints?: {
10601
+ clickedPoint: VizPoint;
10602
+ selectedPoints: VizPoint[];
10603
+ };
10604
+ embedAnswerData: {
10605
+ name: string;
10606
+ id: string;
10607
+ sources: {
10608
+ header: {
10609
+ guid: string;
10610
+ };
10611
+ };
10612
+ columns: any[];
10613
+ data: any[];
10614
+ [key: string]: any;
10615
+ };
10616
+ session: SessionInterface;
10617
+ vizId?: string;
10618
+ }
10619
+ /**
10620
+ * A code-based custom action to inject into the embedded ThoughtSpot UI.
10621
+ * Pass an array of these as `customActions` in the embed view config. When a
10622
+ * user invokes the action, the host emits {@link EmbedEvent.CustomAction} with
10623
+ * a {@link CustomActionPayload} carrying the same `id`.
10624
+ */
10625
+ export interface CustomAction {
10626
+ /**
10627
+ * Display label shown on the action's button or menu item.
10628
+ */
10629
+ name: string;
10630
+ /**
10631
+ * Unique identifier for the action. Echoed back as `id` on the
10632
+ * {@link CustomActionPayload} when the action is invoked.
10633
+ */
10634
+ id: string;
10635
+ /**
10636
+ * Where the action appears: a primary button, the "More" menu, or the
10637
+ * right-click context menu. See {@link CustomActionsPosition}.
10638
+ */
10639
+ position: CustomActionsPosition;
10640
+ /**
10641
+ * The surface the action applies to (Liveboard, visualization, Answer, or
10642
+ * Spotter). See {@link CustomActionTarget}. The allowed `position` values
10643
+ * and scoping keys depend on the target.
10644
+ */
10645
+ target: CustomActionTarget;
10646
+ /**
10647
+ * Scope the action to specific objects by GUID. Which keys are allowed
10648
+ * depends on `target` (for example, a `VIZ` action may use `answerIds`,
10649
+ * `liveboardIds`, and `vizIds`).
10650
+ */
10651
+ metadataIds?: {
10652
+ answerIds?: string[];
10653
+ liveboardIds?: string[];
10654
+ vizIds?: string[];
10655
+ };
10656
+ /**
10657
+ * Scope the action by data model, using model GUIDs or column names.
10658
+ * Allowed for `VIZ`, `ANSWER`, and `SPOTTER` targets.
10659
+ */
10660
+ dataModelIds?: {
10661
+ modelIds?: string[];
10662
+ modelColumnNames?: string[];
10663
+ };
10664
+ /**
10665
+ * Restrict the action to specific organizations by ID.
10666
+ */
10667
+ orgIds?: string[];
10668
+ /**
10669
+ * Restrict the action to specific user groups by ID.
10670
+ */
10671
+ groupIds?: string[];
10672
+ }
10673
+ /**
10674
+ * Enum options to show custom actions at different
10675
+ * positions in the application.
10676
+ */
10677
+ export declare enum CustomActionsPosition {
10678
+ /**
10679
+ * Shows the action as a primary button
10680
+ * in the toolbar area of the embed.
10032
10681
  */
10033
10682
  PRIMARY = "PRIMARY",
10034
10683
  /**
@@ -10955,259 +11604,556 @@ export interface TableOverrides {
10955
11604
  updateMaskPaths?: string[];
10956
11605
  }
10957
11606
  /**
10958
- * Visualization overrides to customize chart and table rendering
10959
- * within embedded ThoughtSpot components.
10960
- *
10961
- * @group Visual Overrides
10962
- * @example
10963
- * ```js
10964
- * const embed = new AppEmbed('#tsEmbed', {
10965
- * visualOverrides: {
10966
- * chart: {
10967
- * legend: { show: true, position: 'bottom' },
10968
- * columns: [{ name: 'Revenue', color: '#1f77b4' }],
10969
- * },
10970
- * table: {
10971
- * display: { tableTheme: 'ZEBRA', tableContentDensity: 'COMPACT' },
10972
- * },
10973
- * },
10974
- * });
10975
- * ```
11607
+ * Visualization overrides to customize chart and table rendering
11608
+ * within embedded ThoughtSpot components.
11609
+ *
11610
+ * @group Visual Overrides
11611
+ * @example
11612
+ * ```js
11613
+ * const embed = new AppEmbed('#tsEmbed', {
11614
+ * visualOverrides: {
11615
+ * chart: {
11616
+ * legend: { show: true, position: 'bottom' },
11617
+ * columns: [{ name: 'Revenue', color: '#1f77b4' }],
11618
+ * },
11619
+ * table: {
11620
+ * display: { tableTheme: 'ZEBRA', tableContentDensity: 'COMPACT' },
11621
+ * },
11622
+ * },
11623
+ * });
11624
+ * ```
11625
+ */
11626
+ export interface VisualizationOverrides {
11627
+ /** Chart visualization overrides */
11628
+ chart?: ChartOverrides;
11629
+ /** Table visualization overrides */
11630
+ table?: TableOverrides;
11631
+ }
11632
+ /**
11633
+ * The configuration object for the full-height behavior shared by the
11634
+ * Liveboard and app embeds.
11635
+ *
11636
+ * When `fullHeight` is enabled the SDK resizes the embed container to match the
11637
+ * height reported by the ThoughtSpot app, and — when lazy loading is also
11638
+ * enabled — keeps the app informed of the portion of the embed that is
11639
+ * currently visible so that visualizations load on demand.
11640
+ */
11641
+ export interface FullHeightViewConfig {
11642
+ /**
11643
+ * If set to true, the embedded object container dynamically resizes
11644
+ * according to the height of the Liveboard.
11645
+ *
11646
+ * **Note**: Using fullHeight loads all visualizations on the
11647
+ * Liveboard simultaneously, which results in multiple warehouse
11648
+ * queries and potentially a longer wait for the topmost
11649
+ * visualizations to display on the screen.
11650
+ * Setting `fullHeight` to `false` fetches visualizations
11651
+ * incrementally as users scroll the page to view the charts and tables.
11652
+ *
11653
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
11654
+ * {@link lazyLoadingForFullHeight} and
11655
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
11656
+ * they scroll into view. Set either flag to `false` to opt out.
11657
+ *
11658
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11659
+ * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
11660
+ * @example
11661
+ * ```js
11662
+ * // Replace <EmbedComponent> with the embed component name.
11663
+ * // For example, AppEmbed or LiveboardEmbed
11664
+ * const embed = new <EmbedComponent>('#embed', {
11665
+ * ... // other view config
11666
+ * fullHeight: true,
11667
+ * });
11668
+ * ```
11669
+ */
11670
+ fullHeight?: boolean;
11671
+ /**
11672
+ * This is the minimum height (in pixels) for a full-height Liveboard.
11673
+ * Setting this height helps resolve issues with empty Liveboards and
11674
+ * other screens navigable from a Liveboard.
11675
+ *
11676
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11677
+ * @version SDK: 1.44.2 | ThoughtSpot: 10.15.0.cl
11678
+ * @default 500
11679
+ * @example
11680
+ * ```js
11681
+ * // Replace <EmbedComponent> with the embed component name.
11682
+ * // For example, AppEmbed or LiveboardEmbed
11683
+ * const embed = new <EmbedComponent>('#embed', {
11684
+ * ... // other view config
11685
+ * fullHeight: true,
11686
+ * minimumHeight: 600,
11687
+ * });
11688
+ * ```
11689
+ */
11690
+ minimumHeight?: number;
11691
+ /**
11692
+ * This is the minimum height (in pixels) for a full-height Liveboard.
11693
+ * Setting this height helps resolve issues with empty Liveboards and
11694
+ * other screens navigable from a Liveboard.
11695
+ *
11696
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11697
+ * @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
11698
+ * @deprecated Use `minimumHeight` instead.
11699
+ * @default 500
11700
+ * @example
11701
+ * ```js
11702
+ * // Replace <EmbedComponent> with the embed component name.
11703
+ * // For example, AppEmbed or LiveboardEmbed
11704
+ * const embed = new <EmbedComponent>('#embed', {
11705
+ * ... // other view config
11706
+ * fullHeight: true,
11707
+ * defaultHeight: 600,
11708
+ * });
11709
+ * ```
11710
+ */
11711
+ defaultHeight?: number;
11712
+ /**
11713
+ * Loads visualizations only as they scroll into the viewport, instead of
11714
+ * loading the whole full-height Liveboard at once.
11715
+ *
11716
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
11717
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
11718
+ * set explicitly. Set it to `false` to load every visualization upfront.
11719
+ * The flag has no effect unless `fullHeight` is enabled.
11720
+ *
11721
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11722
+ * @type {boolean}
11723
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
11724
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
11725
+ * @example
11726
+ * ```js
11727
+ * // Replace <EmbedComponent> with the embed component name.
11728
+ * // For example, AppEmbed or LiveboardEmbed
11729
+ * const embed = new <EmbedComponent>('#embed-container', {
11730
+ * // ...other options
11731
+ * fullHeight: true,
11732
+ * lazyLoadingForFullHeight: true,
11733
+ * })
11734
+ * ```
11735
+ */
11736
+ lazyLoadingForFullHeight?: boolean;
11737
+ /**
11738
+ * How far outside the viewport a visualization starts loading, when
11739
+ * {@link lazyLoadingForFullHeight} is enabled.
11740
+ *
11741
+ * For example, if the margin is set to '10px',
11742
+ * the visualization will be loaded 10px before its top edge is visible in the
11743
+ * viewport.
11744
+ *
11745
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
11746
+ * prefetch 500px above and below the viewport and not sideways. Accepted
11747
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
11748
+ * `auto`; an invalid value is logged and ignored.
11749
+ *
11750
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
11751
+ * visualization ahead of the scroll position, so a chart has usually
11752
+ * finished loading by the time it scrolls into view. Use a smaller margin
11753
+ * to cut warehouse queries further, or `'0px'` to load a visualization
11754
+ * only once it is actually visible.
11755
+ *
11756
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11757
+ * @type {string}
11758
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
11759
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
11760
+ * @example
11761
+ * ```js
11762
+ * // Replace <EmbedComponent> with the embed component name.
11763
+ * // For example, AppEmbed or LiveboardEmbed
11764
+ * const embed = new <EmbedComponent>('#embed-container', {
11765
+ * // ...other options
11766
+ * fullHeight: true,
11767
+ * lazyLoadingForFullHeight: true,
11768
+ * // With 0px, the visualization only starts loading once it is
11769
+ * // visible in the viewport.
11770
+ * lazyLoadingMargin: '0px',
11771
+ * })
11772
+ * ```
11773
+ */
11774
+ lazyLoadingMargin?: string;
11775
+ /**
11776
+ * Computes the visible region of the embed against its scrollable and
11777
+ * clipping ancestors, instead of treating the browser window as the only
11778
+ * viewport, and tracks scroll and resize on those ancestors.
11779
+ *
11780
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
11781
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
11782
+ * set explicitly. Set it to `false` when the page scrolls with the window
11783
+ * and the embed has no clipping ancestor, to skip the extra ancestor
11784
+ * tracking.
11785
+ *
11786
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
11787
+ * @type {boolean}
11788
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
11789
+ */
11790
+ enableScrollableContainerLazyLoading?: boolean;
11791
+ }
11792
+ /**
11793
+ * Request for host events that MAY target a specific visualization.
11794
+ * Omitting vizId targets the current answer/liveboard as a whole.
11795
+ * (In some contexts, e.g. Spotter, the app requires vizId at runtime.)
11796
+ */
11797
+ export interface VizScopedRequest {
11798
+ vizId?: string;
11799
+ }
11800
+ /**
11801
+ * Request for host events that MUST target a specific visualization.
11802
+ */
11803
+ export interface RequiredVizRequest {
11804
+ vizId: string;
11805
+ }
11806
+ /**
11807
+ * Request for Spotter conversation-scoped host events.
11808
+ */
11809
+ export interface ConversationScopedRequest {
11810
+ conversationId: string;
11811
+ }
11812
+ /**
11813
+ * Request payload for {@link HostEvent.OpenFilter}. Field requirements
11814
+ * vary by context (Search requires columnId/type/dataType/name); the
11815
+ * contract is the cross-context superset — the app validates per context
11816
+ * at runtime. Per-context views: {@link OpenFilterLiveboardRequest},
11817
+ * {@link OpenFilterSpotterRequest}, {@link OpenFilterSearchRequest}.
11818
+ */
11819
+ export interface OpenFilterRequest {
11820
+ column: {
11821
+ columnId?: string;
11822
+ columnName?: string;
11823
+ type?: string;
11824
+ dataType?: string;
11825
+ name?: string;
11826
+ isStrictDateColumn?: boolean;
11827
+ };
11828
+ applicability?: Applicability;
11829
+ visualizationId?: string;
11830
+ liveboardId?: string;
11831
+ }
11832
+ /**
11833
+ * `OpenFilter` in Liveboard context: full column plus scoping fields.
11834
+ * A per-context view of {@link OpenFilterRequest} (documentation only today;
11835
+ * `trigger()` accepts the superset).
11836
+ */
11837
+ export interface OpenFilterLiveboardRequest {
11838
+ column: {
11839
+ columnId?: string;
11840
+ columnName?: string;
11841
+ };
11842
+ applicability?: Applicability;
11843
+ visualizationId?: string;
11844
+ liveboardId?: string;
11845
+ }
11846
+ /**
11847
+ * `OpenFilter` in Spotter context: only the column identity is accepted.
11848
+ */
11849
+ export interface OpenFilterSpotterRequest {
11850
+ column: {
11851
+ columnId?: string;
11852
+ columnName?: string;
11853
+ };
11854
+ }
11855
+ /**
11856
+ * `OpenFilter` in Search/Answer context: column identity plus column metadata.
11857
+ */
11858
+ export interface OpenFilterSearchRequest {
11859
+ column: {
11860
+ columnId?: string;
11861
+ columnName?: string;
11862
+ type?: string;
11863
+ dataType?: string;
11864
+ name?: string;
11865
+ isStrictDateColumn?: boolean;
11866
+ };
11867
+ }
11868
+ /**
11869
+ * Request payload for {@link HostEvent.DrillDown}. Drills on selected or
11870
+ * clicked points of a visualization. In Liveboard context `vizId` is required
11871
+ * at runtime (documentation only today; `trigger()` is not yet type-enforced).
11872
+ */
11873
+ export interface DrillDownRequest {
11874
+ points: {
11875
+ clickedPoint?: object;
11876
+ selectedPoints?: object[];
11877
+ };
11878
+ columnGuid?: string;
11879
+ autoDrillDown?: boolean;
11880
+ vizId?: string;
11881
+ }
11882
+ /**
11883
+ * Request payload for {@link HostEvent.OpenParameter}. One of parameterId
11884
+ * or parameterName must be provided (validated at runtime).
10976
11885
  */
10977
- export interface VisualizationOverrides {
10978
- /** Chart visualization overrides */
10979
- chart?: ChartOverrides;
10980
- /** Table visualization overrides */
10981
- table?: TableOverrides;
11886
+ export interface OpenParameterRequest {
11887
+ parameter: {
11888
+ parameterId?: string;
11889
+ parameterName?: string;
11890
+ };
11891
+ applicability?: Applicability;
10982
11892
  }
10983
- export interface LiveboardTab {
10984
- id: string;
10985
- name: string;
10986
- [key: string]: any;
11893
+ /**
11894
+ * Request payload for {@link HostEvent.Search}.
11895
+ */
11896
+ export interface SearchRequest {
11897
+ searchQuery: string;
11898
+ dataSources: string[];
11899
+ execute?: boolean;
10987
11900
  }
10988
- export interface LiveboardGroup {
10989
- id: string;
10990
- name: string;
10991
- [key: string]: any;
11901
+ /**
11902
+ * Request payload for {@link HostEvent.SpotterSearch}.
11903
+ */
11904
+ export interface SpotterSearchRequest {
11905
+ query: string;
11906
+ executeSearch: boolean;
10992
11907
  }
10993
11908
  /**
10994
- * Levels at which a filter or parameter can be applied.
11909
+ * A single cross-filter condition for {@link HostEvent.UpdateCrossFilter}.
10995
11910
  */
10996
- export declare enum ApplicabilityLevel {
10997
- Liveboard = "LIVEBOARD",
10998
- Tab = "TAB",
10999
- Group = "GROUP"
11911
+ export interface CrossFilterCondition {
11912
+ columnName?: string;
11913
+ operator?: string;
11914
+ values: Array<string | number | boolean>;
11000
11915
  }
11001
11916
  /**
11002
- * Scopes a filter or parameter to a specific target.
11003
- * At `LIVEBOARD` level the filter applies to the whole Liveboard, so `targetId`
11004
- * is not required.
11917
+ * Request payload for {@link HostEvent.UpdateCrossFilter}.
11005
11918
  */
11006
- export interface Applicability {
11007
- level: ApplicabilityLevel;
11008
- targetId?: string;
11919
+ export interface UpdateCrossFilterRequest {
11920
+ vizId: string;
11921
+ conditions: CrossFilterCondition[];
11009
11922
  }
11010
- export interface FilterUpdate {
11011
- column: string;
11012
- oper: string;
11013
- values: string[];
11923
+ /**
11924
+ * A single filter entry for {@link HostEvent.UpdateFilters}. Supports both
11925
+ * the current (columnName/operator) and legacy (column/oper) field names.
11926
+ */
11927
+ export interface HostFilterUpdate {
11928
+ columnName?: string;
11929
+ columnId?: string;
11930
+ operator?: string;
11931
+ values: Array<string | number | boolean>;
11014
11932
  type?: string;
11933
+ datePeriod?: string;
11934
+ negate?: boolean;
11935
+ /** Legacy field name for columnName. */
11936
+ column?: string;
11937
+ /** Legacy field name for operator. */
11938
+ oper?: string;
11015
11939
  applicability?: Applicability;
11016
11940
  }
11017
- export interface LiveboardFilter {
11018
- applicability?: Applicability;
11019
- [key: string]: any;
11941
+ /**
11942
+ * Request payload for {@link HostEvent.UpdateFilters} (singular or plural
11943
+ * form).
11944
+ */
11945
+ export interface UpdateFiltersRequest {
11946
+ filter?: HostFilterUpdate;
11947
+ filters?: HostFilterUpdate[];
11948
+ /**
11949
+ * Scope the update to a specific visualization on a Liveboard.
11950
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11951
+ */
11952
+ visualizationId?: string;
11953
+ /**
11954
+ * Scope the update to a specific Liveboard.
11955
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11956
+ */
11957
+ liveboardId?: string;
11020
11958
  }
11021
- export interface LiveboardParameter {
11022
- applicability?: Applicability;
11023
- [key: string]: any;
11959
+ /**
11960
+ * Request payload for personalised-view host events.
11961
+ */
11962
+ export interface PersonalisedViewRequest {
11963
+ viewId?: string;
11964
+ viewName?: string;
11024
11965
  }
11025
- export declare enum UIPassthroughEvent {
11026
- PinAnswerToLiveboard = "addVizToPinboard",
11027
- SaveAnswer = "saveAnswer",
11028
- GetDiscoverabilityStatus = "getDiscoverabilityStatus",
11029
- GetAvailableUIPassthroughs = "getAvailableUiPassthroughs",
11030
- GetAnswerConfig = "getAnswerPageConfig",
11031
- GetLiveboardConfig = "getPinboardPageConfig",
11032
- GetUnsavedAnswerTML = "getUnsavedAnswerTML",
11033
- UpdateFilters = "updateFilters",
11034
- Drilldown = "drillDown",
11035
- GetAnswerSession = "getAnswerSession",
11036
- GetFilters = "getFilters",
11037
- GetIframeUrl = "getIframeUrl",
11038
- GetParameters = "getParameters",
11039
- GetTML = "getTML",
11040
- GetTabs = "getTabs",
11041
- GetGroups = "getGroups",
11042
- GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
11966
+ /**
11967
+ * Request payload for schedule-email related host events.
11968
+ */
11969
+ export interface ScheduleEmailRequest {
11970
+ sendToSelf?: boolean;
11043
11971
  }
11044
- export type UIPassthroughContractBase = {
11045
- [UIPassthroughEvent.PinAnswerToLiveboard]: {
11046
- request: {
11047
- vizId?: string;
11048
- newVizName: string;
11049
- newVizDescription?: string;
11050
- liveboardId?: string;
11051
- tabId?: string;
11052
- newLiveboardName?: string;
11053
- newTabName?: string;
11054
- };
11055
- response: {
11056
- liveboardId: string;
11057
- tabId: string;
11058
- vizId: string;
11059
- };
11060
- };
11061
- [UIPassthroughEvent.SaveAnswer]: {
11062
- request: {
11063
- name: string;
11064
- description: string;
11065
- vizId?: string;
11066
- isDiscoverable?: boolean;
11067
- };
11068
- response: {
11069
- answerId: string;
11070
- saveResponse?: any;
11071
- shareResponse?: any;
11072
- };
11073
- };
11074
- [UIPassthroughEvent.GetDiscoverabilityStatus]: {
11075
- request: any;
11076
- response: {
11077
- shouldShowDiscoverability: boolean;
11078
- isDiscoverabilityCheckboxUnselectedPerOrg: boolean;
11079
- };
11080
- };
11081
- [UIPassthroughEvent.GetAvailableUIPassthroughs]: {
11082
- request: any;
11083
- response: {
11084
- keys: string[];
11085
- };
11086
- };
11087
- [UIPassthroughEvent.GetAnswerConfig]: {
11088
- request: {
11089
- vizId?: string;
11090
- };
11091
- response: any;
11092
- };
11093
- [UIPassthroughEvent.GetLiveboardConfig]: {
11094
- request: any;
11095
- response: any;
11096
- };
11097
- [UIPassthroughEvent.GetUnsavedAnswerTML]: {
11098
- request: {
11099
- sessionId?: string;
11100
- vizId?: string;
11101
- };
11102
- response: {
11103
- tml: string;
11104
- };
11105
- };
11106
- [UIPassthroughEvent.GetAnswerSession]: {
11107
- request: {
11108
- vizId?: string;
11109
- };
11110
- response: {
11111
- session: SessionInterface;
11112
- embedAnswerData?: Record<string, any>;
11113
- };
11114
- };
11115
- [UIPassthroughEvent.GetFilters]: {
11116
- request: {
11117
- vizId?: string;
11118
- };
11119
- response: {
11120
- liveboardFilters: LiveboardFilter[];
11121
- runtimeFilters: RuntimeFilter[];
11122
- };
11123
- };
11124
- [UIPassthroughEvent.GetIframeUrl]: {
11125
- request: Record<string, never>;
11126
- response: {
11127
- iframeUrl: string;
11128
- };
11129
- };
11130
- [UIPassthroughEvent.GetParameters]: {
11131
- request: Record<string, never>;
11132
- response: {
11133
- parameters: LiveboardParameter[];
11134
- };
11135
- };
11136
- [UIPassthroughEvent.GetTML]: {
11137
- request: {
11138
- vizId?: string;
11139
- includeNonExecutedSearchTokens?: boolean;
11140
- };
11141
- response: Record<string, any>;
11142
- };
11143
- [UIPassthroughEvent.GetTabs]: {
11144
- request: Record<string, never>;
11145
- response: {
11146
- orderedTabIds: string[];
11147
- numberOfTabs: number;
11148
- Tabs: LiveboardTab[];
11149
- };
11972
+ /**
11973
+ * Object form of the {@link HostEvent.Navigate} payload.
11974
+ */
11975
+ export interface NavigateRequest {
11976
+ /**
11977
+ * Route to navigate to, or a history delta such as `1` or `-1`.
11978
+ */
11979
+ path: string | number;
11980
+ /**
11981
+ * When `true`, replaces the current history entry instead of pushing.
11982
+ */
11983
+ replace?: boolean;
11984
+ }
11985
+ /**
11986
+ * Request payload for {@link HostEvent.SetActiveTab}.
11987
+ */
11988
+ export interface SetActiveTabRequest {
11989
+ /**
11990
+ * Id of the liveboard tab to make active.
11991
+ */
11992
+ tabId: string;
11993
+ }
11994
+ /**
11995
+ * Typed request payloads for host events that do not go through the UI
11996
+ * passthrough pipeline (`HostEvent` member → request type; `void` = no payload).
11997
+ *
11998
+ * Shapes are transcribed from the host's runtime validation schemas
11999
+ * (embed-util HostEventContract) — what the ThoughtSpot app actually enforces —
12000
+ * flattened across contexts to the permissive superset (context-specific
12001
+ * requirements are validated at runtime).
12002
+ *
12003
+ * Responses are typed only for UI-passthrough-backed events today (see
12004
+ * {@link HostEventResponse}). Add a response map alongside this one when the
12005
+ * first explicit response shape is specified; tightening later is additive.
12006
+ *
12007
+ * Deliberately absent (do not add without an audit):
12008
+ * - DrillDown: the runtime schema (object-shaped points) and the UI
12009
+ * passthrough contract (string-shaped points) disagree — resolve the
12010
+ * drift first.
12011
+ * - GetAnswerSession/GetParameters/GetTML: typed via the UI passthrough
12012
+ * mapping; their Spotter-context vizId requirement is runtime-only.
12013
+ */
12014
+ export interface HostEventRequestMap {
12015
+ [HostEvent.UpdateRuntimeFilters]: RuntimeFilter[];
12016
+ [HostEvent.UpdateParameters]: RuntimeParameter[];
12017
+ [HostEvent.UpdateFilters]: UpdateFiltersRequest;
12018
+ [HostEvent.UpdateCrossFilter]: UpdateCrossFilterRequest;
12019
+ [HostEvent.OpenFilter]: OpenFilterRequest;
12020
+ [HostEvent.OpenParameter]: OpenParameterRequest;
12021
+ [HostEvent.SetVisibleVizs]: string[];
12022
+ [HostEvent.SetVisibleTabs]: string[];
12023
+ [HostEvent.SetHiddenTabs]: string[];
12024
+ [HostEvent.SetActiveTab]: SetActiveTabRequest;
12025
+ [HostEvent.Navigate]: string | number | NavigateRequest;
12026
+ [HostEvent.Search]: SearchRequest;
12027
+ [HostEvent.ResetSearch]: void;
12028
+ [HostEvent.AddColumns]: {
12029
+ columnIds: string[];
11150
12030
  };
11151
- [UIPassthroughEvent.GetGroups]: {
11152
- request: Record<string, never>;
11153
- response: {
11154
- orderedGroupIds: string[];
11155
- numberOfGroups: number;
11156
- Groups: LiveboardGroup[];
11157
- };
12031
+ [HostEvent.RemoveColumn]: {
12032
+ columnId: string;
11158
12033
  };
11159
- [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
11160
- request: Record<string, never>;
11161
- response: {
11162
- data: {
11163
- v2Content: string;
11164
- };
11165
- type: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
11166
- };
12034
+ [HostEvent.Edit]: VizScopedRequest;
12035
+ [HostEvent.Save]: VizScopedRequest;
12036
+ [HostEvent.Delete]: VizScopedRequest;
12037
+ [HostEvent.Share]: VizScopedRequest;
12038
+ [HostEvent.Present]: VizScopedRequest;
12039
+ [HostEvent.CopyLink]: VizScopedRequest;
12040
+ [HostEvent.ExportTML]: VizScopedRequest;
12041
+ [HostEvent.EditTML]: VizScopedRequest;
12042
+ [HostEvent.UpdateTML]: VizScopedRequest;
12043
+ [HostEvent.SchedulesList]: VizScopedRequest;
12044
+ [HostEvent.Schedule]: VizScopedRequest;
12045
+ [HostEvent.SpotIQAnalyze]: VizScopedRequest;
12046
+ [HostEvent.ShowUnderlyingData]: VizScopedRequest;
12047
+ [HostEvent.CreateMonitor]: VizScopedRequest;
12048
+ [HostEvent.ManageMonitor]: VizScopedRequest;
12049
+ [HostEvent.SyncToSheets]: VizScopedRequest;
12050
+ [HostEvent.SyncToOtherApps]: VizScopedRequest;
12051
+ [HostEvent.ManagePipelines]: VizScopedRequest;
12052
+ [HostEvent.DownloadAsPng]: VizScopedRequest;
12053
+ [HostEvent.DownloadAsCsv]: VizScopedRequest;
12054
+ [HostEvent.DownloadAsXlsx]: VizScopedRequest;
12055
+ [HostEvent.DownloadAsPdf]: VizScopedRequest & {
12056
+ liveboardId?: string;
11167
12057
  };
11168
- [UIPassthroughEvent.UpdateFilters]: {
11169
- request: {
11170
- filter?: FilterUpdate;
11171
- filters?: FilterUpdate[];
11172
- };
11173
- response: unknown;
12058
+ [HostEvent.Explore]: RequiredVizRequest;
12059
+ [HostEvent.AskSage]: RequiredVizRequest;
12060
+ [HostEvent.AskSpotter]: RequiredVizRequest;
12061
+ [HostEvent.AnswerChartSwitcher]: RequiredVizRequest;
12062
+ [HostEvent.UpdatePersonalisedView]: Pick<PersonalisedViewRequest, "viewId">;
12063
+ [HostEvent.SelectPersonalizedView]: PersonalisedViewRequest;
12064
+ [HostEvent.ResetLiveboardPersonalisedView]: void;
12065
+ [HostEvent.AIHighlights]: void;
12066
+ [HostEvent.SendTestScheduleEmail]: ScheduleEmailRequest;
12067
+ [HostEvent.RefreshLiveboardBrowserCache]: ScheduleEmailRequest;
12068
+ [HostEvent.SpotterSearch]: SpotterSearchRequest;
12069
+ [HostEvent.ResetSpotterConversation]: void;
12070
+ [HostEvent.ShareSpotterConversation]: ConversationScopedRequest;
12071
+ [HostEvent.CloseSpotterShareConversation]: void;
12072
+ [HostEvent.ExitSpotterSharedConversation]: void;
12073
+ [HostEvent.PinSpotterConversation]: ConversationScopedRequest;
12074
+ [HostEvent.UnpinSpotterConversation]: ConversationScopedRequest;
12075
+ [HostEvent.EditLastPrompt]: string;
12076
+ [HostEvent.DeleteLastPrompt]: void;
12077
+ [HostEvent.PreviewSpotterData]: void;
12078
+ [HostEvent.SpotterVizSendUserMessage]: {
12079
+ query: string;
11174
12080
  };
11175
- [UIPassthroughEvent.Drilldown]: {
11176
- request: {
11177
- points: {
11178
- selectedPoints?: string[];
11179
- clickedPoint?: string;
11180
- };
11181
- columnGuid?: string;
11182
- autoDrillDown?: boolean;
11183
- vizId?: string;
11184
- };
11185
- response: unknown;
12081
+ [HostEvent.InitSpotterVizConversation]: void;
12082
+ [HostEvent.OpenSpotterVizPanel]: void;
12083
+ [HostEvent.CloseSpotterVizPanel]: void;
12084
+ }
12085
+ /**
12086
+ * Per-context request shapes for events whose payload varies by
12087
+ /**
12088
+ * Resolves the typed request payload for a host event.
12089
+ * Resolution order:
12090
+ * 1. Explicitly typed request in {@link HostEventRequestMap}
12091
+ * 2. UI passthrough backed contract ({@link EmbedApiHostEventMapping})
12092
+ * 3. `any` (event not audited/typed yet — backward compatible)
12093
+ *
12094
+ * Requests are the cross-context superset today. The per-context `*Request`
12095
+ * interfaces (e.g. {@link OpenFilterLiveboardRequest}) document how the shape
12096
+ * narrows by context; a later release may thread the caller's context to
12097
+ * enforce it.
12098
+ */
12099
+ export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof HostEventRequestMap ? HostEventRequestMap[HostEventT] : HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
12100
+ /**
12101
+ * Resolves the typed response payload for a host event. Only UI passthrough
12102
+ * backed events have typed responses today; everything else resolves to `any`.
12103
+ */
12104
+ export type HostEventResponse<HostEventT extends HostEvent, ContextT extends ContextType = ContextType> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
12105
+ /**
12106
+ * Payload type accepted by `embed.trigger()`. Keeps the historical
12107
+ * `PayloadT` escape hatch so untyped existing call sites keep compiling.
12108
+ */
12109
+ export type TriggerPayload<PayloadT, HostEventT extends HostEvent> = PayloadT | HostEventRequest<HostEventT>;
12110
+ /**
12111
+ * Deep `Partial` of a request type: every field optional at every depth, with no
12112
+ * index signature — so object literals carrying unknown fields are flagged.
12113
+ */
12114
+ export type DeepPartial<T> = T extends (infer U)[] ? DeepPartial<U>[] : T extends object ? {
12115
+ [K in keyof T]?: DeepPartial<T[K]>;
12116
+ } : T;
12117
+ /**
12118
+ * `trigger()`'s `data` type: an all-optional view of the event's request type.
12119
+ * See {@link HostEventRequest} and the `*Request` interfaces, e.g. {@link SearchRequest}.
12120
+ * No-payload events take `{}`. SDK 1.54.0 makes this strict (required fields enforced).
12121
+ */
12122
+ export type TriggerData<HostEventT extends HostEvent> = HostEventRequest<HostEventT> extends void ? Record<string, never> : DeepPartial<HostEventRequest<HostEventT>>;
12123
+ /**
12124
+ * Response type returned by `embed.trigger()`.
12125
+ */
12126
+ export type TriggerResponse<PayloadT, HostEventT extends HostEvent, ContextT extends ContextType = ContextType> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT, ContextT> : any;
12127
+ /**
12128
+ * Typed `data` field per embed event. Seed with audited events only.
12129
+ */
12130
+ export interface EmbedEventDataExtension {
12131
+ [EmbedEvent.AuthInit]: {
12132
+ /**
12133
+ * Whether authentication was successful.
12134
+ */
12135
+ isLoggedIn?: boolean;
12136
+ [key: string]: any;
11186
12137
  };
12138
+ [EmbedEvent.EmbedListenerReady]: Record<string, any>;
12139
+ /**
12140
+ * Fired when a callback-type custom action is triggered. Use
12141
+ * `payload.data.id` to identify which action fired.
12142
+ */
12143
+ [EmbedEvent.CustomAction]: CustomActionPayload;
12144
+ }
12145
+ /**
12146
+ * Resolves the typed `data` payload for an embed event; `any` when the
12147
+ * event has not been audited/typed yet.
12148
+ */
12149
+ export type EmbedEventData<EmbedEventT extends EmbedEvent> = EmbedEventT extends keyof EmbedEventDataExtension ? EmbedEventDataExtension[EmbedEventT] : any;
12150
+ /**
12151
+ * Full envelope delivered to `embed.on()` callbacks for a given event:
12152
+ * the wire fields (`type`, `status`) plus the typed `data`.
12153
+ */
12154
+ export type EmbedEventPayload<EmbedEventT extends EmbedEvent> = Omit<MessagePayload, "data"> & {
12155
+ data: EmbedEventData<EmbedEventT>;
11187
12156
  };
11188
- export type UIPassthroughRequest<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["request"];
11189
- export type UIPassthroughResponse<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["response"];
11190
- export type UIPassthroughArrayResponse<ApiName extends keyof UIPassthroughContractBase> = Array<{
11191
- refId?: string;
11192
- value?: UIPassthroughResponse<ApiName>;
11193
- error?: any;
11194
- }>;
11195
- export type EmbedApiHostEventMapping = {
11196
- [HostEvent.Pin]: UIPassthroughEvent.PinAnswerToLiveboard;
11197
- [HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer;
11198
- [HostEvent.GetAnswerSession]: UIPassthroughEvent.GetAnswerSession;
11199
- [HostEvent.GetFilters]: UIPassthroughEvent.GetFilters;
11200
- [HostEvent.GetIframeUrl]: UIPassthroughEvent.GetIframeUrl;
11201
- [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
11202
- [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
11203
- [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
11204
- [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
11205
- [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
11206
- };
11207
- export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
11208
- export type HostEventResponse<HostEventT extends HostEvent, ContextT extends ContextType> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
11209
- export type TriggerPayload<PayloadT, HostEventT extends HostEvent> = PayloadT | HostEventRequest<HostEventT>;
11210
- export type TriggerResponse<PayloadT, HostEventT extends HostEvent, ContextT extends ContextType> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT, ContextT> : any;
11211
12157
  declare class HostEventClient {
11212
12158
  iFrame: HTMLIFrameElement;
11213
12159
  /** Cached list of available UI passthrough keys from the embedded app */
@@ -11257,7 +12203,7 @@ declare class HostEventClient {
11257
12203
  * @param payload - Optional payload for the event
11258
12204
  * @param context - Optional context (e.g. vizId) for scoped operations
11259
12205
  */
11260
- triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
12206
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11261
12207
  }
11262
12208
  declare class TsEmbed {
11263
12209
  /**
@@ -11275,6 +12221,7 @@ declare class TsEmbed {
11275
12221
  * The key to store the embed instance in the DOM node
11276
12222
  */
11277
12223
  protected embedNodeKey: string;
12224
+ protected embedContainerLoadedKey: string;
11278
12225
  protected isAppInitialized: boolean;
11279
12226
  /**
11280
12227
  * A reference to the iframe within which the ThoughtSpot app
@@ -11444,10 +12391,10 @@ declare class TsEmbed {
11444
12391
  */
11445
12392
  protected getEmbedBasePath(query: string): string;
11446
12393
  protected getUpdateEmbedParamsObject(): Promise<{
11447
- customisations: CustomisationsInterface;
11448
- authToken: string;
11449
12394
  runtimeFilterParams: string;
11450
12395
  runtimeParameterParams: string;
12396
+ customisations: CustomisationsInterface;
12397
+ authToken: string;
11451
12398
  hiddenHomepageModules: HomepageModule[];
11452
12399
  reorderedHomepageModules: string[];
11453
12400
  hostConfig: Record<string, any>;
@@ -11640,21 +12587,6 @@ declare class TsEmbed {
11640
12587
  * or else the v2 event type itself
11641
12588
  */
11642
12589
  protected getCompatibleEventType(eventType: EmbedEvent): EmbedEvent;
11643
- /**
11644
- * Calculates the iframe center for the current visible viewPort
11645
- * of iframe using Scroll position of Host App, offsetTop for iframe
11646
- * in Host app. ViewPort height of the tab.
11647
- * @returns iframe Center in visible viewport,
11648
- * Iframe height,
11649
- * View port height.
11650
- */
11651
- protected getIframeCenter(): {
11652
- iframeCenter: number;
11653
- iframeScrolled: number;
11654
- iframeHeight: number;
11655
- viewPortHeight: number;
11656
- iframeVisibleViewPort: number;
11657
- };
11658
12590
  /**
11659
12591
  * Registers an event listener to trigger an alert when the ThoughtSpot app
11660
12592
  * sends an event of a particular message type to the host application.
@@ -11678,7 +12610,7 @@ declare class TsEmbed {
11678
12610
  * });
11679
12611
  * ```
11680
12612
  */
11681
- on(messageType: EmbedEvent, callback: MessageCallback, options?: MessageOptions, isRegisteredBySDK?: boolean): typeof TsEmbed.prototype;
12613
+ on<EmbedEventT extends EmbedEvent>(messageType: EmbedEventT, callback: (payload: EmbedEventPayload<EmbedEventT>, responder?: (data: any) => void) => void, options?: MessageOptions, isRegisteredBySDK?: boolean): typeof TsEmbed.prototype;
11682
12614
  /**
11683
12615
  * Removes an event listener for a particular event type.
11684
12616
  * @param messageType The message type
@@ -11714,6 +12646,8 @@ declare class TsEmbed {
11714
12646
  */
11715
12647
  private embedContainerReadyCallbacks;
11716
12648
  protected getPreRenderObj<T extends TsEmbed>(): T;
12649
+ protected takeOverPreRender(): void;
12650
+ private markEmbedContainerLoaded;
11717
12651
  private checkEmbedContainerLoaded;
11718
12652
  private executeEmbedContainerReadyCallbacks;
11719
12653
  /**
@@ -11724,8 +12658,12 @@ declare class TsEmbed {
11724
12658
  protected createEmbedContainerHandler: (source: EmbedEvent.AuthInit | EmbedEvent.EmbedListenerReady) => () => void;
11725
12659
  /**
11726
12660
  * Triggers an event to the embedded app
12661
+ *
12662
+ * Payload typing: from SDK 1.52.0 (ThoughtSpot Cloud 26.9.0.cl), unknown fields
12663
+ * on a known event's payload fail to compile. From SDK 1.54.0 (26.11.0.cl) the
12664
+ * payload is checked strictly against the event contract — update call sites now.
11727
12665
  * @param {HostEvent} messageType The event type
11728
- * @param {any} data The payload to send with the message
12666
+ * @param {TriggerData} data The payload, typed against the event's contract
11729
12667
  * @param {ContextType} context Optional context type to specify the context from which the event is triggered.
11730
12668
  * Use ContextType.Search for search answer context, ContextType.Answer for answer/explore context,
11731
12669
  * ContextType.Liveboard for liveboard context, or ContextType.Spotter for spotter context.
@@ -11742,7 +12680,7 @@ declare class TsEmbed {
11742
12680
  * ```
11743
12681
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
11744
12682
  */
11745
- trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
12683
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerData<HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11746
12684
  /**
11747
12685
  * Triggers an event to the embedded app, skipping the UI flow.
11748
12686
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11844,6 +12782,7 @@ declare class TsEmbed {
11844
12782
  * @returns
11845
12783
  */
11846
12784
  prerenderGeneric(): Promise<any>;
12785
+ protected preRenderParamsApplied: Promise<void>;
11847
12786
  protected beforePrerenderVisible(): void;
11848
12787
  /**
11849
12788
  * Displays the pre-rendered component inside the host element.
@@ -11922,7 +12861,7 @@ declare class V1Embed extends TsEmbed {
11922
12861
  * });
11923
12862
  * ```
11924
12863
  */
11925
- on(messageType: EmbedEvent, callback: MessageCallback, options?: MessageOptions): typeof TsEmbed.prototype;
12864
+ on<EmbedEventT extends EmbedEvent>(messageType: EmbedEventT, callback: (payload: EmbedEventPayload<EmbedEventT>, responder?: (data: any) => void) => void, options?: MessageOptions): typeof TsEmbed.prototype;
11926
12865
  /**
11927
12866
  * Only for testing purposes.
11928
12867
  * @hidden
@@ -13054,7 +13993,7 @@ export interface DiscoveryExperience {
13054
13993
  * The view configuration for full app embedding.
13055
13994
  * @group Embed components
13056
13995
  */
13057
- export interface AppViewConfig extends AllEmbedViewConfig {
13996
+ export interface AppViewConfig extends AllEmbedViewConfig, FullHeightViewConfig {
13058
13997
  /**
13059
13998
  * If true, the top navigation bar within the ThoughtSpot app
13060
13999
  * is displayed. By default, the navigation bar is hidden.
@@ -13322,51 +14261,23 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13322
14261
  * Supported embed types: `AppEmbed`
13323
14262
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1-sw
13324
14263
  * @hidden
13325
- */
13326
- liveboardV2?: boolean;
13327
- /**
13328
- * If set to true, the Search Assist feature is enabled.
13329
- *
13330
- * Supported embed types: `AppEmbed`
13331
- * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
13332
- * @default true
13333
- * @example
13334
- * ```js
13335
- * const embed = new AppEmbed('#tsEmbed', {
13336
- * ... // other embed view config
13337
- * enableSearchAssist: true,
13338
- * })
13339
- * ```
13340
- */
13341
- enableSearchAssist?: boolean;
13342
- /**
13343
- * If set to true, the Liveboard container dynamically resizes
13344
- * according to the height of the Liveboard.
13345
- *
13346
- * **Note**: Using fullHeight loads all visualizations
13347
- * on the Liveboard simultaneously, which results in
13348
- * multiple warehouse queries and potentially a
13349
- * longer wait for the topmost visualizations to
13350
- * display on the screen. Setting fullHeight to
13351
- * `false` fetches visualizations incrementally as
13352
- * users scroll the page to view the charts and tables.
13353
- *
13354
- * From SDK 1.52.0, enabling `fullHeight` also turns on
13355
- * {@link lazyLoadingForFullHeight} and
13356
- * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13357
- * they scroll into view. Set either flag to `false` to opt out.
14264
+ */
14265
+ liveboardV2?: boolean;
14266
+ /**
14267
+ * If set to true, the Search Assist feature is enabled.
13358
14268
  *
13359
14269
  * Supported embed types: `AppEmbed`
13360
- * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
14270
+ * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
14271
+ * @default true
13361
14272
  * @example
13362
14273
  * ```js
13363
14274
  * const embed = new AppEmbed('#tsEmbed', {
13364
14275
  * ... // other embed view config
13365
- * fullHeight: true,
14276
+ * enableSearchAssist: true,
13366
14277
  * })
13367
14278
  * ```
13368
14279
  */
13369
- fullHeight?: boolean;
14280
+ enableSearchAssist?: boolean;
13370
14281
  /**
13371
14282
  * Enables the V2 navigation and modular home page experience.
13372
14283
  * For more information,
@@ -13561,78 +14472,6 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13561
14472
  * ```
13562
14473
  */
13563
14474
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13564
- /**
13565
- * Loads visualizations only as they scroll into the viewport, instead of
13566
- * loading the whole full-height Liveboard at once.
13567
- *
13568
- * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13569
- * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13570
- * set explicitly. Set it to `false` to load every visualization upfront.
13571
- * The flag has no effect unless `fullHeight` is enabled.
13572
- *
13573
- * @type {boolean}
13574
- * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13575
- * @default true when `fullHeight` is enabled, from SDK 1.52.0
13576
- * @example
13577
- * ```js
13578
- * const embed = new AppEmbed('#embed-container', {
13579
- * // ...other options
13580
- * fullHeight: true,
13581
- * lazyLoadingForFullHeight: true,
13582
- * })
13583
- * ```
13584
- */
13585
- lazyLoadingForFullHeight?: boolean;
13586
- /**
13587
- * Computes the visible region of the embed against its scrollable and
13588
- * clipping ancestors, instead of treating the browser window as the only
13589
- * viewport, and tracks scroll and resize on those ancestors.
13590
- *
13591
- * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13592
- * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13593
- * set explicitly. Set it to `false` when the page scrolls with the window
13594
- * and the embed has no clipping ancestor, to skip the extra ancestor
13595
- * tracking.
13596
- *
13597
- * @type {boolean}
13598
- * @default true when `fullHeight` is enabled, from SDK 1.52.0
13599
- * @hidden
13600
- */
13601
- enableScrollableContainerLazyLoading?: boolean;
13602
- /**
13603
- * How far outside the viewport a visualization starts loading, when
13604
- * {@link lazyLoadingForFullHeight} is enabled.
13605
- *
13606
- * For example, if the margin is set to '10px',
13607
- * the visualization will be loaded 10px before its top edge is visible in the
13608
- * viewport.
13609
- *
13610
- * The format is similar to CSS margin, so `'500px 0px'` extends the
13611
- * prefetch 500px above and below the viewport and not sideways. Accepted
13612
- * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13613
- * `auto`; an invalid value is logged and ignored.
13614
- *
13615
- * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13616
- * visualization ahead of the scroll position, so a chart has usually
13617
- * finished loading by the time it scrolls into view. Use a smaller margin
13618
- * to cut warehouse queries further, or `'0px'` to load a visualization
13619
- * only once it is actually visible.
13620
- *
13621
- * @type {string}
13622
- * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13623
- * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13624
- * @example
13625
- * ```js
13626
- * const embed = new AppEmbed('#embed-container', {
13627
- * // ...other options
13628
- * fullHeight: true,
13629
- * lazyLoadingForFullHeight: true,
13630
- * // Using 0px, the visualization will be only loaded when it's visible in the viewport.
13631
- * lazyLoadingMargin: '0px',
13632
- * })
13633
- * ```
13634
- */
13635
- lazyLoadingMargin?: string;
13636
14475
  /**
13637
14476
  * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
13638
14477
  *
@@ -13820,23 +14659,6 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13820
14659
  * @default false
13821
14660
  */
13822
14661
  enableStopAnswerGenerationEmbed?: boolean;
13823
- /**
13824
- * This is the minimum height (in pixels) for a full-height App.
13825
- * Setting this height helps resolve issues with empty Apps and
13826
- * other screens navigable from an App.
13827
- *
13828
- * @version SDK: 1.44.2 | ThoughtSpot: 10.15.0.cl
13829
- * @default 500
13830
- * @example
13831
- * ```js
13832
- * const embed = new AppEmbed('#embed', {
13833
- * ... // other app view config
13834
- * fullHeight: true,
13835
- * minimumHeight: 600,
13836
- * });
13837
- * ```
13838
- */
13839
- minimumHeight?: number;
13840
14662
  /**
13841
14663
  * To enable the homepage announcement banner.
13842
14664
  * Controls the visibility of the announcement section
@@ -13886,6 +14708,20 @@ export interface AppViewConfig extends AllEmbedViewConfig {
13886
14708
  * ```
13887
14709
  */
13888
14710
  updatedSpotterExperience?: boolean;
14711
+ /**
14712
+ * If set to `true`, the answer edit panel is hidden.
14713
+ *
14714
+ * Supported embed types: `AppEmbed`
14715
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
14716
+ * @example
14717
+ * ```js
14718
+ * const embed = new AppEmbed('#tsEmbed', {
14719
+ * ... // other embed view config
14720
+ * hideAnswerEditPanel: true,
14721
+ * })
14722
+ * ```
14723
+ */
14724
+ hideAnswerEditPanel?: boolean;
13889
14725
  }
13890
14726
  /**
13891
14727
  * APP_INIT data shape for AppEmbed.
@@ -13905,9 +14741,7 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
13905
14741
  */
13906
14742
  export declare class AppEmbed extends V1Embed {
13907
14743
  protected viewConfig: AppViewConfig;
13908
- private defaultHeight;
13909
- private lazyLoadScrollContainers;
13910
- private lazyLoadResizeObserver;
14744
+ private readonly fullHeightController?;
13911
14745
  constructor(domSelector: DOMSelector, viewConfig: AppViewConfig);
13912
14746
  /**
13913
14747
  * Extends the default APP_INIT payload with `embedParams.spotterSidebarConfig`
@@ -13928,27 +14762,11 @@ export declare class AppEmbed extends V1Embed {
13928
14762
  */
13929
14763
  protected getEmbedParams(): string;
13930
14764
  protected getEmbedParamsObject(): any;
13931
- private sendFullHeightLazyLoadData;
13932
- /**
13933
- * This is a handler for the RequestVisibleEmbedCoordinates event.
13934
- * It is used to send the visible coordinates data to the host application.
13935
- * @param data The event payload
13936
- * @param responder The responder function
13937
- */
13938
- private requestVisibleEmbedCoordinatesHandler;
13939
14765
  /**
13940
14766
  * Constructs the URL of the ThoughtSpot app page to be rendered.
13941
14767
  * @param pageId The ID of the page to be embedded.
13942
14768
  */
13943
14769
  getIFrameSrc(): string;
13944
- /**
13945
- * Set the iframe height as per the computed height received
13946
- * from the ThoughtSpot app.
13947
- * @param data The event payload
13948
- */
13949
- protected updateIFrameHeight: (data: MessagePayload) => void;
13950
- private embedIframeCenter;
13951
- private setIframeHeightForNonEmbedLiveboard;
13952
14770
  /**
13953
14771
  * Gets the ThoughtSpot route of the page for a particular page ID.
13954
14772
  * @param pageId The identifier for a page in the ThoughtSpot app.
@@ -13979,8 +14797,6 @@ export declare class AppEmbed extends V1Embed {
13979
14797
  */
13980
14798
  destroy(): void;
13981
14799
  private postRender;
13982
- private registerLazyLoadEvents;
13983
- private unregisterLazyLoadEvents;
13984
14800
  /**
13985
14801
  * Renders the embedded application pages in the ThoughtSpot app.
13986
14802
  * @param renderOptions An object containing the page ID
@@ -14285,71 +15101,7 @@ export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
14285
15101
  * The configuration for the embedded Liveboard or visualization page view.
14286
15102
  * @group Embed components
14287
15103
  */
14288
- export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardCommonViewConfig, LiveboardAppEmbedViewConfig {
14289
- /**
14290
- * If set to true, the embedded object container dynamically resizes
14291
- * according to the height of the Liveboard.
14292
- *
14293
- * **Note**: Using fullHeight loads all visualizations on the
14294
- * Liveboard simultaneously, which results in multiple warehouse
14295
- * queries and potentially a longer wait for the topmost
14296
- * visualizations to display on the screen.
14297
- * Setting `fullHeight` to `false` fetches visualizations
14298
- * incrementally as users scroll the page to view the charts and tables.
14299
- *
14300
- * From SDK 1.52.0, enabling `fullHeight` also turns on
14301
- * {@link lazyLoadingForFullHeight} and
14302
- * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14303
- * they scroll into view. Set either flag to `false` to opt out.
14304
- *
14305
- *
14306
- * Supported embed types: `LiveboardEmbed`
14307
- * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
14308
- * @example
14309
- * ```js
14310
- * const embed = new LiveboardEmbed('#embed', {
14311
- * ... // other liveboard view config
14312
- * fullHeight: true,
14313
- * });
14314
- * ```
14315
- */
14316
- fullHeight?: boolean;
14317
- /**
14318
- * This is the minimum height (in pixels) for a full-height Liveboard.
14319
- * Setting this height helps resolve issues with empty Liveboards and
14320
- * other screens navigable from a Liveboard.
14321
- *
14322
- * Supported embed types: `LiveboardEmbed`
14323
- * @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
14324
- * @deprecated Use `minimumHeight` instead.
14325
- * @default 500
14326
- * @example
14327
- * ```js
14328
- * const embed = new LiveboardEmbed('#embed', {
14329
- * ... // other liveboard view config
14330
- * fullHeight: true,
14331
- * defaultHeight: 600,
14332
- * });
14333
- * ```
14334
- */
14335
- defaultHeight?: number;
14336
- /**
14337
- * This is the minimum height (in pixels) for a full-height Liveboard.
14338
- * Setting this height helps resolve issues with empty Liveboards and
14339
- * other screens navigable from a Liveboard.
14340
- *
14341
- * @version SDK: 1.44.2 | ThoughtSpot: 10.15.0.cl
14342
- * @default 500
14343
- * @example
14344
- * ```js
14345
- * const embed = new LiveboardEmbed('#embed', {
14346
- * ... // other liveboard view config
14347
- * fullHeight: true,
14348
- * minimumHeight: 600,
14349
- * });
14350
- * ```
14351
- */
14352
- minimumHeight?: number;
15104
+ export interface LiveboardViewConfig extends BaseViewConfig, FullHeightViewConfig, SearchLiveboardCommonViewConfig, LiveboardAppEmbedViewConfig {
14353
15105
  /**
14354
15106
  * If set to true, the context menu in visualizations will be enabled.
14355
15107
  * @version SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
@@ -14693,77 +15445,6 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14693
15445
  * ```
14694
15446
  */
14695
15447
  isGranularXLSXCSVSchedulesEnabled?: boolean;
14696
- /**
14697
- * Loads visualizations only as they scroll into the viewport, instead of
14698
- * loading the whole full-height Liveboard at once.
14699
- *
14700
- * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14701
- * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14702
- * set explicitly. Set it to `false` to load every visualization upfront.
14703
- * The flag has no effect unless `fullHeight` is enabled.
14704
- *
14705
- * @type {boolean}
14706
- * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14707
- * @default true when `fullHeight` is enabled, from SDK 1.52.0
14708
- * @example
14709
- * ```js
14710
- * const embed = new LiveboardEmbed('#embed-container', {
14711
- * // ...other options
14712
- * fullHeight: true,
14713
- * lazyLoadingForFullHeight: true,
14714
- * })
14715
- * ```
14716
- */
14717
- lazyLoadingForFullHeight?: boolean;
14718
- /**
14719
- * Computes the visible region of the embed against its scrollable and
14720
- * clipping ancestors, instead of treating the browser window as the only
14721
- * viewport, and tracks scroll and resize on those ancestors.
14722
- *
14723
- * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14724
- * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14725
- * set explicitly. Set it to `false` when the page scrolls with the window
14726
- * and the embed has no clipping ancestor, to skip the extra ancestor
14727
- * tracking.
14728
- *
14729
- * @type {boolean}
14730
- * @default true when `fullHeight` is enabled, from SDK 1.52.0
14731
- */
14732
- enableScrollableContainerLazyLoading?: boolean;
14733
- /**
14734
- * How far outside the viewport a visualization starts loading, when
14735
- * {@link lazyLoadingForFullHeight} is enabled.
14736
- *
14737
- * For example, if the margin is set to '10px',
14738
- * the visualization will be loaded 10px before its top edge is visible in the
14739
- * viewport.
14740
- *
14741
- * The format is similar to CSS margin, so `'500px 0px'` extends the
14742
- * prefetch 500px above and below the viewport and not sideways. Accepted
14743
- * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14744
- * `auto`; an invalid value is logged and ignored.
14745
- *
14746
- * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14747
- * visualization ahead of the scroll position, so a chart has usually
14748
- * finished loading by the time it scrolls into view. Use a smaller margin
14749
- * to cut warehouse queries further, or `'0px'` to load a visualization
14750
- * only once it is actually visible.
14751
- *
14752
- * @type {string}
14753
- * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14754
- * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
14755
- * @example
14756
- * ```js
14757
- * const embed = new LiveboardEmbed('#embed-container', {
14758
- * // ...other options
14759
- * fullHeight: true,
14760
- * lazyLoadingForFullHeight: true,
14761
- * // Using 0px, the visualization will be only loaded when it's visible in the viewport.
14762
- * lazyLoadingMargin: '0px',
14763
- * })
14764
- * ```
14765
- */
14766
- lazyLoadingMargin?: string;
14767
15448
  /**
14768
15449
  * showSpotterLimitations : show limitation text
14769
15450
  * of the spotter underneath the chat input.
@@ -14917,9 +15598,7 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
14917
15598
  */
14918
15599
  export declare class LiveboardEmbed extends V1Embed {
14919
15600
  protected viewConfig: LiveboardViewConfig;
14920
- private defaultHeight;
14921
- private lazyLoadScrollContainers;
14922
- private lazyLoadResizeObserver;
15601
+ private readonly fullHeightController?;
14923
15602
  constructor(domSelector: DOMSelector, viewConfig: LiveboardViewConfig);
14924
15603
  protected getAppInitData(): Promise<LiveboardEmbedAppInitData>;
14925
15604
  /**
@@ -14929,27 +15608,11 @@ export declare class LiveboardEmbed extends V1Embed {
14929
15608
  protected getEmbedParams(): string;
14930
15609
  protected getEmbedParamsObject(): any;
14931
15610
  private getIframeSuffixSrc;
14932
- private sendFullHeightLazyLoadData;
14933
- /**
14934
- * This is a handler for the RequestVisibleEmbedCoordinates event.
14935
- * It is used to send the visible coordinates data to the host application.
14936
- * @param data The event payload
14937
- * @param responder The responder function
14938
- */
14939
- private requestVisibleEmbedCoordinatesHandler;
14940
15611
  /**
14941
15612
  * Construct the URL of the embedded ThoughtSpot Liveboard or visualization
14942
15613
  * to be loaded within the iFrame.
14943
15614
  */
14944
15615
  private getIFrameSrc;
14945
- /**
14946
- * Set the iframe height as per the computed height received
14947
- * from the ThoughtSpot app.
14948
- * @param data The event payload
14949
- */
14950
- private updateIFrameHeight;
14951
- private embedIframeCenter;
14952
- private setIframeHeightForNonEmbedLiveboard;
14953
15616
  private setActiveTab;
14954
15617
  private showPreviewLoader;
14955
15618
  /**
@@ -14964,22 +15627,23 @@ export declare class LiveboardEmbed extends V1Embed {
14964
15627
  personalizedViewId: string;
14965
15628
  };
14966
15629
  protected beforePrerenderVisible(): void;
15630
+ private isShowingLiveboardRoute;
14967
15631
  protected handleRenderForPrerender(): Promise<TsEmbed>;
14968
15632
  /**
14969
15633
  * Triggers an event to the embedded app
15634
+ * Payload typing follows {@link TsEmbed.trigger}: unknown fields fail to compile
15635
+ * from SDK 1.52.0; strict contract checks land in SDK 1.54.0.
14970
15636
  * @param {HostEvent} messageType The event type
14971
- * @param {any} data The payload to send with the message
15637
+ * @param {TriggerData} data The payload, typed against the event's contract
14972
15638
  * @returns A promise that resolves with the response from the embedded app
14973
15639
  */
14974
- trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
15640
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerData<HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14975
15641
  /**
14976
15642
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
14977
15643
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
14978
15644
  */
14979
15645
  destroy(): void;
14980
15646
  private postRender;
14981
- private registerLazyLoadEvents;
14982
- private unregisterLazyLoadEvents;
14983
15647
  /**
14984
15648
  * Render an embedded ThoughtSpot Liveboard or visualization
14985
15649
  * @param renderOptions An object specifying the Liveboard ID,
@@ -15150,6 +15814,20 @@ export interface SearchViewConfig extends SearchLiveboardCommonViewConfig, Omit<
15150
15814
  * ```
15151
15815
  */
15152
15816
  dataSource?: string;
15817
+ /**
15818
+ * If set to `true`, the answer edit panel is hidden.
15819
+ *
15820
+ * Supported embed types: `SearchEmbed`
15821
+ * @version SDK: 1.54.0 | ThoughtSpot Cloud: 26.11.0.cl
15822
+ * @example
15823
+ * ```js
15824
+ * const embed = new SearchEmbed('#tsEmbed', {
15825
+ * ... // other embed view config
15826
+ * hideAnswerEditPanel: true,
15827
+ * })
15828
+ * ```
15829
+ */
15830
+ hideAnswerEditPanel?: boolean;
15153
15831
  /**
15154
15832
  * The initial search query to load the answer with.
15155
15833
  * Use {@link searchOptions} instead.