@thoughtspot/visual-embed-sdk 1.46.5-beta.1 → 1.47.0

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 (242) hide show
  1. package/cjs/package.json +4 -4
  2. package/cjs/src/css-variables.d.ts +36 -0
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +41 -17
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +26 -47
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +36 -79
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/conversation.d.ts +24 -2
  11. package/cjs/src/embed/conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/conversation.js +18 -33
  13. package/cjs/src/embed/conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.spec.js +129 -97
  15. package/cjs/src/embed/conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/hostEventClient/contracts.d.ts +31 -0
  17. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  18. package/cjs/src/embed/hostEventClient/contracts.js +2 -0
  19. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  20. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +18 -0
  21. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  22. package/cjs/src/embed/hostEventClient/host-event-client.js +69 -9
  23. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  24. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +185 -19
  25. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/utils.d.ts +22 -0
  27. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -0
  28. package/cjs/src/embed/hostEventClient/utils.js +57 -0
  29. package/cjs/src/embed/hostEventClient/utils.js.map +1 -0
  30. package/cjs/src/embed/hostEventClient/utils.spec.d.ts +2 -0
  31. package/cjs/src/embed/hostEventClient/utils.spec.d.ts.map +1 -0
  32. package/cjs/src/embed/hostEventClient/utils.spec.js +190 -0
  33. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -0
  34. package/cjs/src/embed/liveboard.d.ts +18 -1
  35. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  36. package/cjs/src/embed/liveboard.js +9 -11
  37. package/cjs/src/embed/liveboard.js.map +1 -1
  38. package/cjs/src/embed/liveboard.spec.js +29 -71
  39. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  40. package/cjs/src/embed/spotter-utils.d.ts +20 -0
  41. package/cjs/src/embed/spotter-utils.d.ts.map +1 -0
  42. package/cjs/src/embed/spotter-utils.js +52 -0
  43. package/cjs/src/embed/spotter-utils.js.map +1 -0
  44. package/cjs/src/embed/spotter-utils.spec.d.ts +2 -0
  45. package/cjs/src/embed/spotter-utils.spec.d.ts.map +1 -0
  46. package/cjs/src/embed/spotter-utils.spec.js +54 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -0
  48. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  49. package/cjs/src/embed/ts-embed.js +25 -5
  50. package/cjs/src/embed/ts-embed.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  52. package/cjs/src/embed/ts-embed.spec.js +28 -67
  53. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  54. package/cjs/src/errors.d.ts +2 -1
  55. package/cjs/src/errors.d.ts.map +1 -1
  56. package/cjs/src/errors.js +2 -1
  57. package/cjs/src/errors.js.map +1 -1
  58. package/cjs/src/index.d.ts +1 -2
  59. package/cjs/src/index.d.ts.map +1 -1
  60. package/cjs/src/index.js +2 -4
  61. package/cjs/src/index.js.map +1 -1
  62. package/cjs/src/react/all-types-export.d.ts +2 -2
  63. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  64. package/cjs/src/react/all-types-export.js +1 -3
  65. package/cjs/src/react/all-types-export.js.map +1 -1
  66. package/cjs/src/react/index.d.ts +1 -36
  67. package/cjs/src/react/index.d.ts.map +1 -1
  68. package/cjs/src/react/index.js +1 -34
  69. package/cjs/src/react/index.js.map +1 -1
  70. package/cjs/src/types.d.ts +143 -76
  71. package/cjs/src/types.d.ts.map +1 -1
  72. package/cjs/src/types.js +118 -47
  73. package/cjs/src/types.js.map +1 -1
  74. package/cjs/src/utils.d.ts +0 -9
  75. package/cjs/src/utils.d.ts.map +1 -1
  76. package/cjs/src/utils.js +1 -10
  77. package/cjs/src/utils.js.map +1 -1
  78. package/dist/{index-DW2wEHqy.js → index-Bm2Hck8q.js} +1 -1
  79. package/dist/src/css-variables.d.ts +36 -0
  80. package/dist/src/css-variables.d.ts.map +1 -1
  81. package/dist/src/embed/app.d.ts +41 -17
  82. package/dist/src/embed/app.d.ts.map +1 -1
  83. package/dist/src/embed/conversation.d.ts +24 -2
  84. package/dist/src/embed/conversation.d.ts.map +1 -1
  85. package/dist/src/embed/hostEventClient/contracts.d.ts +31 -0
  86. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  87. package/dist/src/embed/hostEventClient/host-event-client.d.ts +18 -0
  88. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  89. package/dist/src/embed/hostEventClient/utils.d.ts +22 -0
  90. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -0
  91. package/dist/src/embed/hostEventClient/utils.spec.d.ts +2 -0
  92. package/dist/src/embed/hostEventClient/utils.spec.d.ts.map +1 -0
  93. package/dist/src/embed/liveboard.d.ts +18 -1
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +20 -0
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -0
  97. package/dist/src/embed/spotter-utils.spec.d.ts +2 -0
  98. package/dist/src/embed/spotter-utils.spec.d.ts.map +1 -0
  99. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  100. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  101. package/dist/src/errors.d.ts +2 -1
  102. package/dist/src/errors.d.ts.map +1 -1
  103. package/dist/src/index.d.ts +1 -2
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/react/all-types-export.d.ts +2 -2
  106. package/dist/src/react/all-types-export.d.ts.map +1 -1
  107. package/dist/src/react/index.d.ts +1 -36
  108. package/dist/src/react/index.d.ts.map +1 -1
  109. package/dist/src/types.d.ts +143 -76
  110. package/dist/src/types.d.ts.map +1 -1
  111. package/dist/src/utils.d.ts +0 -9
  112. package/dist/src/utils.d.ts.map +1 -1
  113. package/dist/tsembed-react.es.js +378 -304
  114. package/dist/tsembed-react.js +366 -294
  115. package/dist/tsembed.es.js +393 -285
  116. package/dist/tsembed.js +30798 -30691
  117. package/dist/visual-embed-sdk-react-full.d.ts +310 -273
  118. package/dist/visual-embed-sdk-react.d.ts +310 -273
  119. package/dist/visual-embed-sdk.d.ts +308 -243
  120. package/lib/package.json +4 -4
  121. package/lib/src/css-variables.d.ts +36 -0
  122. package/lib/src/css-variables.d.ts.map +1 -1
  123. package/lib/src/embed/app.d.ts +41 -17
  124. package/lib/src/embed/app.d.ts.map +1 -1
  125. package/lib/src/embed/app.js +28 -49
  126. package/lib/src/embed/app.js.map +1 -1
  127. package/lib/src/embed/app.spec.js +36 -79
  128. package/lib/src/embed/app.spec.js.map +1 -1
  129. package/lib/src/embed/conversation.d.ts +24 -2
  130. package/lib/src/embed/conversation.d.ts.map +1 -1
  131. package/lib/src/embed/conversation.js +19 -34
  132. package/lib/src/embed/conversation.js.map +1 -1
  133. package/lib/src/embed/conversation.spec.js +131 -99
  134. package/lib/src/embed/conversation.spec.js.map +1 -1
  135. package/lib/src/embed/hostEventClient/contracts.d.ts +31 -0
  136. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  137. package/lib/src/embed/hostEventClient/contracts.js +2 -0
  138. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  139. package/lib/src/embed/hostEventClient/host-event-client.d.ts +18 -0
  140. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  141. package/lib/src/embed/hostEventClient/host-event-client.js +69 -9
  142. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  143. package/lib/src/embed/hostEventClient/host-event-client.spec.js +185 -19
  144. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  145. package/lib/src/embed/hostEventClient/utils.d.ts +22 -0
  146. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -0
  147. package/lib/src/embed/hostEventClient/utils.js +49 -0
  148. package/lib/src/embed/hostEventClient/utils.js.map +1 -0
  149. package/lib/src/embed/hostEventClient/utils.spec.d.ts +2 -0
  150. package/lib/src/embed/hostEventClient/utils.spec.d.ts.map +1 -0
  151. package/lib/src/embed/hostEventClient/utils.spec.js +188 -0
  152. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -0
  153. package/lib/src/embed/liveboard.d.ts +18 -1
  154. package/lib/src/embed/liveboard.d.ts.map +1 -1
  155. package/lib/src/embed/liveboard.js +9 -11
  156. package/lib/src/embed/liveboard.js.map +1 -1
  157. package/lib/src/embed/liveboard.spec.js +29 -71
  158. package/lib/src/embed/liveboard.spec.js.map +1 -1
  159. package/lib/src/embed/spotter-utils.d.ts +20 -0
  160. package/lib/src/embed/spotter-utils.d.ts.map +1 -0
  161. package/lib/src/embed/spotter-utils.js +47 -0
  162. package/lib/src/embed/spotter-utils.js.map +1 -0
  163. package/lib/src/embed/spotter-utils.spec.d.ts +2 -0
  164. package/lib/src/embed/spotter-utils.spec.d.ts.map +1 -0
  165. package/lib/src/embed/spotter-utils.spec.js +52 -0
  166. package/lib/src/embed/spotter-utils.spec.js.map +1 -0
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +25 -5
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  171. package/lib/src/embed/ts-embed.spec.js +30 -69
  172. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  173. package/lib/src/errors.d.ts +2 -1
  174. package/lib/src/errors.d.ts.map +1 -1
  175. package/lib/src/errors.js +2 -1
  176. package/lib/src/errors.js.map +1 -1
  177. package/lib/src/index.d.ts +1 -2
  178. package/lib/src/index.d.ts.map +1 -1
  179. package/lib/src/index.js +1 -2
  180. package/lib/src/index.js.map +1 -1
  181. package/lib/src/react/all-types-export.d.ts +2 -2
  182. package/lib/src/react/all-types-export.d.ts.map +1 -1
  183. package/lib/src/react/all-types-export.js +1 -1
  184. package/lib/src/react/all-types-export.js.map +1 -1
  185. package/lib/src/react/index.d.ts +1 -36
  186. package/lib/src/react/index.d.ts.map +1 -1
  187. package/lib/src/react/index.js +0 -33
  188. package/lib/src/react/index.js.map +1 -1
  189. package/lib/src/types.d.ts +143 -76
  190. package/lib/src/types.d.ts.map +1 -1
  191. package/lib/src/types.js +118 -47
  192. package/lib/src/types.js.map +1 -1
  193. package/lib/src/utils.d.ts +0 -9
  194. package/lib/src/utils.d.ts.map +1 -1
  195. package/lib/src/utils.js +0 -8
  196. package/lib/src/utils.js.map +1 -1
  197. package/lib/src/visual-embed-sdk.d.ts +308 -243
  198. package/package.json +4 -4
  199. package/src/css-variables.ts +45 -0
  200. package/src/embed/app.spec.ts +51 -107
  201. package/src/embed/app.ts +60 -82
  202. package/src/embed/conversation.spec.ts +150 -119
  203. package/src/embed/conversation.ts +34 -58
  204. package/src/embed/hostEventClient/contracts.ts +31 -0
  205. package/src/embed/hostEventClient/host-event-client.spec.ts +260 -19
  206. package/src/embed/hostEventClient/host-event-client.ts +87 -11
  207. package/src/embed/hostEventClient/utils.spec.ts +225 -0
  208. package/src/embed/hostEventClient/utils.ts +74 -0
  209. package/src/embed/liveboard.spec.ts +38 -93
  210. package/src/embed/liveboard.ts +28 -10
  211. package/src/embed/spotter-utils.spec.ts +56 -0
  212. package/src/embed/spotter-utils.ts +65 -0
  213. package/src/embed/ts-embed.spec.ts +56 -108
  214. package/src/embed/ts-embed.ts +25 -4
  215. package/src/errors.ts +2 -1
  216. package/src/index.ts +2 -5
  217. package/src/react/all-types-export.ts +0 -3
  218. package/src/react/index.tsx +15 -59
  219. package/src/types.ts +206 -138
  220. package/src/utils.ts +0 -14
  221. package/cjs/src/embed/sage.d.ts +0 -164
  222. package/cjs/src/embed/sage.d.ts.map +0 -1
  223. package/cjs/src/embed/sage.js +0 -88
  224. package/cjs/src/embed/sage.js.map +0 -1
  225. package/cjs/src/embed/sage.spec.d.ts +0 -2
  226. package/cjs/src/embed/sage.spec.d.ts.map +0 -1
  227. package/cjs/src/embed/sage.spec.js +0 -151
  228. package/cjs/src/embed/sage.spec.js.map +0 -1
  229. package/dist/src/embed/sage.d.ts +0 -164
  230. package/dist/src/embed/sage.d.ts.map +0 -1
  231. package/dist/src/embed/sage.spec.d.ts +0 -2
  232. package/dist/src/embed/sage.spec.d.ts.map +0 -1
  233. package/lib/src/embed/sage.d.ts +0 -164
  234. package/lib/src/embed/sage.d.ts.map +0 -1
  235. package/lib/src/embed/sage.js +0 -84
  236. package/lib/src/embed/sage.js.map +0 -1
  237. package/lib/src/embed/sage.spec.d.ts +0 -2
  238. package/lib/src/embed/sage.spec.d.ts.map +0 -1
  239. package/lib/src/embed/sage.spec.js +0 -148
  240. package/lib/src/embed/sage.spec.js.map +0 -1
  241. package/src/embed/sage.spec.ts +0 -206
  242. package/src/embed/sage.ts +0 -231
@@ -1,18 +1,18 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.46.5-beta.1 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.47.0 */
2
2
  'use client';
3
3
  function _mergeNamespaces(n, m) {
4
- m.forEach(function (e) {
5
- e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
6
- if (k !== 'default' && !(k in n)) {
7
- var d = Object.getOwnPropertyDescriptor(e, k);
8
- Object.defineProperty(n, k, d.get ? d : {
9
- enumerable: true,
10
- get: function () { return e[k]; }
11
- });
12
- }
13
- });
14
- });
15
- return Object.freeze(n);
4
+ m.forEach(function (e) {
5
+ e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
6
+ if (k !== 'default' && !(k in n)) {
7
+ var d = Object.getOwnPropertyDescriptor(e, k);
8
+ Object.defineProperty(n, k, d.get ? d : {
9
+ enumerable: true,
10
+ get: function () { return e[k]; }
11
+ });
12
+ }
13
+ });
14
+ });
15
+ return Object.freeze(n);
16
16
  }
17
17
 
18
18
  /**
@@ -893,6 +893,17 @@ var EmbedEvent;
893
893
  * ```
894
894
  */
895
895
  EmbedEvent["DownloadAsXlsx"] = "downloadAsXlsx";
896
+ /**
897
+ * Emitted when the Download Liveboard as Continuous PDF action is triggered
898
+ * on a Liveboard.
899
+ * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
900
+ * @example
901
+ * ```js
902
+ * liveboardEmbed.on(EmbedEvent.DownloadLiveboardAsContinuousPDF, payload => {
903
+ * console.log('download liveboard as continuous PDF', payload)})
904
+ * ```
905
+ */
906
+ EmbedEvent["DownloadLiveboardAsContinuousPDF"] = "downloadLiveboardAsContinuousPDF";
896
907
  /**
897
908
  * Emitted when an Answer is deleted in the app
898
909
  * Use start:true to subscribe to when delete is initiated, or end:true to subscribe
@@ -1270,19 +1281,6 @@ var EmbedEvent;
1270
1281
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
1271
1282
  */
1272
1283
  EmbedEvent["FilterChanged"] = "filterChanged";
1273
- /**
1274
- * Emitted when a user clicks the **Go** button to initiate
1275
- * a Natural Language Search query
1276
- * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
1277
- */
1278
- EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
1279
- /**
1280
- * Emitted when a user selects a data source on the embedded
1281
- * Natural Language Search interface.
1282
- *
1283
- * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
1284
- */
1285
- EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
1286
1284
  /**
1287
1285
  * Emitted when a user updates a connection on the **Data** page
1288
1286
  * @version SDK: 1.27.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
@@ -2421,6 +2419,18 @@ var HostEvent;
2421
2419
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2422
2420
  */
2423
2421
  HostEvent["DownloadAsPdf"] = "downloadAsPdf";
2422
+ /**
2423
+ * Trigger the **Download Liveboard as Continuous PDF** action on an
2424
+ * embedded Liveboard.
2425
+ *
2426
+ * @example
2427
+ * ```js
2428
+ * liveboardEmbed.trigger(HostEvent.DownloadLiveboardAsContinuousPDF)
2429
+ * ```
2430
+ *
2431
+ * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
2432
+ */
2433
+ HostEvent["DownloadLiveboardAsContinuousPDF"] = "downloadLiveboardAsContinuousPDF";
2424
2434
  /**
2425
2435
  * Trigger the **AI Highlights** action on an embedded Liveboard
2426
2436
  *
@@ -2647,6 +2657,20 @@ var HostEvent;
2647
2657
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'
2648
2658
  * }, ContextType.Liveboard);
2649
2659
  * ```
2660
+ * @example
2661
+ * ```js
2662
+ * // Copy link from liveboard context
2663
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2664
+ * liveboardEmbed.trigger(HostEvent.CopyLink, {}, ContextType.Liveboard);
2665
+ * ```
2666
+ * @example
2667
+ * ```js
2668
+ * // Copy link from liveboard visualization context
2669
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2670
+ * liveboardEmbed.trigger(HostEvent.CopyLink, {
2671
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
2672
+ * }, ContextType.Liveboard);
2673
+ * ```
2650
2674
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2651
2675
  */
2652
2676
  HostEvent["CopyLink"] = "embedDocument";
@@ -2678,6 +2702,20 @@ var HostEvent;
2678
2702
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2679
2703
  * liveboardEmbed.trigger(HostEvent.Present, {}, ContextType.Liveboard);
2680
2704
  * ```
2705
+ * @example
2706
+ * ```js
2707
+ * // Present from liveboard visualization context
2708
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2709
+ * liveboardEmbed.trigger(HostEvent.Present, {
2710
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
2711
+ * }, ContextType.Liveboard);
2712
+ * ```
2713
+ * @example
2714
+ * ```js
2715
+ * // Present from liveboard context
2716
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2717
+ * liveboardEmbed.trigger(HostEvent.Present, {}, ContextType.Liveboard);
2718
+ * ```
2681
2719
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2682
2720
  */
2683
2721
  HostEvent["Present"] = "present";
@@ -2706,7 +2744,7 @@ var HostEvent;
2706
2744
  * tml.answer.search_query // TML representation of the search query
2707
2745
  * );
2708
2746
  * })
2709
- * ```
2747
+ * ```
2710
2748
  * @example
2711
2749
  * ```js
2712
2750
  * // Get TML from search context
@@ -3330,21 +3368,6 @@ var HostEvent;
3330
3368
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
3331
3369
  */
3332
3370
  HostEvent["SetHiddenTabs"] = "SetPinboardHiddenTabs";
3333
- /**
3334
- * Updates the search query string for Natural Language Search operations.
3335
- * @param - Includes the following keys:
3336
- * - `queryString`: Text string in Natural Language format.
3337
- * - `executeSearch`: Boolean to execute search and update search query.
3338
- * @example
3339
- * ```js
3340
- * sageEmbed.trigger(HostEvent.UpdateSageQuery, {
3341
- * queryString: 'revenue per year',
3342
- * executeSearch: true,
3343
- * })
3344
- * ```
3345
- * @version SDK: 1.26.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
3346
- */
3347
- HostEvent["UpdateSageQuery"] = "updateSageQuery";
3348
3371
  /**
3349
3372
  * Get the Answer session for a Search or
3350
3373
  * Liveboard visualization.
@@ -3910,7 +3933,6 @@ var Param;
3910
3933
  Param["HideNotification"] = "hideNotification";
3911
3934
  Param["HideApplicationSwitcher"] = "applicationSwitcherHidden";
3912
3935
  Param["HideOrgSwitcher"] = "orgSwitcherHidden";
3913
- Param["IsSageEmbed"] = "isSageEmbed";
3914
3936
  Param["HideWorksheetSelector"] = "hideWorksheetSelector";
3915
3937
  Param["DisableWorksheetChange"] = "disableWorksheetChange";
3916
3938
  Param["HideSourceSelection"] = "hideSourceSelection";
@@ -3961,7 +3983,6 @@ var Param;
3961
3983
  Param["HideIrrelevantFiltersInTab"] = "hideIrrelevantFiltersAtTabLevel";
3962
3984
  Param["IsEnhancedFilterInteractivityEnabled"] = "isLiveboardPermissionV2Enabled";
3963
3985
  Param["SpotterEnabled"] = "isSpotterExperienceEnabled";
3964
- Param["IsUnifiedSearchExperienceEnabled"] = "isUnifiedSearchExperienceEnabled";
3965
3986
  Param["OverrideOrgId"] = "orgId";
3966
3987
  Param["OauthPollingInterval"] = "oAuthPollingInterval";
3967
3988
  Param["IsForceRedirect"] = "isForceRedirect";
@@ -3975,6 +3996,7 @@ var Param;
3975
3996
  Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
3976
3997
  Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
3977
3998
  Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
3999
+ Param["IsWYSIWYGLiveboardPDFEnabled"] = "isWYSIWYGLiveboardPDFEnabled";
3978
4000
  Param["isLiveboardXLSXCSVDownloadEnabled"] = "isLiveboardXLSXCSVDownloadEnabled";
3979
4001
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
3980
4002
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
@@ -4319,6 +4341,16 @@ var Action;
4319
4341
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4320
4342
  */
4321
4343
  Action["DownloadLiveboard"] = "downloadLiveboard";
4344
+ /**
4345
+ * The **Download Liveboard as Continuous PDF** menu action on a Liveboard.
4346
+ * Allows downloading the entire Liveboard as a continuous PDF.
4347
+ * @example
4348
+ * ```js
4349
+ * disabledActions: [Action.DownloadLiveboardAsContinuousPDF]
4350
+ * ```
4351
+ * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
4352
+ */
4353
+ Action["DownloadLiveboardAsContinuousPDF"] = "downloadLiveboardAsContinuousPDF";
4322
4354
  /**
4323
4355
  * @hidden
4324
4356
  */
@@ -5277,11 +5309,11 @@ var Action;
5277
5309
  */
5278
5310
  Action["CoverAndFilterOptionInPDF"] = "coverAndFilterOptionInPDF";
5279
5311
  /**
5280
- * Action ID to hide or disable the Coaching workflow in Spotter conversations.
5281
- * When disabled, users cannot access **Add to Coaching** workflow in conversation.
5282
- * The **Add to Coaching** feature allows adding reference questions and
5283
- * business terms to improve Spotter’s responses. This feature is generally available
5284
- * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
5312
+ * Action ID to hide or disable the Coaching workflow in Spotter conversations.
5313
+ * When disabled, users cannot access **Add to Coaching** workflow in conversation.
5314
+ * The **Add to Coaching** feature allows adding reference questions and
5315
+ * business terms to improve Spotter’s responses. This feature is generally available
5316
+ * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
5285
5317
  * @example
5286
5318
  * ```js
5287
5319
  * hiddenAction: [Action.InConversationTraining]
@@ -5358,17 +5390,17 @@ var Action;
5358
5390
  */
5359
5391
  Action["LiveboardStylePanel"] = "liveboardStylePanel";
5360
5392
  /**
5361
- * The **Publish** action for Liveboards, Answers and Models.
5362
- * Opens the publishing modal. It's a parent action for the
5363
- * **Manage Publishing** and **Unpublish** actions if the object
5364
- * is already published, otherwise appears standalone.
5365
- * @example
5366
- * ```js
5367
- * hiddenActions: [Action.Publish]
5368
- * disabledActions: [Action.Publish]
5369
- * ```
5370
- * @version SDK: 1.45.0 | ThoughtSpot Cloud: 26.2.0.cl
5371
- */
5393
+ * The **Publish** action for Liveboards, Answers and Models.
5394
+ * Opens the publishing modal. It's a parent action for the
5395
+ * **Manage Publishing** and **Unpublish** actions if the object
5396
+ * is already published, otherwise appears standalone.
5397
+ * @example
5398
+ * ```js
5399
+ * hiddenActions: [Action.Publish]
5400
+ * disabledActions: [Action.Publish]
5401
+ * ```
5402
+ * @version SDK: 1.45.0 | ThoughtSpot Cloud: 26.2.0.cl
5403
+ */
5372
5404
  Action["Publish"] = "publish";
5373
5405
  /**
5374
5406
  * The **Manage Publishing** action for Liveboards, Answers and Models.
@@ -5536,6 +5568,39 @@ var Action;
5536
5568
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
5537
5569
  */
5538
5570
  Action["SpotterDocs"] = "spotterDocs";
5571
+ /**
5572
+ * Controls visibility and disable state of the connector resources
5573
+ * section in the Spotter chat interface.
5574
+ * @example
5575
+ * ```js
5576
+ * hiddenActions: [Action.SpotterChatConnectorResources]
5577
+ * disabledActions: [Action.SpotterChatConnectorResources]
5578
+ * ```
5579
+ * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
5580
+ */
5581
+ Action["SpotterChatConnectorResources"] = "spotterChatConnectorResources";
5582
+ /**
5583
+ * Controls visibility and disable state of the connectors
5584
+ * in the Spotter chat interface.
5585
+ * @example
5586
+ * ```js
5587
+ * hiddenActions: [Action.SpotterChatConnectors]
5588
+ * disabledActions: [Action.SpotterChatConnectors]
5589
+ * ```
5590
+ * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
5591
+ */
5592
+ Action["SpotterChatConnectors"] = "spotterChatConnectors";
5593
+ /**
5594
+ * Controls visibility and disable state of the mode switcher
5595
+ * in the Spotter chat interface.
5596
+ * @example
5597
+ * ```js
5598
+ * hiddenActions: [Action.SpotterChatModeSwitcher]
5599
+ * disabledActions: [Action.SpotterChatModeSwitcher]
5600
+ * ```
5601
+ * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
5602
+ */
5603
+ Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
5539
5604
  /**
5540
5605
  * The **Include current period** checkbox for date filters.
5541
5606
  * Controls the visibility and availability of the option to include
@@ -5829,6 +5894,12 @@ var EmbedErrorCodes;
5829
5894
  EmbedErrorCodes["UPDATE_PARAMS_FAILED"] = "UPDATE_PARAMS_FAILED";
5830
5895
  /** Invalid URL provided in configuration */
5831
5896
  EmbedErrorCodes["INVALID_URL"] = "INVALID_URL";
5897
+ /** Host event payload validation failed */
5898
+ EmbedErrorCodes["HOST_EVENT_VALIDATION"] = "HOST_EVENT_VALIDATION";
5899
+ /** UpdateFilters payload is invalid - missing or malformed filter/filters */
5900
+ EmbedErrorCodes["UPDATEFILTERS_INVALID_PAYLOAD"] = "UPDATEFILTERS_INVALID_PAYLOAD";
5901
+ /** DrillDown payload is invalid - missing or malformed points */
5902
+ EmbedErrorCodes["DRILLDOWN_INVALID_PAYLOAD"] = "DRILLDOWN_INVALID_PAYLOAD";
5832
5903
  })(EmbedErrorCodes || (EmbedErrorCodes = {}));
5833
5904
  /**
5834
5905
  * Context types for specifying the page context when triggering host events.
@@ -6017,7 +6088,6 @@ const ERROR_MESSAGE = {
6017
6088
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6018
6089
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6019
6090
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
6020
- SAGE_EMBED_BETA_WARNING_MESSAGE: 'SageEmbed is in Beta in this release.',
6021
6091
  THIRD_PARTY_COOKIE_BLOCKED_ALERT: 'Third-party cookie access is blocked on this browser. Please allow third-party cookies for this to work properly. \nYou can use `suppressNoCookieAccessAlert` to suppress this message.',
6022
6092
  DUPLICATE_TOKEN_ERR: 'Duplicate token. Please issue a new token every time getAuthToken callback is called. See https://developers.thoughtspot.com/docs/?pageid=embed-auth#trusted-auth-embed for more details.',
6023
6093
  SDK_NOT_INITIALIZED: 'SDK not initialized',
@@ -6031,7 +6101,6 @@ const ERROR_MESSAGE = {
6031
6101
  CSP_FRAME_HOST_VIOLATION_LOG_MESSAGE: 'Please set up CSP correctly for the application to start working. For more information, see https://developers.thoughtspot.com/docs/security-settings#csp-viz-embed-hosts. \n If the issue persists, refer to https://developers.thoughtspot.com/docs/security-settings#csp-viz-embed-hosts',
6032
6102
  MISSING_REPORTING_OBSERVER: 'ReportingObserver not supported',
6033
6103
  RENDER_CALLED_BEFORE_INIT: 'Looks like render was called before calling init, the render won\'t start until init is called.\nFor more info check\n1. https://developers.thoughtspot.com/docs/Function_init#_init\n2.https://developers.thoughtspot.com/docs/getting-started#initSdk',
6034
- SPOTTER_AGENT_NOT_INITIALIZED: 'SpotterAgent not initialized',
6035
6104
  OFFLINE_WARNING: 'Network not Detected. Embed is offline. Please reconnect and refresh',
6036
6105
  INIT_SDK_REQUIRED: 'You need to init the ThoughtSpot SDK module first',
6037
6106
  CONFLICTING_ACTIONS_CONFIG: 'You cannot have both hidden actions and visible actions',
@@ -6043,6 +6112,8 @@ const ERROR_MESSAGE = {
6043
6112
  SSR_ENVIRONMENT_ERROR: 'SSR environment detected. This function cannot be called in SSR environment.',
6044
6113
  UPDATE_PARAMS_FAILED: 'Failed to update embed parameters',
6045
6114
  INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
6115
+ UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { column, oper, values } } or { filters: [{ column, oper, values }, ...] }',
6116
+ DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
6046
6117
  };
6047
6118
  const CUSTOM_ACTIONS_ERROR_MESSAGE = {
6048
6119
  INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
@@ -6546,14 +6617,6 @@ const validateHttpUrl = (url) => {
6546
6617
  return [false, error instanceof Error ? error : new Error(String(error))];
6547
6618
  }
6548
6619
  };
6549
- /**
6550
- * Resolves enablePastConversationsSidebar with
6551
- * spotterSidebarConfig taking precedence over the
6552
- * standalone flag.
6553
- */
6554
- const resolveEnablePastConversationsSidebar = (params) => (params.spotterSidebarConfigValue !== undefined
6555
- ? params.spotterSidebarConfigValue
6556
- : params.standaloneValue);
6557
6620
  /**
6558
6621
  * Sets a query parameter if the value is defined.
6559
6622
  * @param queryParams - The query params object to modify
@@ -6843,9 +6906,9 @@ var root = _freeGlobal || freeSelf || Function('return this')();
6843
6906
  var _root = root;
6844
6907
 
6845
6908
  /** Built-in value references. */
6846
- var Symbol = _root.Symbol;
6909
+ var Symbol$1 = _root.Symbol;
6847
6910
 
6848
- var _Symbol = Symbol;
6911
+ var _Symbol = Symbol$1;
6849
6912
 
6850
6913
  /** Used for built-in method references. */
6851
6914
  var objectProto$c = Object.prototype;
@@ -6916,7 +6979,7 @@ function objectToString(value) {
6916
6979
  var _objectToString = objectToString;
6917
6980
 
6918
6981
  /** `Object#toString` result references. */
6919
- var nullTag = '[object Null]',
6982
+ var nullTag$1 = '[object Null]',
6920
6983
  undefinedTag = '[object Undefined]';
6921
6984
 
6922
6985
  /** Built-in value references. */
@@ -6931,7 +6994,7 @@ var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
6931
6994
  */
6932
6995
  function baseGetTag(value) {
6933
6996
  if (value == null) {
6934
- return value === undefined ? undefinedTag : nullTag;
6997
+ return value === undefined ? undefinedTag : nullTag$1;
6935
6998
  }
6936
6999
  return (symToStringTag && symToStringTag in Object(value))
6937
7000
  ? _getRawTag(value)
@@ -7649,9 +7712,9 @@ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
7649
7712
  var _equalArrays = equalArrays;
7650
7713
 
7651
7714
  /** Built-in value references. */
7652
- var Uint8Array = _root.Uint8Array;
7715
+ var Uint8Array$1 = _root.Uint8Array;
7653
7716
 
7654
- var _Uint8Array = Uint8Array;
7717
+ var _Uint8Array = Uint8Array$1;
7655
7718
 
7656
7719
  /**
7657
7720
  * Converts `map` to its key-value pairs.
@@ -7696,7 +7759,7 @@ var COMPARE_PARTIAL_FLAG$4 = 1,
7696
7759
  COMPARE_UNORDERED_FLAG$2 = 2;
7697
7760
 
7698
7761
  /** `Object#toString` result references. */
7699
- var boolTag$1 = '[object Boolean]',
7762
+ var boolTag$2 = '[object Boolean]',
7700
7763
  dateTag$1 = '[object Date]',
7701
7764
  errorTag$1 = '[object Error]',
7702
7765
  mapTag$3 = '[object Map]',
@@ -7747,7 +7810,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
7747
7810
  }
7748
7811
  return true;
7749
7812
 
7750
- case boolTag$1:
7813
+ case boolTag$2:
7751
7814
  case dateTag$1:
7752
7815
  case numberTag$1:
7753
7816
  // Coerce booleans to `1` or `0` and dates to milliseconds.
@@ -8061,9 +8124,9 @@ function stubFalse() {
8061
8124
 
8062
8125
  var stubFalse_1 = stubFalse;
8063
8126
 
8064
- var isBuffer_1 = createCommonjsModule(function (module, exports) {
8127
+ var isBuffer_1 = createCommonjsModule(function (module, exports$1) {
8065
8128
  /** Detect free variable `exports`. */
8066
- var freeExports = exports && !exports.nodeType && exports;
8129
+ var freeExports = exports$1 && !exports$1.nodeType && exports$1;
8067
8130
 
8068
8131
  /** Detect free variable `module`. */
8069
8132
  var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;
@@ -8164,7 +8227,7 @@ var isLength_1 = isLength;
8164
8227
  /** `Object#toString` result references. */
8165
8228
  var argsTag$1 = '[object Arguments]',
8166
8229
  arrayTag$1 = '[object Array]',
8167
- boolTag = '[object Boolean]',
8230
+ boolTag$1 = '[object Boolean]',
8168
8231
  dateTag = '[object Date]',
8169
8232
  errorTag = '[object Error]',
8170
8233
  funcTag = '[object Function]',
@@ -8196,7 +8259,7 @@ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
8196
8259
  typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
8197
8260
  typedArrayTags[uint32Tag] = true;
8198
8261
  typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] =
8199
- typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
8262
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] =
8200
8263
  typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] =
8201
8264
  typedArrayTags[errorTag] = typedArrayTags[funcTag] =
8202
8265
  typedArrayTags[mapTag$2] = typedArrayTags[numberTag] =
@@ -8233,9 +8296,9 @@ function baseUnary(func) {
8233
8296
 
8234
8297
  var _baseUnary = baseUnary;
8235
8298
 
8236
- var _nodeUtil = createCommonjsModule(function (module, exports) {
8299
+ var _nodeUtil = createCommonjsModule(function (module, exports$1) {
8237
8300
  /** Detect free variable `exports`. */
8238
- var freeExports = exports && !exports.nodeType && exports;
8301
+ var freeExports = exports$1 && !exports$1.nodeType && exports$1;
8239
8302
 
8240
8303
  /** Detect free variable `module`. */
8241
8304
  var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;
@@ -8815,7 +8878,7 @@ var hasOwnProperty$1 = objectProto.hasOwnProperty;
8815
8878
  * _.isEmpty({ 'a': 1 });
8816
8879
  * // => false
8817
8880
  */
8818
- function isEmpty(value) {
8881
+ function isEmpty$1(value) {
8819
8882
  if (value == null) {
8820
8883
  return true;
8821
8884
  }
@@ -8839,7 +8902,7 @@ function isEmpty(value) {
8839
8902
  return true;
8840
8903
  }
8841
8904
 
8842
- var isEmpty_1 = isEmpty;
8905
+ var isEmpty_1 = isEmpty$1;
8843
8906
 
8844
8907
  var UIPassthroughEvent;
8845
8908
  (function (UIPassthroughEvent) {
@@ -8850,6 +8913,8 @@ var UIPassthroughEvent;
8850
8913
  UIPassthroughEvent["GetAnswerConfig"] = "getAnswerPageConfig";
8851
8914
  UIPassthroughEvent["GetLiveboardConfig"] = "getPinboardPageConfig";
8852
8915
  UIPassthroughEvent["GetUnsavedAnswerTML"] = "getUnsavedAnswerTML";
8916
+ UIPassthroughEvent["UpdateFilters"] = "updateFilters";
8917
+ UIPassthroughEvent["Drilldown"] = "drillDown";
8853
8918
  UIPassthroughEvent["GetAnswerSession"] = "getAnswerSession";
8854
8919
  UIPassthroughEvent["GetFilters"] = "getFilters";
8855
8920
  UIPassthroughEvent["GetIframeUrl"] = "getIframeUrl";
@@ -9788,7 +9853,7 @@ class AnswerService {
9788
9853
  async getTML() {
9789
9854
  const { object } = await this.executeQuery(getAnswerTML, {});
9790
9855
  const edoc = object[0].edoc;
9791
- const YAML = await import('./index-DW2wEHqy.js');
9856
+ const YAML = await import('./index-Bm2Hck8q.js');
9792
9857
  const parsedDoc = YAML.parse(edoc);
9793
9858
  return {
9794
9859
  answer: {
@@ -10134,9 +10199,6 @@ var stringToPath = _memoizeCapped(function(string) {
10134
10199
 
10135
10200
  var _stringToPath = stringToPath;
10136
10201
 
10137
- /** Used as references for various `Number` constants. */
10138
- var INFINITY$1 = 1 / 0;
10139
-
10140
10202
  /** Used to convert symbols to primitives and strings. */
10141
10203
  var symbolProto = _Symbol ? _Symbol.prototype : undefined,
10142
10204
  symbolToString = symbolProto ? symbolProto.toString : undefined;
@@ -10162,7 +10224,7 @@ function baseToString(value) {
10162
10224
  return symbolToString ? symbolToString.call(value) : '';
10163
10225
  }
10164
10226
  var result = (value + '');
10165
- return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;
10227
+ return (result == '0' && (1 / value) == -Infinity) ? '-0' : result;
10166
10228
  }
10167
10229
 
10168
10230
  var _baseToString = baseToString;
@@ -10211,9 +10273,6 @@ function castPath(value, object) {
10211
10273
 
10212
10274
  var _castPath = castPath;
10213
10275
 
10214
- /** Used as references for various `Number` constants. */
10215
- var INFINITY = 1 / 0;
10216
-
10217
10276
  /**
10218
10277
  * Converts `value` to a string key if it's not a string or symbol.
10219
10278
  *
@@ -10226,7 +10285,7 @@ function toKey(value) {
10226
10285
  return value;
10227
10286
  }
10228
10287
  var result = (value + '');
10229
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
10288
+ return (result == '0' && (1 / value) == -Infinity) ? '-0' : result;
10230
10289
  }
10231
10290
 
10232
10291
  var _toKey = toKey;
@@ -17520,8 +17579,8 @@ var mixpanel = init_as_module();
17520
17579
  var mixpanel_cjs = mixpanel;
17521
17580
 
17522
17581
  var mixpanel$1 = /*#__PURE__*/_mergeNamespaces({
17523
- __proto__: null,
17524
- default: mixpanel_cjs
17582
+ __proto__: null,
17583
+ default: mixpanel_cjs
17525
17584
  }, [mixpanel_cjs]);
17526
17585
 
17527
17586
  // Needed to avoid error in CJS builds on some bundlers.
@@ -19270,10 +19329,66 @@ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
19270
19329
  return eventData;
19271
19330
  }
19272
19331
 
19273
- var name="@thoughtspot/visual-embed-sdk";var version$1="1.46.5-beta.1";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p tsconfig.build.json --incremental false; tsc -p tsconfig.build.json --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle-generator --config ./dts-config/dts-bundle-file.config.js && node dts-config/wrap-ambient-module.mjs","bundle-dts":"dts-bundle-generator --config ./dts-config/dts-bundle.config.js","bundle-dts-react":"dts-bundle-generator --config ./dts-config/dts-bundle-react.config.js","bundle-dts-react-full":"dts-bundle-generator --config ./dts-config/dts-bundle-react-full.config.js",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.build.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | npx coveralls-next || echo 'Warning: Coveralls upload failed but not breaking the build.'","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={classnames:"^2.3.1",eventemitter3:"^4.0.7",lodash:"^4.17.23","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^11.2.0","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^30.0.0","@types/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0",ajv:"^8.17.1",asciidoctor:"^2.2.1","babel-jest":"^30.2.0","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1","coveralls-next":"^5.0.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle-generator":"^9.5.1",eslint:"^9.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-typescript":"^4.2.5","eslint-plugin-comment-length":"2.2.1","eslint-plugin-import":"^2.31.0","eslint-plugin-jsdoc":"^50.6.9","eslint-plugin-prettier":"^5.2.5","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","fs-extra":"^10.0.0","gh-pages":"6.3.0",globals:"^16.0.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^2.0.0",jest:"^30.2.0","jest-environment-jsdom":"^29.7.0","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"4.24.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^29.4.6","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","typescript-eslint":"^8.29.1","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^6.3.5"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version$1,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"32 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
19332
+ var version$1="1.47.0";var pkgInfo = {version:version$1};
19274
19333
 
19275
- /** Host events that use getDataWithPassthroughFallback (getter-style APIs) */
19276
- const HOST_EVENT_PASSTHROUGH_MAP = {
19334
+ function isValidUpdateFiltersPayload(payload) {
19335
+ if (!payload)
19336
+ return false;
19337
+ const isValidFilter = (f) => {
19338
+ const hasColumn = typeof f.column === 'string' || typeof f.columnName === 'string';
19339
+ const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string';
19340
+ const hasValues = Array.isArray(f.values);
19341
+ const validType = !f.type || typeof f.type === 'string';
19342
+ return hasColumn && hasOperator && hasValues && validType;
19343
+ };
19344
+ const hasValidFilter = payload.filter && isValidFilter(payload.filter);
19345
+ const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
19346
+ return !!(hasValidFilter || hasValidFilters);
19347
+ }
19348
+ function isValidDrillDownPayload(payload) {
19349
+ if (!payload)
19350
+ return false;
19351
+ const points = payload.points;
19352
+ if (!points || typeof points !== 'object')
19353
+ return false;
19354
+ const hasClickedPoint = 'clickedPoint' in points && points.clickedPoint != null;
19355
+ const hasSelectedPoints = Array.isArray(points.selectedPoints) && points.selectedPoints.length > 0;
19356
+ return hasClickedPoint || hasSelectedPoints;
19357
+ }
19358
+ function createValidationError(message) {
19359
+ const err = new Error(message);
19360
+ err.isValidationError = true;
19361
+ err.embedErrorDetails = {
19362
+ type: EmbedEvent.Error,
19363
+ data: {
19364
+ errorType: ErrorDetailsTypes.VALIDATION_ERROR,
19365
+ message,
19366
+ code: EmbedErrorCodes.HOST_EVENT_VALIDATION,
19367
+ error: message
19368
+ },
19369
+ status: embedEventStatus.END
19370
+ };
19371
+ throw err;
19372
+ }
19373
+ function throwUpdateFiltersValidationError() {
19374
+ createValidationError(ERROR_MESSAGE.UPDATEFILTERS_INVALID_PAYLOAD);
19375
+ }
19376
+ function throwDrillDownValidationError() {
19377
+ createValidationError(ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD);
19378
+ }
19379
+
19380
+ /**
19381
+ * Maps HostEvent to its corresponding UIPassthroughEvent.
19382
+ * Includes both custom-handler events (Pin, SaveAnswer, UpdateFilters, DrillDown)
19383
+ * and getter events (GetAnswerSession, GetFilters, etc.) that use getDataWithPassthroughFallback.
19384
+ */
19385
+ const PASSTHROUGH_MAP = {
19386
+ // Custom handlers (setters with special logic)
19387
+ [HostEvent.Pin]: UIPassthroughEvent.PinAnswerToLiveboard,
19388
+ [HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer,
19389
+ [HostEvent.UpdateFilters]: UIPassthroughEvent.UpdateFilters,
19390
+ [HostEvent.DrillDown]: UIPassthroughEvent.Drilldown,
19391
+ // Getters (use getDataWithPassthroughFallback)
19277
19392
  [HostEvent.GetAnswerSession]: UIPassthroughEvent.GetAnswerSession,
19278
19393
  [HostEvent.GetFilters]: UIPassthroughEvent.GetFilters,
19279
19394
  [HostEvent.GetIframeUrl]: UIPassthroughEvent.GetIframeUrl,
@@ -19284,10 +19399,14 @@ const HOST_EVENT_PASSTHROUGH_MAP = {
19284
19399
  };
19285
19400
  class HostEventClient {
19286
19401
  constructor(iFrame) {
19402
+ /** Cached list of available UI passthrough keys from the embedded app */
19403
+ this.availablePassthroughKeysCache = null;
19287
19404
  this.iFrame = iFrame;
19288
19405
  this.customHandlers = {
19289
19406
  [HostEvent.Pin]: (p, c) => this.handlePinEvent(p, c),
19290
19407
  [HostEvent.SaveAnswer]: (p, c) => this.handleSaveAnswerEvent(p, c),
19408
+ [HostEvent.UpdateFilters]: (p, c) => this.handleUpdateFiltersEvent(p, c),
19409
+ [HostEvent.DrillDown]: (p, c) => this.handleDrillDownEvent(p, c),
19291
19410
  };
19292
19411
  }
19293
19412
  /**
@@ -19350,6 +19469,26 @@ class HostEventClient {
19350
19469
  setIframeElement(iFrame) {
19351
19470
  this.iFrame = iFrame;
19352
19471
  }
19472
+ /**
19473
+ * Fetches the list of available UI passthrough keys from the embedded app.
19474
+ * Result is cached for the session. Returns empty array on failure.
19475
+ */
19476
+ async getAvailableUIPassthroughKeys(context) {
19477
+ var _a, _b;
19478
+ if (this.availablePassthroughKeysCache !== null) {
19479
+ return this.availablePassthroughKeysCache;
19480
+ }
19481
+ try {
19482
+ const response = await this.triggerUIPassthroughApi(UIPassthroughEvent.GetAvailableUIPassthroughs, {}, context);
19483
+ const matched = (_a = response === null || response === void 0 ? void 0 : response.find) === null || _a === void 0 ? void 0 : _a.call(response, (r) => r.value && !r.error);
19484
+ const keys = (_b = matched === null || matched === void 0 ? void 0 : matched.value) === null || _b === void 0 ? void 0 : _b.keys;
19485
+ this.availablePassthroughKeysCache = Array.isArray(keys) ? keys : [];
19486
+ return this.availablePassthroughKeysCache;
19487
+ }
19488
+ catch {
19489
+ return [];
19490
+ }
19491
+ }
19353
19492
  async triggerUIPassthroughApi(apiName, parameters, context) {
19354
19493
  const res = await this.processTrigger(HostEvent.UIPassthrough, {
19355
19494
  type: apiName,
@@ -19385,16 +19524,41 @@ class HostEventClient {
19385
19524
  answerId: (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.saveResponse) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.Answer__save) === null || _c === void 0 ? void 0 : _c.answer) === null || _d === void 0 ? void 0 : _d.id,
19386
19525
  };
19387
19526
  }
19527
+ handleUpdateFiltersEvent(payload, context) {
19528
+ if (!isValidUpdateFiltersPayload(payload)) {
19529
+ throwUpdateFiltersValidationError();
19530
+ }
19531
+ return this.handleHostEventWithParam(UIPassthroughEvent.UpdateFilters, payload, context);
19532
+ }
19533
+ handleDrillDownEvent(payload, context) {
19534
+ if (!isValidDrillDownPayload(payload)) {
19535
+ throwDrillDownValidationError();
19536
+ }
19537
+ return this.handleHostEventWithParam(UIPassthroughEvent.Drilldown, payload, context);
19538
+ }
19539
+ /**
19540
+ * Dispatches a host event using the appropriate channel:
19541
+ * 1. If the embedded app supports UI passthrough for this event, use it (custom handler or getter).
19542
+ * 2. Otherwise fall back to the legacy host event channel.
19543
+ *
19544
+ * @param hostEvent - The host event to trigger
19545
+ * @param payload - Optional payload for the event
19546
+ * @param context - Optional context (e.g. vizId) for scoped operations
19547
+ */
19388
19548
  async triggerHostEvent(hostEvent, payload, context) {
19389
19549
  const customHandler = this.customHandlers[hostEvent];
19390
- if (customHandler) {
19391
- return customHandler(payload, context);
19392
- }
19393
- const passthroughEvent = HOST_EVENT_PASSTHROUGH_MAP[hostEvent];
19394
- if (passthroughEvent) {
19395
- return this.getDataWithPassthroughFallback(passthroughEvent, hostEvent, payload, context);
19550
+ const passthroughEvent = PASSTHROUGH_MAP[hostEvent];
19551
+ // If embedded app supports passthrough but not this event, use legacy channel
19552
+ const keys = passthroughEvent ? await this.getAvailableUIPassthroughKeys(context) : [];
19553
+ if (passthroughEvent && keys.length > 0 && !keys.includes(passthroughEvent)) {
19554
+ return this.hostEventFallback(hostEvent, payload, context);
19396
19555
  }
19397
- return this.hostEventFallback(hostEvent, payload, context);
19556
+ // Custom handler (setters) > getter passthrough > legacy fallback
19557
+ return (customHandler
19558
+ ? customHandler(payload, context)
19559
+ : passthroughEvent
19560
+ ? this.getDataWithPassthroughFallback(passthroughEvent, hostEvent, payload, context)
19561
+ : this.hostEventFallback(hostEvent, payload, context));
19398
19562
  }
19399
19563
  }
19400
19564
 
@@ -20728,7 +20892,19 @@ class TsEmbed {
20728
20892
  return null;
20729
20893
  }
20730
20894
  // send an empty object, this is needed for liveboard default handlers
20731
- return this.hostEventClient.triggerHostEvent(messageType, data, context);
20895
+ return this.hostEventClient.triggerHostEvent(messageType, data, context).catch((err) => {
20896
+ var _a;
20897
+ if (err === null || err === void 0 ? void 0 : err.isValidationError) {
20898
+ const errorDetails = (_a = err.embedErrorDetails) !== null && _a !== void 0 ? _a : {
20899
+ errorType: ErrorDetailsTypes.VALIDATION_ERROR,
20900
+ message: err.message || ERROR_MESSAGE.UPDATEFILTERS_INVALID_PAYLOAD,
20901
+ code: EmbedErrorCodes.UPDATEFILTERS_INVALID_PAYLOAD,
20902
+ error: err.message,
20903
+ };
20904
+ this.handleError(errorDetails);
20905
+ }
20906
+ throw err;
20907
+ });
20732
20908
  }
20733
20909
  /**
20734
20910
  * Triggers an event to the embedded app, skipping the UI flow.
@@ -20851,6 +21027,9 @@ class TsEmbed {
20851
21027
  try {
20852
21028
  this.removeFullscreenChangeHandler();
20853
21029
  this.unsubscribeToEvents();
21030
+ if (!this.isRendered) {
21031
+ return;
21032
+ }
20854
21033
  if (!getEmbedConfig().waitForCleanupOnDestroy) {
20855
21034
  this.trigger(HostEvent.DestroyEmbed);
20856
21035
  (_b = (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.insertedDomEl);
@@ -20860,11 +21039,16 @@ class TsEmbed {
20860
21039
  Promise.race([
20861
21040
  this.trigger(HostEvent.DestroyEmbed),
20862
21041
  new Promise((resolve) => setTimeout(resolve, cleanupTimeout)),
20863
- ]).then(() => {
20864
- var _a, _b;
20865
- (_b = (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.insertedDomEl);
20866
- }).catch((e) => {
21042
+ ]).catch((e) => {
20867
21043
  logger$3.log('Error destroying TS Embed', e);
21044
+ }).finally(() => {
21045
+ var _a, _b;
21046
+ try {
21047
+ (_b = (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.insertedDomEl);
21048
+ }
21049
+ catch (e) {
21050
+ logger$3.log('Error removing DOM element on destroy', e);
21051
+ }
20868
21052
  });
20869
21053
  }
20870
21054
  }
@@ -21130,6 +21314,50 @@ class V1Embed extends TsEmbed {
21130
21314
  }
21131
21315
  }
21132
21316
 
21317
+ /**
21318
+ * Resolves enablePastConversationsSidebar with
21319
+ * spotterSidebarConfig taking precedence over the
21320
+ * standalone flag.
21321
+ */
21322
+ const resolveEnablePastConversationsSidebar = (params) => (params.spotterSidebarConfigValue !== undefined
21323
+ ? params.spotterSidebarConfigValue
21324
+ : params.standaloneValue);
21325
+ function buildSpotterSidebarAppInitData(defaultAppInitData, viewConfig, handleError) {
21326
+ const { spotterSidebarConfig, enablePastConversationsSidebar } = viewConfig;
21327
+ const resolvedEnablePastConversations = resolveEnablePastConversationsSidebar({
21328
+ spotterSidebarConfigValue: spotterSidebarConfig === null || spotterSidebarConfig === void 0 ? void 0 : spotterSidebarConfig.enablePastConversationsSidebar,
21329
+ standaloneValue: enablePastConversationsSidebar,
21330
+ });
21331
+ const hasConfig = spotterSidebarConfig || resolvedEnablePastConversations !== undefined;
21332
+ if (!hasConfig)
21333
+ return defaultAppInitData;
21334
+ const resolvedSidebarConfig = {
21335
+ ...spotterSidebarConfig,
21336
+ ...(resolvedEnablePastConversations !== undefined && {
21337
+ enablePastConversationsSidebar: resolvedEnablePastConversations,
21338
+ }),
21339
+ };
21340
+ if (resolvedSidebarConfig.spotterDocumentationUrl !== undefined) {
21341
+ const [isValid, validationError] = validateHttpUrl(resolvedSidebarConfig.spotterDocumentationUrl);
21342
+ if (!isValid) {
21343
+ handleError({
21344
+ errorType: ErrorDetailsTypes.VALIDATION_ERROR,
21345
+ message: ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
21346
+ code: EmbedErrorCodes.INVALID_URL,
21347
+ error: (validationError === null || validationError === void 0 ? void 0 : validationError.message) || ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
21348
+ });
21349
+ delete resolvedSidebarConfig.spotterDocumentationUrl;
21350
+ }
21351
+ }
21352
+ return {
21353
+ ...defaultAppInitData,
21354
+ embedParams: {
21355
+ ...(defaultAppInitData.embedParams || {}),
21356
+ spotterSidebarConfig: resolvedSidebarConfig,
21357
+ },
21358
+ };
21359
+ }
21360
+
21133
21361
  /**
21134
21362
  * Copyright (c) 2022
21135
21363
  *
@@ -21259,7 +21487,10 @@ class AppEmbed extends V1Embed {
21259
21487
  this.defaultHeight = 500;
21260
21488
  this.sendFullHeightLazyLoadData = () => {
21261
21489
  const data = calculateVisibleElementData(this.iFrame);
21262
- this.trigger(HostEvent.VisibleEmbedCoordinates, data);
21490
+ // this should be fired only if the lazyLoadingForFullHeight and fullHeight are true
21491
+ if (this.viewConfig.lazyLoadingForFullHeight && this.viewConfig.fullHeight) {
21492
+ this.trigger(HostEvent.VisibleEmbedCoordinates, data);
21493
+ }
21263
21494
  };
21264
21495
  /**
21265
21496
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -21272,22 +21503,13 @@ class AppEmbed extends V1Embed {
21272
21503
  const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
21273
21504
  responder({ type: EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
21274
21505
  };
21275
- this.HEIGHT_CHANAGE_THRESHOLD = 30;
21276
21506
  /**
21277
21507
  * Set the iframe height as per the computed height received
21278
21508
  * from the ThoughtSpot app.
21279
21509
  * @param data The event payload
21280
21510
  */
21281
21511
  this.updateIFrameHeight = (data) => {
21282
- logger$3.error('Updating iframe height', data);
21283
- const currentHeight = this.iFrame.getBoundingClientRect().height;
21284
- const heightToSet = Math.max(data.data, this.defaultHeight);
21285
- const heightChange = Math.abs(heightToSet - currentHeight);
21286
- if (heightChange < this.HEIGHT_CHANAGE_THRESHOLD) {
21287
- logger$3.info('Height change is less than the threshold, skipping height update', { heightChange, heightToSet, currentHeight });
21288
- return;
21289
- }
21290
- this.setIFrameHeight(heightToSet);
21512
+ this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
21291
21513
  this.sendFullHeightLazyLoadData();
21292
21514
  };
21293
21515
  this.embedIframeCenter = (data, responder) => {
@@ -21321,12 +21543,28 @@ class AppEmbed extends V1Embed {
21321
21543
  this.on(EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
21322
21544
  }
21323
21545
  }
21546
+ /**
21547
+ * Extends the default APP_INIT payload with `embedParams.spotterSidebarConfig`
21548
+ * so the conv-assist app can read sidebar configuration on initialisation.
21549
+ *
21550
+ * Precedence for `enablePastConversationsSidebar`:
21551
+ * `spotterSidebarConfig.enablePastConversationsSidebar` wins over the
21552
+ * deprecated top-level `enablePastConversationsSidebar` flag; if the former
21553
+ * is absent the latter is used as a fallback.
21554
+ *
21555
+ * An invalid `spotterDocumentationUrl` triggers a validation error and is
21556
+ * excluded from the payload rather than forwarded to the app.
21557
+ */
21558
+ async getAppInitData() {
21559
+ const defaultAppInitData = await super.getAppInitData();
21560
+ return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
21561
+ }
21324
21562
  /**
21325
21563
  * Constructs a map of parameters to be passed on to the
21326
21564
  * embedded Liveboard or visualization.
21327
21565
  */
21328
21566
  getEmbedParams() {
21329
- const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterSidebarConfig, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement, } = this.viewConfig;
21567
+ const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, } = this.viewConfig;
21330
21568
  let params = {};
21331
21569
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
21332
21570
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -21344,45 +21582,11 @@ class AppEmbed extends V1Embed {
21344
21582
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
21345
21583
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
21346
21584
  params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
21347
- params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
21348
21585
  params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
21349
21586
  params = this.getBaseQueryParams(params);
21350
21587
  if (!isUndefined(updatedSpotterChatPrompt)) {
21351
21588
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
21352
21589
  }
21353
- const resolvedEnablePastConversationsSidebar = resolveEnablePastConversationsSidebar({
21354
- spotterSidebarConfigValue: spotterSidebarConfig === null || spotterSidebarConfig === void 0 ? void 0 : spotterSidebarConfig.enablePastConversationsSidebar,
21355
- standaloneValue: this.viewConfig.enablePastConversationsSidebar,
21356
- });
21357
- setParamIfDefined(params, Param.EnablePastConversationsSidebar, resolvedEnablePastConversationsSidebar, true);
21358
- // Handle spotterSidebarConfig params
21359
- if (spotterSidebarConfig) {
21360
- const { spotterSidebarTitle, spotterSidebarDefaultExpanded, spotterChatRenameLabel, spotterChatDeleteLabel, spotterDeleteConversationModalTitle, spotterPastConversationAlertMessage, spotterDocumentationUrl, spotterBestPracticesLabel, spotterConversationsBatchSize, spotterNewChatButtonTitle, } = spotterSidebarConfig;
21361
- setParamIfDefined(params, Param.SpotterSidebarDefaultExpanded, spotterSidebarDefaultExpanded, true);
21362
- setParamIfDefined(params, Param.SpotterSidebarTitle, spotterSidebarTitle);
21363
- setParamIfDefined(params, Param.SpotterChatRenameLabel, spotterChatRenameLabel);
21364
- setParamIfDefined(params, Param.SpotterChatDeleteLabel, spotterChatDeleteLabel);
21365
- setParamIfDefined(params, Param.SpotterDeleteConversationModalTitle, spotterDeleteConversationModalTitle);
21366
- setParamIfDefined(params, Param.SpotterPastConversationAlertMessage, spotterPastConversationAlertMessage);
21367
- setParamIfDefined(params, Param.SpotterBestPracticesLabel, spotterBestPracticesLabel);
21368
- setParamIfDefined(params, Param.SpotterConversationsBatchSize, spotterConversationsBatchSize);
21369
- setParamIfDefined(params, Param.SpotterNewChatButtonTitle, spotterNewChatButtonTitle);
21370
- // URL param with validation
21371
- if (spotterDocumentationUrl !== undefined) {
21372
- const [isValid, validationError] = validateHttpUrl(spotterDocumentationUrl);
21373
- if (isValid) {
21374
- params[Param.SpotterDocumentationUrl] = spotterDocumentationUrl;
21375
- }
21376
- else {
21377
- this.handleError({
21378
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
21379
- message: ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
21380
- code: EmbedErrorCodes.INVALID_URL,
21381
- error: (validationError === null || validationError === void 0 ? void 0 : validationError.message) || ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
21382
- });
21383
- }
21384
- }
21385
- }
21386
21590
  // Handle spotterChatConfig params
21387
21591
  if (spotterChatConfig) {
21388
21592
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, } = spotterChatConfig;
@@ -21458,6 +21662,9 @@ class AppEmbed extends V1Embed {
21458
21662
  if (enableHomepageAnnouncement !== undefined) {
21459
21663
  params[Param.EnableHomepageAnnouncement] = enableHomepageAnnouncement;
21460
21664
  }
21665
+ if (isContinuousLiveboardPDFEnabled !== undefined) {
21666
+ params[Param.IsWYSIWYGLiveboardPDFEnabled] = isContinuousLiveboardPDFEnabled;
21667
+ }
21461
21668
  this.defaultHeight = minimumHeight || this.defaultHeight;
21462
21669
  params[Param.DataPanelV2Enabled] = dataPanelV2;
21463
21670
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
@@ -21733,7 +21940,10 @@ class LiveboardEmbed extends V1Embed {
21733
21940
  this.defaultHeight = 500;
21734
21941
  this.sendFullHeightLazyLoadData = () => {
21735
21942
  const data = calculateVisibleElementData(this.iFrame);
21736
- this.trigger(HostEvent.VisibleEmbedCoordinates, data);
21943
+ // this should be fired only if the lazyLoadingForFullHeight and fullHeight are true
21944
+ if (this.viewConfig.lazyLoadingForFullHeight && this.viewConfig.fullHeight) {
21945
+ this.trigger(HostEvent.VisibleEmbedCoordinates, data);
21946
+ }
21737
21947
  };
21738
21948
  /**
21739
21949
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -21746,21 +21956,13 @@ class LiveboardEmbed extends V1Embed {
21746
21956
  const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
21747
21957
  responder({ type: EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
21748
21958
  };
21749
- this.HEIGHT_CHANAGE_THRESHOLD = 30;
21750
21959
  /**
21751
21960
  * Set the iframe height as per the computed height received
21752
21961
  * from the ThoughtSpot app.
21753
21962
  * @param data The event payload
21754
21963
  */
21755
21964
  this.updateIFrameHeight = (data) => {
21756
- const currentHeight = this.iFrame.getBoundingClientRect().height;
21757
- const heightToSet = Math.max(data.data, this.defaultHeight);
21758
- const heightChange = Math.abs(heightToSet - currentHeight);
21759
- if (heightChange < this.HEIGHT_CHANAGE_THRESHOLD) {
21760
- logger$3.info('Height change is less than the threshold, skipping height update', { heightChange, heightToSet, currentHeight });
21761
- return;
21762
- }
21763
- this.setIFrameHeight(heightToSet);
21965
+ this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
21764
21966
  this.sendFullHeightLazyLoadData();
21765
21967
  };
21766
21968
  this.embedIframeCenter = (data, responder) => {
@@ -21821,7 +22023,7 @@ class LiveboardEmbed extends V1Embed {
21821
22023
  getEmbedParamsObject() {
21822
22024
  let params = {};
21823
22025
  params = this.getBaseQueryParams(params);
21824
- const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, isEnhancedFilterInteractivityEnabled = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterChatConfig, isThisPeriodInDateFiltersEnabled, } = this.viewConfig;
22026
+ const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, isEnhancedFilterInteractivityEnabled = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, } = this.viewConfig;
21825
22027
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
21826
22028
  || this.viewConfig.preventPinboardFilterRemoval;
21827
22029
  if (fullHeight === true) {
@@ -21910,6 +22112,9 @@ class LiveboardEmbed extends V1Embed {
21910
22112
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
21911
22113
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
21912
22114
  }
22115
+ if (isContinuousLiveboardPDFEnabled !== undefined) {
22116
+ params[Param.IsWYSIWYGLiveboardPDFEnabled] = isContinuousLiveboardPDFEnabled;
22117
+ }
21913
22118
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
21914
22119
  params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
21915
22120
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
@@ -22293,7 +22498,7 @@ class SearchEmbed extends TsEmbed {
22293
22498
  */
22294
22499
  async render() {
22295
22500
  await super.render();
22296
- this.viewConfig;
22501
+ const { answerId } = this.viewConfig;
22297
22502
  const src = this.getIFrameSrc();
22298
22503
  await this.renderIFrame(src);
22299
22504
  getAuthPromise().then(() => {
@@ -22926,14 +23131,24 @@ class SpotterEmbed extends TsEmbed {
22926
23131
  super(container, viewConfig);
22927
23132
  this.viewConfig = viewConfig;
22928
23133
  }
23134
+ /**
23135
+ * Extends the default APP_INIT payload with `embedParams.spotterSidebarConfig`
23136
+ * so the conv-assist app can read sidebar configuration on initialisation.
23137
+ *
23138
+ * Precedence for `enablePastConversationsSidebar`:
23139
+ * `spotterSidebarConfig.enablePastConversationsSidebar` wins over the
23140
+ * deprecated top-level `enablePastConversationsSidebar` flag; if the former
23141
+ * is absent the latter is used as a fallback.
23142
+ *
23143
+ * An invalid `spotterDocumentationUrl` triggers a validation error and is
23144
+ * excluded from the payload rather than forwarded to the app.
23145
+ */
23146
+ async getAppInitData() {
23147
+ const defaultAppInitData = await super.getAppInitData();
23148
+ return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
23149
+ }
22929
23150
  getEmbedParamsObject() {
22930
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, spotterSidebarConfig, spotterChatConfig, } = this.viewConfig;
22931
- // Extract sidebar config properties
22932
- const { enablePastConversationsSidebar: sidebarEnablePastConversationsSidebar, spotterSidebarTitle, spotterSidebarDefaultExpanded, spotterChatRenameLabel, spotterChatDeleteLabel, spotterDeleteConversationModalTitle, spotterPastConversationAlertMessage, spotterDocumentationUrl, spotterBestPracticesLabel, spotterConversationsBatchSize, spotterNewChatButtonTitle, } = spotterSidebarConfig || {};
22933
- const resolvedEnablePastConversationsSidebar = resolveEnablePastConversationsSidebar({
22934
- spotterSidebarConfigValue: sidebarEnablePastConversationsSidebar,
22935
- standaloneValue: this.viewConfig.enablePastConversationsSidebar,
22936
- });
23151
+ const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, spotterChatConfig, } = this.viewConfig;
22937
23152
  if (!worksheetId) {
22938
23153
  this.handleError({
22939
23154
  errorType: ErrorDetailsTypes.VALIDATION_ERROR,
@@ -22951,32 +23166,6 @@ class SpotterEmbed extends TsEmbed {
22951
23166
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
22952
23167
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
22953
23168
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
22954
- setParamIfDefined(queryParams, Param.EnablePastConversationsSidebar, resolvedEnablePastConversationsSidebar, true);
22955
- setParamIfDefined(queryParams, Param.SpotterSidebarDefaultExpanded, spotterSidebarDefaultExpanded, true);
22956
- // String params
22957
- setParamIfDefined(queryParams, Param.SpotterSidebarTitle, spotterSidebarTitle);
22958
- setParamIfDefined(queryParams, Param.SpotterChatRenameLabel, spotterChatRenameLabel);
22959
- setParamIfDefined(queryParams, Param.SpotterChatDeleteLabel, spotterChatDeleteLabel);
22960
- setParamIfDefined(queryParams, Param.SpotterDeleteConversationModalTitle, spotterDeleteConversationModalTitle);
22961
- setParamIfDefined(queryParams, Param.SpotterPastConversationAlertMessage, spotterPastConversationAlertMessage);
22962
- setParamIfDefined(queryParams, Param.SpotterBestPracticesLabel, spotterBestPracticesLabel);
22963
- setParamIfDefined(queryParams, Param.SpotterConversationsBatchSize, spotterConversationsBatchSize);
22964
- setParamIfDefined(queryParams, Param.SpotterNewChatButtonTitle, spotterNewChatButtonTitle);
22965
- // URL param with validation
22966
- if (spotterDocumentationUrl !== undefined) {
22967
- const [isValid, validationError] = validateHttpUrl(spotterDocumentationUrl);
22968
- if (isValid) {
22969
- queryParams[Param.SpotterDocumentationUrl] = spotterDocumentationUrl;
22970
- }
22971
- else {
22972
- this.handleError({
22973
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
22974
- message: ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
22975
- code: EmbedErrorCodes.INVALID_URL,
22976
- error: (validationError === null || validationError === void 0 ? void 0 : validationError.message) || ERROR_MESSAGE.INVALID_SPOTTER_DOCUMENTATION_URL,
22977
- });
22978
- }
22979
- }
22980
23169
  // Handle spotterChatConfig params
22981
23170
  if (spotterChatConfig) {
22982
23171
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, } = spotterChatConfig;
@@ -23045,87 +23234,6 @@ class ConversationEmbed extends SpotterEmbed {
23045
23234
  }
23046
23235
  }
23047
23236
 
23048
- /**
23049
- * Copyright (c) 2023
23050
- *
23051
- * Embed ThoughtSpot Sage
23052
- * @summary TS Sage embed
23053
- * @author Mourya Balabhadra <mourya.balabhadra@thoughtspot.com>
23054
- */
23055
- /**
23056
- * Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
23057
- * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
23058
- *
23059
- * Note: This embed will be deprecated from SDK: 1.40.0 | ThoughtSpot: 10.13.0.cl
23060
- * @group Embed components
23061
- */
23062
- class SageEmbed extends V1Embed {
23063
- constructor(domSelector, viewConfig) {
23064
- viewConfig.embedComponentType = 'SageEmbed';
23065
- super(domSelector, viewConfig);
23066
- }
23067
- getEmbedParamsObject() {
23068
- const { disableWorksheetChange, hideWorksheetSelector, showObjectSuggestions, dataPanelV2, hideSampleQuestions, isProductTour, hideSageAnswerHeader, hideAutocompleteSuggestions, } = this.viewConfig;
23069
- const params = this.getBaseQueryParams();
23070
- params[Param.DataPanelV2Enabled] = !!dataPanelV2;
23071
- params[Param.IsSageEmbed] = true;
23072
- params[Param.DisableWorksheetChange] = !!disableWorksheetChange;
23073
- params[Param.HideWorksheetSelector] = !!hideWorksheetSelector;
23074
- params[Param.HideEurekaSuggestions] = !!hideAutocompleteSuggestions;
23075
- if (showObjectSuggestions) {
23076
- params[Param.HideEurekaSuggestions] = !showObjectSuggestions;
23077
- // support backwards compatibility
23078
- }
23079
- params[Param.HideSampleQuestions] = !!hideSampleQuestions;
23080
- params[Param.IsProductTour] = !!isProductTour;
23081
- params[Param.HideSageAnswerHeader] = !!hideSageAnswerHeader;
23082
- return params;
23083
- }
23084
- /**
23085
- * Constructs a map of parameters to be passed on to the
23086
- * embedded Eureka or Sage search page.
23087
- * @returns {string} query string
23088
- */
23089
- getEmbedParams() {
23090
- const params = this.getEmbedParamsObject();
23091
- return getQueryParamString(params, true);
23092
- }
23093
- /**
23094
- * Construct the URL of the embedded ThoughtSpot sage to be
23095
- * loaded in the iframe
23096
- * @returns {string} iframe url
23097
- */
23098
- getIFrameSrc() {
23099
- const path = 'eureka';
23100
- const postHashObj = {};
23101
- const tsPostHashParams = this.getThoughtSpotPostUrlParams();
23102
- const { dataSource, searchOptions, } = this.viewConfig;
23103
- if (dataSource)
23104
- postHashObj[Param.WorksheetId] = dataSource;
23105
- if ((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && searchOptions.executeSearch) {
23106
- postHashObj[Param.executeSearch] = true;
23107
- }
23108
- let sagePostHashParams = new URLSearchParams(postHashObj).toString();
23109
- if (sagePostHashParams)
23110
- sagePostHashParams = `${tsPostHashParams ? '&' : '?'}${sagePostHashParams}`;
23111
- if (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery)
23112
- sagePostHashParams += `${sagePostHashParams ? '&' : '?'}${[Param.Query]}=${encodeURIComponent(searchOptions.searchQuery)}`;
23113
- // use encodeURIComponent for query instead of URLSearchParams
23114
- // as it adds + instead of %20 for spaces
23115
- return `${this.getRootIframeSrc()}/embed/${path}${tsPostHashParams}${sagePostHashParams}`;
23116
- }
23117
- /**
23118
- * Render the embedded ThoughtSpot Sage
23119
- * @returns {SageEmbed} Eureka/Sage embed
23120
- */
23121
- async render() {
23122
- await super.render();
23123
- const src = this.getIFrameSrc();
23124
- await this.renderV1Embed(src);
23125
- return this;
23126
- }
23127
- }
23128
-
23129
23237
  const getAnswerSessionFromQuery = `
23130
23238
  query GetEurekaResults($params: Input_eureka_SearchRequest) {
23131
23239
  queryRequest(request: $params) {
@@ -23786,4 +23894,4 @@ class AutoFrameRenderer extends TsEmbed {
23786
23894
  }
23787
23895
  }
23788
23896
 
23789
- export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BodylessConversation, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SageEmbed, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
23897
+ export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BodylessConversation, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };