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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +63 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +148 -25
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +74 -37
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +571 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +375 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +21 -15
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +323 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +45 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +81 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +76 -14
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +50 -9
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +432 -4
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +28 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  49. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.d.ts +16 -8
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +82 -30
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +537 -3
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +3 -3
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js +3 -2
  60. package/cjs/src/index.js.map +1 -1
  61. package/cjs/src/mixpanel-service.d.ts +4 -0
  62. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  63. package/cjs/src/mixpanel-service.js +4 -0
  64. package/cjs/src/mixpanel-service.js.map +1 -1
  65. package/cjs/src/react/all-types-export.d.ts +1 -1
  66. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  67. package/cjs/src/react/all-types-export.js +2 -1
  68. package/cjs/src/react/all-types-export.js.map +1 -1
  69. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  70. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  71. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  72. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  73. package/cjs/src/react/index.d.ts +66 -32
  74. package/cjs/src/react/index.d.ts.map +1 -1
  75. package/cjs/src/react/index.js +5 -3
  76. package/cjs/src/react/index.js.map +1 -1
  77. package/cjs/src/react/index.spec.js +101 -0
  78. package/cjs/src/react/index.spec.js.map +1 -1
  79. package/cjs/src/types.d.ts +789 -32
  80. package/cjs/src/types.d.ts.map +1 -1
  81. package/cjs/src/types.js +610 -20
  82. package/cjs/src/types.js.map +1 -1
  83. package/cjs/src/utils.spec.js +4 -0
  84. package/cjs/src/utils.spec.js.map +1 -1
  85. package/dist/{index-fCne7kmU.js → index-Bivg-mDx.js} +1 -1
  86. package/dist/src/config.d.ts +1 -0
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/css-variables.d.ts +63 -0
  89. package/dist/src/css-variables.d.ts.map +1 -1
  90. package/dist/src/embed/app.d.ts +148 -25
  91. package/dist/src/embed/app.d.ts.map +1 -1
  92. package/dist/src/embed/base.d.ts +1 -1
  93. package/dist/src/embed/conversation.d.ts +375 -2
  94. package/dist/src/embed/conversation.d.ts.map +1 -1
  95. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  96. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  97. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  98. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  99. package/dist/src/embed/liveboard.d.ts +76 -14
  100. package/dist/src/embed/liveboard.d.ts.map +1 -1
  101. package/dist/src/embed/spotter-utils.d.ts +15 -1
  102. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  103. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  104. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  105. package/dist/src/embed/ts-embed.d.ts +16 -8
  106. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  107. package/dist/src/index.d.ts +3 -3
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/mixpanel-service.d.ts +4 -0
  110. package/dist/src/mixpanel-service.d.ts.map +1 -1
  111. package/dist/src/react/all-types-export.d.ts +1 -1
  112. package/dist/src/react/all-types-export.d.ts.map +1 -1
  113. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  114. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  115. package/dist/src/react/index.d.ts +66 -32
  116. package/dist/src/react/index.d.ts.map +1 -1
  117. package/dist/src/types.d.ts +789 -32
  118. package/dist/src/types.d.ts.map +1 -1
  119. package/dist/tsembed-react.es.js +878 -120
  120. package/dist/tsembed-react.js +877 -119
  121. package/dist/tsembed.es.js +936 -181
  122. package/dist/tsembed.js +938 -183
  123. package/dist/visual-embed-sdk-react-full.d.ts +1553 -128
  124. package/dist/visual-embed-sdk-react.d.ts +1555 -129
  125. package/dist/visual-embed-sdk.d.ts +1499 -100
  126. package/lib/package.json +1 -1
  127. package/lib/src/config.d.ts +1 -0
  128. package/lib/src/config.d.ts.map +1 -1
  129. package/lib/src/config.js +1 -0
  130. package/lib/src/config.js.map +1 -1
  131. package/lib/src/css-variables.d.ts +63 -0
  132. package/lib/src/css-variables.d.ts.map +1 -1
  133. package/lib/src/embed/app.d.ts +148 -25
  134. package/lib/src/embed/app.d.ts.map +1 -1
  135. package/lib/src/embed/app.js +75 -38
  136. package/lib/src/embed/app.js.map +1 -1
  137. package/lib/src/embed/app.spec.js +572 -151
  138. package/lib/src/embed/app.spec.js.map +1 -1
  139. package/lib/src/embed/base.d.ts +1 -1
  140. package/lib/src/embed/base.js +1 -1
  141. package/lib/src/embed/conversation.d.ts +375 -2
  142. package/lib/src/embed/conversation.d.ts.map +1 -1
  143. package/lib/src/embed/conversation.js +23 -17
  144. package/lib/src/embed/conversation.js.map +1 -1
  145. package/lib/src/embed/conversation.spec.js +323 -17
  146. package/lib/src/embed/conversation.spec.js.map +1 -1
  147. package/lib/src/embed/events.spec.js +45 -0
  148. package/lib/src/embed/events.spec.js.map +1 -1
  149. package/lib/src/embed/host-events.spec.js +81 -0
  150. package/lib/src/embed/host-events.spec.js.map +1 -1
  151. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  152. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  153. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  154. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  155. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  156. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  157. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  158. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  159. package/lib/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  160. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  161. package/lib/src/embed/liveboard.d.ts +76 -14
  162. package/lib/src/embed/liveboard.d.ts.map +1 -1
  163. package/lib/src/embed/liveboard.js +50 -9
  164. package/lib/src/embed/liveboard.js.map +1 -1
  165. package/lib/src/embed/liveboard.spec.js +432 -4
  166. package/lib/src/embed/liveboard.spec.js.map +1 -1
  167. package/lib/src/embed/spotter-utils.d.ts +15 -1
  168. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  169. package/lib/src/embed/spotter-utils.js +25 -0
  170. package/lib/src/embed/spotter-utils.js.map +1 -1
  171. package/lib/src/embed/spotter-utils.spec.js +130 -1
  172. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  173. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  174. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  175. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  176. package/lib/src/embed/ts-embed.d.ts +16 -8
  177. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  178. package/lib/src/embed/ts-embed.js +82 -30
  179. package/lib/src/embed/ts-embed.js.map +1 -1
  180. package/lib/src/embed/ts-embed.spec.js +537 -3
  181. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  182. package/lib/src/index.d.ts +3 -3
  183. package/lib/src/index.d.ts.map +1 -1
  184. package/lib/src/index.js +2 -2
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/mixpanel-service.d.ts +4 -0
  187. package/lib/src/mixpanel-service.d.ts.map +1 -1
  188. package/lib/src/mixpanel-service.js +4 -0
  189. package/lib/src/mixpanel-service.js.map +1 -1
  190. package/lib/src/react/all-types-export.d.ts +1 -1
  191. package/lib/src/react/all-types-export.d.ts.map +1 -1
  192. package/lib/src/react/all-types-export.js +1 -1
  193. package/lib/src/react/all-types-export.js.map +1 -1
  194. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  195. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  196. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  197. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  198. package/lib/src/react/index.d.ts +66 -32
  199. package/lib/src/react/index.d.ts.map +1 -1
  200. package/lib/src/react/index.js +5 -3
  201. package/lib/src/react/index.js.map +1 -1
  202. package/lib/src/react/index.spec.js +102 -1
  203. package/lib/src/react/index.spec.js.map +1 -1
  204. package/lib/src/types.d.ts +789 -32
  205. package/lib/src/types.d.ts.map +1 -1
  206. package/lib/src/types.js +610 -20
  207. package/lib/src/types.js.map +1 -1
  208. package/lib/src/utils.spec.js +4 -0
  209. package/lib/src/utils.spec.js.map +1 -1
  210. package/lib/src/visual-embed-sdk.d.ts +1499 -100
  211. package/package.json +1 -1
  212. package/src/config.ts +1 -0
  213. package/src/css-variables.ts +77 -0
  214. package/src/embed/app.spec.ts +729 -188
  215. package/src/embed/app.ts +240 -75
  216. package/src/embed/base.ts +1 -1
  217. package/src/embed/conversation.spec.ts +379 -20
  218. package/src/embed/conversation.ts +412 -18
  219. package/src/embed/events.spec.ts +56 -0
  220. package/src/embed/host-events.spec.ts +118 -0
  221. package/src/embed/hostEventClient/contracts.ts +16 -0
  222. package/src/embed/hostEventClient/host-event-client.spec.ts +46 -0
  223. package/src/embed/hostEventClient/host-event-client.ts +3 -2
  224. package/src/embed/liveboard.spec.ts +565 -4
  225. package/src/embed/liveboard.ts +150 -29
  226. package/src/embed/spotter-utils.spec.ts +140 -1
  227. package/src/embed/spotter-utils.ts +36 -1
  228. package/src/embed/spotter-viz-utils.ts +9 -10
  229. package/src/embed/ts-embed.spec.ts +699 -3
  230. package/src/embed/ts-embed.ts +99 -35
  231. package/src/index.ts +44 -2
  232. package/src/mixpanel-service.ts +4 -0
  233. package/src/react/all-types-export.parity.spec.ts +208 -0
  234. package/src/react/all-types-export.ts +22 -0
  235. package/src/react/index.spec.tsx +158 -0
  236. package/src/react/index.tsx +70 -33
  237. package/src/types.ts +791 -30
  238. package/src/utils.spec.ts +5 -0
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.50.1 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.51.0-test */
2
2
  'use client';
3
3
  import * as React from 'react';
4
4
  import React__default, { useRef, useCallback } from 'react';
@@ -374,7 +374,9 @@ var AuthType;
374
374
  })(AuthType || (AuthType = {}));
375
375
  /**
376
376
  *
377
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
377
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
378
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
379
+ * V4 (Focused) home page experiences.
378
380
  *
379
381
  */
380
382
  var HomeLeftNavItem;
@@ -521,7 +523,9 @@ var RuntimeFilterOp;
521
523
  * via `hiddenHomepageModules` and reordered via
522
524
  * `reorderedHomepageModules`.
523
525
  *
524
- * **Note**: This option is not supported in the classic (v1) experience.
526
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
527
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
528
+ * V4 (Focused) home page experiences.
525
529
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
526
530
  */
527
531
  var HomepageModule;
@@ -699,7 +703,7 @@ var EmbedEvent;
699
703
  * @returns nonFilteredColumns - The columns that were not filtered
700
704
  * @example
701
705
  * ```js
702
- * searchEmbed.on(EmbedEvent.DrillDown, {
706
+ * searchEmbed.on(EmbedEvent.Drilldown, {
703
707
  * points: {
704
708
  * clickedPoint,
705
709
  * selectedPoints: selectedPoint
@@ -760,7 +764,7 @@ var EmbedEvent;
760
764
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
761
765
  * @example
762
766
  * ```js
763
- * appEmbed.on(EmbedEvent.customAction, payload => {
767
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
764
768
  * const data = payload.data;
765
769
  * if (data.id === 'insert Custom Action ID here') {
766
770
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -1026,8 +1030,8 @@ var EmbedEvent;
1026
1030
  *
1027
1031
  * **Note**: This event is deprecated in v1.21.0.
1028
1032
  * To fire an event when a download action is initiated on a chart or table,
1029
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
1030
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
1033
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
1034
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
1031
1035
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1032
1036
  * @example
1033
1037
  * ```js
@@ -1077,10 +1081,10 @@ var EmbedEvent;
1077
1081
  * @example
1078
1082
  * ```js
1079
1083
  * //emit when action starts
1080
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
1084
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
1081
1085
  * console.log('download CSV', payload)}, {start: true })
1082
1086
  * //emit when action ends
1083
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
1087
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
1084
1088
  * console.log('download CSV', payload)})
1085
1089
  * ```
1086
1090
  */
@@ -1479,11 +1483,19 @@ var EmbedEvent;
1479
1483
  * Emitted when a user changes any filter on a Liveboard.
1480
1484
  * Returns filter type and name, column name and ID, and runtime
1481
1485
  * filter details.
1486
+ * The payload includes an optional `applicability` attribute indicating the
1487
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
1488
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1489
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1490
+ * is no `targetId`, since the filter applies to the whole Liveboard.
1491
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1492
+ * ThoughtSpot: 26.10.0.cl.
1482
1493
  * @example
1483
1494
  *
1484
1495
  * ```js
1485
1496
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
1486
1497
  * console.log('payload', payload);
1498
+ * // payload.data optionally includes applicability: { level, targetId }
1487
1499
  * })
1488
1500
  * ```
1489
1501
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -1675,9 +1687,17 @@ var EmbedEvent;
1675
1687
  /**
1676
1688
  * Emitted when parameter changes in an Answer
1677
1689
  * or Liveboard.
1690
+ * The payload includes an optional `applicability` attribute indicating the
1691
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
1692
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1693
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1694
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
1695
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1696
+ * ThoughtSpot: 26.10.0.cl.
1678
1697
  * ```js
1679
1698
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
1680
1699
  * console.log('payload', payload);
1700
+ * // payload.data optionally includes applicability: { level, targetId }
1681
1701
  * })
1682
1702
  * ```
1683
1703
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -1979,6 +1999,158 @@ var EmbedEvent;
1979
1999
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
1980
2000
  */
1981
2001
  EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
2002
+ /**
2003
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
2004
+ * to bracket the interaction. App→host counterpart of the
2005
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
2006
+ * @example
2007
+ * ```js
2008
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
2009
+ * // payload: { convId: string }
2010
+ * })
2011
+ * ```
2012
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2013
+ */
2014
+ EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
2015
+ /**
2016
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
2017
+ * to bracket the interaction.
2018
+ * @example
2019
+ * ```js
2020
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
2021
+ * // payload: { convId: string }
2022
+ * })
2023
+ * ```
2024
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2025
+ */
2026
+ EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
2027
+ /**
2028
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
2029
+ * share created). The host builds its own link from shareId/convId + its
2030
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
2031
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
2032
+ * the save resolves.
2033
+ * @example
2034
+ * ```js
2035
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
2036
+ * // payload: { convId: string, shareId: string,
2037
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
2038
+ * })
2039
+ * ```
2040
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2041
+ */
2042
+ EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
2043
+ /**
2044
+ * Emitted when access to a shared Spotter conversation is revoked
2045
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
2046
+ * and the share is deleted entirely.
2047
+ * @example
2048
+ * ```js
2049
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
2050
+ * // payload: { convId: string, shareId: string,
2051
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
2052
+ * })
2053
+ * ```
2054
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2055
+ */
2056
+ EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
2057
+ /**
2058
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
2059
+ * view). No shareId available viewer-side.
2060
+ * @example
2061
+ * ```js
2062
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
2063
+ * // payload: { convId: string, sourceConvId: string }
2064
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
2065
+ * })
2066
+ * ```
2067
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2068
+ */
2069
+ EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
2070
+ /**
2071
+ * Emitted when the user toggles the share-modal "include new messages since
2072
+ * last shared version" checkbox.
2073
+ * @example
2074
+ * ```js
2075
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
2076
+ * // payload: { convId: string, includeNewMessages: boolean }
2077
+ * })
2078
+ * ```
2079
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2080
+ */
2081
+ EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
2082
+ /**
2083
+ * Emitted when the user dismisses the stale-snapshot info banner via its
2084
+ * cross (distinct from the include-new-messages checkbox toggle).
2085
+ * @example
2086
+ * ```js
2087
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
2088
+ * // payload: { convId: string }
2089
+ * })
2090
+ * ```
2091
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2092
+ */
2093
+ EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
2094
+ /**
2095
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
2096
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
2097
+ * / `SpotterConversationShareRevoked` result events.
2098
+ * @example
2099
+ * ```js
2100
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
2101
+ * // payload: { convId: string }
2102
+ * })
2103
+ * ```
2104
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2105
+ */
2106
+ EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
2107
+ /**
2108
+ * Emitted when the share modal is dismissed via the Cancel button.
2109
+ * @example
2110
+ * ```js
2111
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
2112
+ * // payload: { convId: string }
2113
+ * })
2114
+ * ```
2115
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2116
+ */
2117
+ EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
2118
+ /**
2119
+ * Emitted when a recipient leaves the read-only shared view via the Exit
2120
+ * button.
2121
+ * @example
2122
+ * ```js
2123
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
2124
+ * // payload: { convId: string }
2125
+ * })
2126
+ * ```
2127
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2128
+ */
2129
+ EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
2130
+ /**
2131
+ * Emitted when a Spotter conversation is pinned.
2132
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2133
+ * @example
2134
+ * ```js
2135
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
2136
+ * console.log('Conversation pinned', payload);
2137
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
2138
+ * })
2139
+ * ```
2140
+ */
2141
+ EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
2142
+ /**
2143
+ * Emitted when a Spotter conversation is unpinned.
2144
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2145
+ * @example
2146
+ * ```js
2147
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
2148
+ * console.log('Conversation unpinned', payload);
2149
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
2150
+ * })
2151
+ * ```
2152
+ */
2153
+ EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
1982
2154
  /**
1983
2155
  * Emitted when a Spotter conversation is selected/clicked.
1984
2156
  * @example
@@ -2369,6 +2541,7 @@ var HostEvent;
2369
2541
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
2370
2542
  * console.log("iFrameURL", url);
2371
2543
  * ```
2544
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
2372
2545
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
2373
2546
  */
2374
2547
  HostEvent["GetIframeUrl"] = "GetIframeUrl";
@@ -2495,6 +2668,17 @@ var HostEvent;
2495
2668
  * name: string,
2496
2669
  * type: ATTRIBUTE/MEASURE,
2497
2670
  * dataType: INT64/CHAR/DATE }
2671
+ *
2672
+ * `applicability` - Optional. Scopes the filter to a specific target,
2673
+ * for example, a single Liveboard tab, so the panel for the correct
2674
+ * scoped filter is opened. Available from SDK: 1.53.0 |
2675
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
2676
+ *
2677
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
2678
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2679
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2680
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
2681
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2498
2682
  * @example
2499
2683
  * ```js
2500
2684
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -2507,6 +2691,14 @@ var HostEvent;
2507
2691
  * ```
2508
2692
  * @example
2509
2693
  * ```js
2694
+ * // Open a filter scoped to a specific Liveboard tab
2695
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
2696
+ * column: { columnId: '<column-GUID>' },
2697
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
2698
+ * });
2699
+ * ```
2700
+ * @example
2701
+ * ```js
2510
2702
  * // Open filter from search context
2511
2703
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2512
2704
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -2516,6 +2708,73 @@ var HostEvent;
2516
2708
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2517
2709
  */
2518
2710
  HostEvent["OpenFilter"] = "openFilter";
2711
+ /**
2712
+ * Open the add-filter modal of a Liveboard, the same dialog that the
2713
+ * *Add filter* button in the Liveboard edit header opens, so the host
2714
+ * app can start the add-filter flow from its own UI.
2715
+ *
2716
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2717
+ * Hiding the *Add filter* button with `hiddenActions:
2718
+ * [Action.AddFilter]` does not block this event, but disabling it with
2719
+ * `disabledActions` does.
2720
+ *
2721
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
2722
+ * existing filter, this event starts the creation of a new filter.
2723
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2724
+ * @example
2725
+ * ```js
2726
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
2727
+ * ```
2728
+ */
2729
+ HostEvent["OpenAddFilterModal"] = "openAddFilterModal";
2730
+ /**
2731
+ * Open the add-parameter panel of a Liveboard, the same panel that the
2732
+ * *Add parameter* button in the Liveboard edit header opens.
2733
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
2734
+ *
2735
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2736
+ * Hiding the *Add parameter* button with `hiddenActions:
2737
+ * [Action.AddParameter]` does not block this event, but disabling it
2738
+ * with `disabledActions` does.
2739
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2740
+ * @example
2741
+ * ```js
2742
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
2743
+ * ```
2744
+ */
2745
+ HostEvent["OpenAddParameterModal"] = "openAddParameterModal";
2746
+ /**
2747
+ * Open the parameter panel for a particular parameter on a Liveboard.
2748
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
2749
+ * @param - Includes the following keys:
2750
+ * - `parameter`: An object identifying the parameter to open, for
2751
+ * example, `{ parameterId: '<parameter-GUID>' }`.
2752
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
2753
+ * for example, a single Liveboard tab, so the panel for the correct
2754
+ * scoped parameter is opened. Includes the following attributes:
2755
+ *
2756
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
2757
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2758
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2759
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
2760
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2761
+ * @example
2762
+ * ```js
2763
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2764
+ * parameter: { parameterId: '<parameter-GUID>' }
2765
+ * });
2766
+ * ```
2767
+ * @example
2768
+ * ```js
2769
+ * // Open a parameter scoped to a specific group
2770
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2771
+ * parameter: { parameterId: '<parameter-GUID>' },
2772
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
2773
+ * });
2774
+ * ```
2775
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2776
+ */
2777
+ HostEvent["OpenParameter"] = "openParameter";
2519
2778
  /**
2520
2779
  * Add columns to the current search query.
2521
2780
  * @param - { columnIds: string[] }
@@ -2565,6 +2824,10 @@ var HostEvent;
2565
2824
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
2566
2825
  * data=>console.log(data))
2567
2826
  * ```
2827
+ * @returns data - Object with a `v2Content` string: the export request
2828
+ * payload for the current Liveboard.
2829
+ * @returns type - The passthrough event name,
2830
+ * `getExportRequestForCurrentPinboard`.
2568
2831
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
2569
2832
  */
2570
2833
  HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
@@ -2667,6 +2930,9 @@ var HostEvent;
2667
2930
  * }, ContextType.Spotter);
2668
2931
  * ```
2669
2932
  *
2933
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
2934
+ * @returns tabId - GUID of the tab within that Liveboard.
2935
+ * @returns vizId - GUID of the newly created visualization.
2670
2936
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2671
2937
  */
2672
2938
  HostEvent["Pin"] = "pin";
@@ -2705,13 +2971,13 @@ var HostEvent;
2705
2971
  * Trigger the **Manage schedule** action on an embedded Liveboard
2706
2972
  * @example
2707
2973
  * ```js
2708
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
2974
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
2709
2975
  * ```
2710
2976
  * @example
2711
2977
  * ```js
2712
2978
  * // Manage schedules from liveboard context
2713
2979
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2714
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
2980
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
2715
2981
  * ```
2716
2982
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2717
2983
  */
@@ -3156,6 +3422,7 @@ var HostEvent;
3156
3422
  * console.log(tml.answer);
3157
3423
  * });
3158
3424
  * ```
3425
+ * @returns The TML representation of the current Answer, as an object.
3159
3426
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
3160
3427
  * @important
3161
3428
  */
@@ -3580,13 +3847,13 @@ var HostEvent;
3580
3847
  /**
3581
3848
  * Get details of filters applied on the Liveboard.
3582
3849
  * Returns arrays containing Liveboard filter and runtime filter elements.
3583
- * Each Liveboard filter may include an `applicability` attribute
3850
+ * Each Liveboard filter includes an optional `applicability` attribute
3584
3851
  * indicating the scope of the filter. It contains a `level`
3585
3852
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3586
3853
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3587
3854
  * level there is no `targetId`, since the filter applies to the
3588
3855
  * whole Liveboard.
3589
- * The `applicability` attribute is available from SDK: 1.51.0 |
3856
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3590
3857
  * ThoughtSpot: 26.10.0.cl.
3591
3858
  * @example
3592
3859
  * ```js
@@ -3600,6 +3867,8 @@ var HostEvent;
3600
3867
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
3601
3868
  * console.log('filters', data);
3602
3869
  * ```
3870
+ * @returns liveboardFilters - Filters applied on the Liveboard.
3871
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
3603
3872
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3604
3873
  */
3605
3874
  HostEvent["GetFilters"] = "getFilters";
@@ -3629,7 +3898,7 @@ var HostEvent;
3629
3898
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
3630
3899
  *
3631
3900
  * `applicability` - Optional. Scopes the filter to a specific target,
3632
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
3901
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3633
3902
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3634
3903
  *
3635
3904
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3749,9 +4018,37 @@ var HostEvent;
3749
4018
  * console.log('tabs', tabDetails);
3750
4019
  * });
3751
4020
  * ```
4021
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
4022
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
4023
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
3752
4024
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3753
4025
  */
3754
4026
  HostEvent["GetTabs"] = "getTabs";
4027
+ /**
4028
+ * Get group details for the current Liveboard.
4029
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
4030
+ * @example
4031
+ * ```js
4032
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
4033
+ * console.log(
4034
+ * groupDetails // GroupDetails of current Liveboard
4035
+ * );
4036
+ * })
4037
+ * ```
4038
+ * @example
4039
+ * ```js
4040
+ * // Get groups from liveboard context
4041
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
4042
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
4043
+ * console.log('groups', groupDetails);
4044
+ * });
4045
+ * ```
4046
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
4047
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
4048
+ * @returns Groups - Group details, each with at least `id` and `name`.
4049
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4050
+ */
4051
+ HostEvent["GetGroups"] = "getGroups";
3755
4052
  /**
3756
4053
  * Set the visible tabs on a Liveboard.
3757
4054
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -3823,6 +4120,9 @@ var HostEvent;
3823
4120
  * // Alternative direct usage (not recommended)
3824
4121
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
3825
4122
  * ```
4123
+ * @returns session - Session identifier for the Answer, for use with the
4124
+ * `AnswerService`.
4125
+ * @returns embedAnswerData - Data backing the Answer, when available.
3826
4126
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
3827
4127
  */
3828
4128
  HostEvent["GetAnswerSession"] = "getAnswerSession";
@@ -3880,7 +4180,7 @@ var HostEvent;
3880
4180
  * - `value`: The value to set for the parameter.
3881
4181
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
3882
4182
  * - `applicability`: Optional. Scopes the parameter to a specific target,
3883
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
4183
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3884
4184
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3885
4185
  *
3886
4186
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3924,13 +4224,13 @@ var HostEvent;
3924
4224
  HostEvent["UpdateParameters"] = "UpdateParameters";
3925
4225
  /**
3926
4226
  * Triggers GetParameters to fetch the runtime Parameters.
3927
- * Each parameter may include an `applicability` attribute
4227
+ * Each parameter includes an optional `applicability` attribute
3928
4228
  * indicating the scope of the parameter. It contains a `level`
3929
4229
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3930
4230
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3931
4231
  * level there is no `targetId`, since the parameter applies to the
3932
4232
  * whole Liveboard.
3933
- * The `applicability` attribute is available from SDK: 1.51.0 |
4233
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3934
4234
  * ThoughtSpot: 26.10.0.cl.
3935
4235
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
3936
4236
  * ```js
@@ -3956,12 +4256,16 @@ var HostEvent;
3956
4256
  * console.log('parameters', parameters);
3957
4257
  * });
3958
4258
  * ```
4259
+ * @returns parameters - Parameters currently applied on the Liveboard.
3959
4260
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
3960
4261
  */
3961
4262
  HostEvent["GetParameters"] = "GetParameters";
3962
4263
  /**
3963
4264
  * Triggers an event to update a personalized view of a Liveboard.
3964
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
4265
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4266
+ * which additionally accepts a `viewName`, resets to the original view when
4267
+ * called with an empty payload, and reports an error when a named view
4268
+ * cannot be found.
3965
4269
  * ```js
3966
4270
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
3967
4271
  * ```
@@ -3979,10 +4283,15 @@ var HostEvent;
3979
4283
  HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
3980
4284
  /**
3981
4285
  * Triggers an event to update a personalized view of a Liveboard.
4286
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4287
+ * which additionally accepts a `viewName`, resets to the original view when
4288
+ * called with an empty payload, and reports an error when a named view
4289
+ * cannot be found.
3982
4290
  * ```js
3983
4291
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
3984
4292
  * ```
3985
4293
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
4294
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3986
4295
  */
3987
4296
  HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
3988
4297
  /**
@@ -4085,6 +4394,10 @@ var HostEvent;
4085
4394
  * description: "Generated from Spotter"
4086
4395
  * }, ContextType.Spotter);
4087
4396
  * ```
4397
+ * @returns answerId - GUID of the saved Answer.
4398
+ * @returns saveResponse - Raw response from the save operation.
4399
+ * @returns shareResponse - Raw response from the share operation, when the
4400
+ * Answer was also made discoverable.
4088
4401
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
4089
4402
  */
4090
4403
  HostEvent["SaveAnswer"] = "saveAnswer";
@@ -4198,6 +4511,36 @@ var HostEvent;
4198
4511
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
4199
4512
  */
4200
4513
  HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
4514
+ /**
4515
+ * Opens the Spotter share-conversation modal for the given conversation.
4516
+ * `conversationId` is **mandatory** — you must pass the id of the
4517
+ * conversation to share. Also no-op when sharing is disabled
4518
+ * (enableShareConversation off) or when already in the read-only shared view.
4519
+ * @example
4520
+ * ```js
4521
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
4522
+ * ```
4523
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4524
+ */
4525
+ HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
4526
+ /**
4527
+ * Closes the Spotter share-conversation modal. No-op if none is open.
4528
+ * @example
4529
+ * ```js
4530
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
4531
+ * ```
4532
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4533
+ */
4534
+ HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
4535
+ /**
4536
+ * Exits the read-only shared-conversation view.
4537
+ * @example
4538
+ * ```js
4539
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
4540
+ * ```
4541
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4542
+ */
4543
+ HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
4201
4544
  /**
4202
4545
  * Deletes the last prompt in spotter embed.
4203
4546
  * @example
@@ -4293,6 +4636,41 @@ var HostEvent;
4293
4636
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
4294
4637
  */
4295
4638
  HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
4639
+ /**
4640
+ * Pins a saved Spotter conversation so it floats to the top of the past
4641
+ * conversations sidebar. The `conversationId` of the conversation to pin is
4642
+ * required.
4643
+ *
4644
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4645
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4646
+ * instance.
4647
+ *
4648
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4649
+ * @example
4650
+ * ```js
4651
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
4652
+ * conversationId: '<conversation-id>',
4653
+ * });
4654
+ * ```
4655
+ */
4656
+ HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
4657
+ /**
4658
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
4659
+ * conversation to unpin is required.
4660
+ *
4661
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4662
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4663
+ * instance.
4664
+ *
4665
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4666
+ * @example
4667
+ * ```js
4668
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
4669
+ * conversationId: '<conversation-id>',
4670
+ * });
4671
+ * ```
4672
+ */
4673
+ HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
4296
4674
  /**
4297
4675
  * @hidden
4298
4676
  * Get the current context of the embedded page.
@@ -4501,6 +4879,7 @@ var Param;
4501
4879
  Param["NumberFormatLocale"] = "numberFormatLocale";
4502
4880
  Param["CurrencyFormat"] = "currencyFormat";
4503
4881
  Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
4882
+ Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
4504
4883
  Param["IsFullAppEmbed"] = "isFullAppEmbed";
4505
4884
  Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
4506
4885
  Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
@@ -4524,6 +4903,7 @@ var Param;
4524
4903
  Param["PrimaryAction"] = "primaryAction";
4525
4904
  Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
4526
4905
  Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
4906
+ Param["LiveboardGutter"] = "liveboardGutter";
4527
4907
  Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
4528
4908
  Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
4529
4909
  Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
@@ -4532,9 +4912,11 @@ var Param;
4532
4912
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
4533
4913
  Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
4534
4914
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
4915
+ Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
4535
4916
  Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
4536
4917
  Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
4537
4918
  Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
4919
+ Param["ShowSpotterRadiance"] = "showSpotterRadiance";
4538
4920
  Param["DefaultQueryMode"] = "defaultQueryMode";
4539
4921
  Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
4540
4922
  Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
@@ -4555,14 +4937,19 @@ var Param;
4555
4937
  Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
4556
4938
  Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
4557
4939
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4940
+ Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4941
+ Param["SpotterDataSources"] = "spotterDataSources";
4942
+ Param["AnalystId"] = "analystId";
4943
+ Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
4558
4944
  })(Param || (Param = {}));
4559
4945
  /**
4560
4946
  * ThoughtSpot application pages include actions and menu commands
4561
4947
  * for various user-initiated operations. These actions are represented
4562
4948
  * as enumeration members in the SDK. To control actions in the embedded view:
4563
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
4564
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
4565
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
4949
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
4950
+ * (user can see but not click). - hiddenActions — the action is completely removed from
4951
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
4952
+ * are shown; all others are hidden.
4566
4953
  *
4567
4954
  * Use disabledActions to disable (gray out) an action.
4568
4955
  * Use hiddenActions to hide (fully remove) an action.
@@ -4616,6 +5003,17 @@ var Action;
4616
5003
  * ```
4617
5004
  */
4618
5005
  Action["SaveAsView"] = "saveAsView";
5006
+ /**
5007
+ * The **EditInputTable** action on a Liveboard
5008
+ * page. Allows users to edit an input table used in an Answer directly from
5009
+ * a Liveboard.
5010
+ * @example
5011
+ * ```js
5012
+ * disabledActions: [Action.EditInputTable]
5013
+ * ```
5014
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5015
+ */
5016
+ Action["EditInputTable"] = "editInputTable";
4619
5017
  /**
4620
5018
  * The **Make a copy** action on a Liveboard or Answer
4621
5019
  * page. Creates a copy of the Liveboard.
@@ -5819,6 +6217,19 @@ var Action;
5819
6217
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
5820
6218
  */
5821
6219
  Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
6220
+ /**
6221
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
6222
+ * including filter, parameter, and cross-filter chips at the liveboard,
6223
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
6224
+ *
6225
+ * @example
6226
+ * ```js
6227
+ * hiddenActions: [Action.AllLiveboardFilters]
6228
+ * disabledActions: [Action.AllLiveboardFilters]
6229
+ * ```
6230
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6231
+ */
6232
+ Action["AllLiveboardFilters"] = "allLiveboardFilters";
5822
6233
  /**
5823
6234
  * The **Data model instructions** button on the Spotter interface.
5824
6235
  * Allows opening the data model instructions modal.
@@ -5920,6 +6331,10 @@ var Action;
5920
6331
  * The **Add to Coaching** feature allows adding reference questions and
5921
6332
  * business terms to improve Spotter’s responses. This feature is generally available
5922
6333
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
6334
+ *
6335
+ * This action governs both the answer-card **Add to memory** CTA and its
6336
+ * Spotter 3 successor, the response-footer **Remember this** CTA
6337
+ * (they are mutually exclusive).
5923
6338
  * @example
5924
6339
  * ```js
5925
6340
  * hiddenAction: [Action.InConversationTraining]
@@ -6154,6 +6569,89 @@ var Action;
6154
6569
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6155
6570
  */
6156
6571
  Action["SpotterChatRename"] = "spotterChatRename";
6572
+ /**
6573
+ * Controls visibility and disable state of the Spotter conversation Share
6574
+ * button in the chat header. Only takes effect once sharing is enabled
6575
+ * (enableShareConversation on).
6576
+ * @example
6577
+ * ```js
6578
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
6579
+ * ```
6580
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6581
+ */
6582
+ Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
6583
+ /**
6584
+ * Controls visibility and disable state of the Share item in the Spotter
6585
+ * conversation history (sidebar) edit menu. Independent of the header button
6586
+ * above, so a host can show Share in one entry point and hide it in the other.
6587
+ * @example
6588
+ * ```js
6589
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
6590
+ * ```
6591
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6592
+ */
6593
+ Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
6594
+ /**
6595
+ * Controls visibility of the entire read-only shared-conversation data-access
6596
+ * banner shown when a recipient opens a shared view. Hide-only.
6597
+ * @example
6598
+ * ```js
6599
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
6600
+ * ```
6601
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6602
+ */
6603
+ Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
6604
+ /**
6605
+ * Controls visibility and disable state of the cross/close button on the
6606
+ * read-only shared-conversation data-access banner (keeps the banner itself).
6607
+ * @example
6608
+ * ```js
6609
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
6610
+ * ```
6611
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6612
+ */
6613
+ Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
6614
+ /**
6615
+ * Controls visibility and disable state of the Exit button in the read-only
6616
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
6617
+ * host event.
6618
+ * @example
6619
+ * ```js
6620
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
6621
+ * ```
6622
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6623
+ */
6624
+ Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
6625
+ /**
6626
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
6627
+ * to the current moment…"). Hide-only.
6628
+ * @example
6629
+ * ```js
6630
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
6631
+ * ```
6632
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6633
+ */
6634
+ Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
6635
+ /**
6636
+ * Controls visibility and disable state of the share-modal "include new
6637
+ * messages since last shared version" checkbox.
6638
+ * @example
6639
+ * ```js
6640
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
6641
+ * ```
6642
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6643
+ */
6644
+ Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
6645
+ /**
6646
+ * Controls visibility and disable state of the cross on the share-modal
6647
+ * stale-snapshot info banner.
6648
+ * @example
6649
+ * ```js
6650
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
6651
+ * ```
6652
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6653
+ */
6654
+ Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
6157
6655
  /**
6158
6656
  * Controls visibility and disable state of the delete action
6159
6657
  * in the Spotter conversation edit menu.
@@ -6164,6 +6662,16 @@ var Action;
6164
6662
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6165
6663
  */
6166
6664
  Action["SpotterChatDelete"] = "spotterChatDelete";
6665
+ /**
6666
+ * Controls visibility and disable state of the pin/unpin action
6667
+ * in the Spotter conversation edit menu.
6668
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6669
+ * @example
6670
+ * ```js
6671
+ * disabledActions: [Action.SpotterChatPin]
6672
+ * ```
6673
+ */
6674
+ Action["SpotterChatPin"] = "spotterChatPin";
6167
6675
  /**
6168
6676
  * Controls visibility and disable state of the documentation/best practices
6169
6677
  * link in the Spotter sidebar footer.
@@ -6207,6 +6715,56 @@ var Action;
6207
6715
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
6208
6716
  */
6209
6717
  Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
6718
+ /**
6719
+ * The **Basic Search** starter prompt pill.
6720
+ *
6721
+ * Starter prompt pills are the row of category buttons shown above the
6722
+ * Spotter chat input before a conversation starts. They give a new user
6723
+ * ready-made questions to click instead of typing one from scratch, and
6724
+ * disappear once the conversation begins. There are three, one per action
6725
+ * below.
6726
+ *
6727
+ * Clicking this pill opens a card of suggested simple questions; picking one
6728
+ * submits it to Spotter right away. Visible by default, and hidden along
6729
+ * with the other pills when the surface itself is off (see
6730
+ * {@link SpotterChatViewConfig.starterPrompts}).
6731
+ * @example
6732
+ * ```js
6733
+ * hiddenActions: [Action.QuickSearchPill]
6734
+ * ```
6735
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6736
+ */
6737
+ Action["QuickSearchPill"] = "quickSearchPill";
6738
+ /**
6739
+ * The **Deep Analysis** starter prompt pill, next to
6740
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6741
+ *
6742
+ * Clicking it opens a card of suggested investigative questions ("why did
6743
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
6744
+ * rather than submitting immediately, so the user can edit it first.
6745
+ * Visible by default.
6746
+ * @example
6747
+ * ```js
6748
+ * hiddenActions: [Action.DeepAnalysisPill]
6749
+ * ```
6750
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6751
+ */
6752
+ Action["DeepAnalysisPill"] = "deepAnalysisPill";
6753
+ /**
6754
+ * The **Data Literacy** starter prompt pill, next to
6755
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6756
+ *
6757
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
6758
+ * that describes the data the model can answer over, helping a user who does
6759
+ * not yet know what is in the data source. The prompt text always comes from
6760
+ * ThoughtSpot, so only its label is customizable. Visible by default.
6761
+ * @example
6762
+ * ```js
6763
+ * hiddenActions: [Action.DataLiteracyPill]
6764
+ * ```
6765
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6766
+ */
6767
+ Action["DataLiteracyPill"] = "dataLiteracyPill";
6210
6768
  /**
6211
6769
  * The **Include current period** checkbox for date filters.
6212
6770
  * Controls the visibility and availability of the option to include
@@ -6355,6 +6913,38 @@ var Action;
6355
6913
  * ```
6356
6914
  */
6357
6915
  Action["SpotterAnalystSidebar"] = "spotterAnalystSidebar";
6916
+ /**
6917
+ * Controls visibility and disable state of the analyst list
6918
+ * ("Show all") in the Spotter Analyst interface.
6919
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6920
+ * @example
6921
+ * ```js
6922
+ * hiddenActions: [Action.SpotterAnalystList]
6923
+ * disabledActions: [Action.SpotterAnalystList]
6924
+ * ```
6925
+ */
6926
+ Action["SpotterAnalystList"] = "spotterAnalystList";
6927
+ /**
6928
+ * Controls visibility and disable state of the default Spotter analyst
6929
+ * entry in the Spotter Analyst interface.
6930
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6931
+ * @example
6932
+ * ```js
6933
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
6934
+ * disabledActions: [Action.SpotterDefaultAnalyst]
6935
+ * ```
6936
+ */
6937
+ Action["SpotterDefaultAnalyst"] = "spotterDefaultAnalyst";
6938
+ /**
6939
+ * The **Spotter** button in the Liveboard header.
6940
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6941
+ * @example
6942
+ * ```js
6943
+ * hiddenActions: [Action.SpotterOnLiveboard]
6944
+ * disabledActions: [Action.SpotterOnLiveboard]
6945
+ * ```
6946
+ */
6947
+ Action["SpotterOnLiveboard"] = "spotterOnLiveboard";
6358
6948
  })(Action || (Action = {}));
6359
6949
  var PrefetchFeatures;
6360
6950
  (function (PrefetchFeatures) {
@@ -6822,7 +7412,7 @@ var TableContentDensity;
6822
7412
  TableContentDensity["Compact"] = "COMPACT";
6823
7413
  })(TableContentDensity || (TableContentDensity = {}));
6824
7414
 
6825
- var version$1="1.50.1";var pkg = {version:version$1};
7415
+ var version$1="1.51.0-test";var pkg = {version:version$1};
6826
7416
 
6827
7417
  const { version } = pkg;
6828
7418
 
@@ -6898,7 +7488,6 @@ const logger$3 = new Logger();
6898
7488
 
6899
7489
  const ERROR_MESSAGE = {
6900
7490
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
6901
- SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
6902
7491
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6903
7492
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6904
7493
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
@@ -8467,6 +9056,7 @@ var UIPassthroughEvent;
8467
9056
  UIPassthroughEvent["GetParameters"] = "getParameters";
8468
9057
  UIPassthroughEvent["GetTML"] = "getTML";
8469
9058
  UIPassthroughEvent["GetTabs"] = "getTabs";
9059
+ UIPassthroughEvent["GetGroups"] = "getGroups";
8470
9060
  UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
8471
9061
  })(UIPassthroughEvent || (UIPassthroughEvent = {}));
8472
9062
 
@@ -9402,7 +9992,7 @@ class AnswerService {
9402
9992
  async getTML() {
9403
9993
  const { object } = await this.executeQuery(getAnswerTML, {});
9404
9994
  const edoc = object[0].edoc;
9405
- const YAML = await import('./index-fCne7kmU.js');
9995
+ const YAML = await import('./index-Bivg-mDx.js');
9406
9996
  const parsedDoc = YAML.parse(edoc);
9407
9997
  return {
9408
9998
  answer: {
@@ -12351,7 +12941,8 @@ const URL_MAX_LENGTH = 2000;
12351
12941
  * The default CSS dimensions of the embedded app
12352
12942
  */
12353
12943
  const DEFAULT_EMBED_WIDTH = '100%';
12354
- const DEFAULT_EMBED_HEIGHT = '100%';
12944
+ const DEFAULT_EMBED_HEIGHT = '100%';
12945
+ const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
12355
12946
 
12356
12947
  var Config = {
12357
12948
  DEBUG: false,
@@ -18506,7 +19097,12 @@ const MIXPANEL_EVENT = {
18506
19097
  VISUAL_SDK_RENDER_FAILED: 'visual-sdk-render-failed',
18507
19098
  VISUAL_SDK_TRIGGER: 'visual-sdk-trigger',
18508
19099
  VISUAL_SDK_ON: 'visual-sdk-on',
18509
- VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create'};
19100
+ VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
19101
+ VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
19102
+ VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
19103
+ VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
19104
+ VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
19105
+ };
18510
19106
  let isMixpanelInitialized = false;
18511
19107
  let eventQueue = [];
18512
19108
  /**
@@ -19881,7 +20477,7 @@ const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initF
19881
20477
  /**
19882
20478
  * Initializes the Visual Embed SDK globally and perform
19883
20479
  * authentication if applicable. This function needs to be called before any ThoughtSpot
19884
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
20480
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
19885
20481
  * to actually embed. That is handled internally.
19886
20482
  * @param embedConfig The configuration object containing ThoughtSpot host,
19887
20483
  * authentication mechanism and so on.
@@ -20305,6 +20901,7 @@ const PASSTHROUGH_MAP = {
20305
20901
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
20306
20902
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML,
20307
20903
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
20904
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
20308
20905
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
20309
20906
  };
20310
20907
  class HostEventClient {
@@ -20707,7 +21304,7 @@ class TsEmbed {
20707
21304
  */
20708
21305
  this.shouldEncodeUrlQueryParams = false;
20709
21306
  this.defaultHiddenActions = [Action.ReportError];
20710
- this.preRenderContainerEl = null;
21307
+ this.preRenderContainerEl = document.body;
20711
21308
  this.containerScrollListener = null;
20712
21309
  /**
20713
21310
  * Handler for fullscreen change events
@@ -21395,11 +21992,27 @@ class TsEmbed {
21395
21992
  iFrame.name = 'ThoughtSpot Embedded Analytics';
21396
21993
  return iFrame;
21397
21994
  }
21995
+ /**
21996
+ * Returns a merged {@link PreRenderConfig} object where each shared key
21997
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
21998
+ * backward compatibility.
21999
+ */
22000
+ getPreRenderConfig() {
22001
+ var _a, _b, _c, _d;
22002
+ const viewCfg = this.viewConfig;
22003
+ const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
22004
+ return {
22005
+ ...preRenderCfg,
22006
+ preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
22007
+ preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
22008
+ doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
22009
+ };
22010
+ }
21398
22011
  /**
21399
22012
  * Returns true if this embed instance is configured for pre-rendering.
21400
22013
  */
21401
22014
  isPreRenderEmbed() {
21402
- return !!this.viewConfig.preRenderId;
22015
+ return !!this.getPreRenderConfig().preRenderId;
21403
22016
  }
21404
22017
  handleInsertionIntoDOM(child) {
21405
22018
  if (this.isPreRenderEmbed()) {
@@ -21535,6 +22148,7 @@ class TsEmbed {
21535
22148
  this.setIframeElement(this.preRenderChild);
21536
22149
  }
21537
22150
  this.isRendered = true;
22151
+ this.inheritPreRenderContainer();
21538
22152
  }
21539
22153
  return this.isPreRenderConnected();
21540
22154
  }
@@ -21585,7 +22199,7 @@ class TsEmbed {
21585
22199
  */
21586
22200
  resolvePreRenderContainerTarget() {
21587
22201
  var _a;
21588
- const containerConfig = this.viewConfig.preRenderContainer;
22202
+ const containerConfig = this.getPreRenderConfig().preRenderContainer;
21589
22203
  let container = null;
21590
22204
  if (typeof containerConfig === 'string') {
21591
22205
  try {
@@ -21603,15 +22217,35 @@ class TsEmbed {
21603
22217
  }
21604
22218
  return (_a = container) !== null && _a !== void 0 ? _a : document.body;
21605
22219
  }
22220
+ inheritPreRenderContainer() {
22221
+ var _a;
22222
+ const preRenderedObject = this.getPreRenderObj();
22223
+ if (!preRenderedObject || preRenderedObject === this) {
22224
+ return;
22225
+ }
22226
+ const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
22227
+ if (this.getPreRenderConfig().preRenderContainer
22228
+ && this.resolvePreRenderContainerTarget() !== ownerContainer) {
22229
+ logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
22230
+ + 'the one passed here is ignored. Set it on the PreRender component instead.');
22231
+ }
22232
+ this.preRenderContainerEl = ownerContainer;
22233
+ this.applyPreRenderContainerPositioning();
22234
+ }
22235
+ getCustomPreRenderContainer() {
22236
+ const container = this.preRenderContainerEl;
22237
+ return container && container !== document.body ? container : null;
22238
+ }
21606
22239
  /**
21607
- * Makes the container a positioning context for the absolutely positioned
21608
- * wrapper, stashing the original inline `position` on the element (once) so
21609
- * destroy() can restore it exactly, leaving no trace. Recording it on the
21610
- * element rather than per-instance lets the override be reverted even when
21611
- * embeds share the same container.
22240
+ * Makes the resolved container a positioning context for the absolutely
22241
+ * positioned wrapper, stashing the original inline `position` on the element
22242
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
22243
+ * on the element rather than per-instance lets the override be reverted even
22244
+ * when embeds share the same container.
21612
22245
  */
21613
- applyPreRenderContainerPositioning(container) {
21614
- if (container === document.body) {
22246
+ applyPreRenderContainerPositioning() {
22247
+ const container = this.getCustomPreRenderContainer();
22248
+ if (!container) {
21615
22249
  return;
21616
22250
  }
21617
22251
  const pos = window.getComputedStyle(container).position;
@@ -21654,11 +22288,11 @@ class TsEmbed {
21654
22288
  resolved.addEventListener('scroll', this.containerScrollListener);
21655
22289
  }
21656
22290
  }
21657
- this.applyPreRenderContainerPositioning(resolved);
22291
+ this.preRenderContainerEl = resolved;
22292
+ this.applyPreRenderContainerPositioning();
21658
22293
  if (wrapper.parentNode !== resolved) {
21659
22294
  resolved.appendChild(wrapper);
21660
22295
  }
21661
- this.preRenderContainerEl = resolved;
21662
22296
  }
21663
22297
  insertIntoDOMForPreRender(child) {
21664
22298
  const preRenderChild = this.createPreRenderChild(child);
@@ -21681,7 +22315,7 @@ class TsEmbed {
21681
22315
  }
21682
22316
  const targetContainer = this.resolvePreRenderContainerTarget();
21683
22317
  this.preRenderContainerEl = targetContainer;
21684
- this.applyPreRenderContainerPositioning(targetContainer);
22318
+ this.applyPreRenderContainerPositioning();
21685
22319
  targetContainer.appendChild(preRenderWrapper);
21686
22320
  }
21687
22321
  insertIntoDOM(child) {
@@ -22009,6 +22643,9 @@ class TsEmbed {
22009
22643
  * @param args
22010
22644
  */
22011
22645
  async render() {
22646
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
22647
+ embedComponentType: this.viewConfig.embedComponentType,
22648
+ });
22012
22649
  if (!getIsInitCalled()) {
22013
22650
  logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
22014
22651
  }
@@ -22080,7 +22717,11 @@ class TsEmbed {
22080
22717
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
22081
22718
  */
22082
22719
  async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
22083
- if (!this.viewConfig.preRenderId) {
22720
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
22721
+ showPreRenderByDefault,
22722
+ replaceExistingPreRender,
22723
+ });
22724
+ if (!this.getPreRenderConfig().preRenderId) {
22084
22725
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22085
22726
  return this;
22086
22727
  }
@@ -22136,7 +22777,7 @@ class TsEmbed {
22136
22777
  }
22137
22778
  // Drop our reference up front so a destroyed embed never pins a
22138
22779
  // detached container in memory; restoration uses the local handle.
22139
- this.preRenderContainerEl = null;
22780
+ this.preRenderContainerEl = document.body;
22140
22781
  const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
22141
22782
  if (originalPosition === undefined) {
22142
22783
  // We never overrode this container's position; nothing to restore.
@@ -22159,9 +22800,7 @@ class TsEmbed {
22159
22800
  if (!this.containerScrollListener) {
22160
22801
  return;
22161
22802
  }
22162
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22163
- ? this.preRenderContainerEl
22164
- : null;
22803
+ const customContainer = this.getCustomPreRenderContainer();
22165
22804
  customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
22166
22805
  this.containerScrollListener = null;
22167
22806
  }
@@ -22257,9 +22896,13 @@ class TsEmbed {
22257
22896
  */
22258
22897
  async showPreRender() {
22259
22898
  var _a, _b;
22899
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22900
+ preRenderId: this.getPreRenderConfig().preRenderId,
22901
+ embedComponentType: this.viewConfig.embedComponentType,
22902
+ });
22260
22903
  if (this.shouldWaitForRenderPromise)
22261
22904
  await this.isReadyForRenderPromise;
22262
- if (!this.viewConfig.preRenderId) {
22905
+ if (!this.getPreRenderConfig().preRenderId) {
22263
22906
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22264
22907
  return this;
22265
22908
  }
@@ -22290,14 +22933,12 @@ class TsEmbed {
22290
22933
  (_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
22291
22934
  this.hostElement.appendChild(this.insertedDomEl);
22292
22935
  this.syncPreRenderStyle();
22293
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22294
- ? this.preRenderContainerEl
22295
- : null;
22936
+ const customContainer = this.getCustomPreRenderContainer();
22296
22937
  if (customContainer && !this.containerScrollListener) {
22297
22938
  this.containerScrollListener = () => this.syncPreRenderStyle();
22298
22939
  customContainer.addEventListener('scroll', this.containerScrollListener);
22299
22940
  }
22300
- if (!this.viewConfig.doNotTrackPreRenderSize) {
22941
+ if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
22301
22942
  const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
22302
22943
  this.resizeObserver = new ResizeObserver((entries) => {
22303
22944
  entries.forEach((entry) => {
@@ -22339,13 +22980,15 @@ class TsEmbed {
22339
22980
  logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
22340
22981
  return;
22341
22982
  }
22983
+ if (!this.getPreRenderPlaceHolderElement().isConnected) {
22984
+ logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
22985
+ return;
22986
+ }
22342
22987
  // Self-heal if the resolved container was remounted/detached, so we
22343
22988
  // never measure a stale node (which would collapse the wrapper).
22344
22989
  this.reconcilePreRenderContainer();
22345
22990
  const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
22346
- const containerEl = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22347
- ? this.preRenderContainerEl
22348
- : null;
22991
+ const containerEl = this.getCustomPreRenderContainer();
22349
22992
  const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
22350
22993
  const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
22351
22994
  const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
@@ -22362,16 +23005,21 @@ class TsEmbed {
22362
23005
  * If the component is not preRendered, it issues a warning.
22363
23006
  */
22364
23007
  hidePreRender() {
23008
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
23009
+ preRenderId: this.getPreRenderConfig().preRenderId,
23010
+ embedComponentType: this.viewConfig.embedComponentType,
23011
+ });
22365
23012
  logger$3.debug('HidePreRender Called');
22366
23013
  if (!this.isPreRenderConnected()) {
22367
23014
  // if the embed component is not preRendered , nothing to hide
22368
23015
  logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
22369
23016
  return;
22370
23017
  }
23018
+ const { zIndex } = this.getPreRenderConfig();
22371
23019
  const preRenderHideStyles = {
22372
23020
  opacity: '0',
22373
23021
  pointerEvents: 'none',
22374
- zIndex: '-1000',
23022
+ zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
22375
23023
  position: 'absolute',
22376
23024
  top: '0',
22377
23025
  left: '0',
@@ -22396,10 +23044,11 @@ class TsEmbed {
22396
23044
  * @property {string} child - The HTML element ID for the PreRender child.
22397
23045
  */
22398
23046
  getPreRenderIds() {
23047
+ const preRenderId = this.getPreRenderConfig().preRenderId;
22399
23048
  return {
22400
- wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${this.viewConfig.preRenderId}`,
22401
- child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
22402
- placeHolder: `tsEmbed-pre-render-placeholder-${this.viewConfig.preRenderId}`,
23049
+ wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
23050
+ child: `tsEmbed-pre-render-child-${preRenderId}`,
23051
+ placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
22403
23052
  };
22404
23053
  }
22405
23054
  /**
@@ -22841,6 +23490,31 @@ function buildSpotterSidebarAppInitData(defaultAppInitData, viewConfig, handleEr
22841
23490
  ...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
22842
23491
  },
22843
23492
  };
23493
+ }
23494
+ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23495
+ const { spotterShareConversationConfig } = viewConfig;
23496
+ if (!spotterShareConversationConfig)
23497
+ return initData;
23498
+ return {
23499
+ ...initData,
23500
+ embedParams: {
23501
+ ...(initData.embedParams || {}),
23502
+ spotterShareConversationConfig,
23503
+ },
23504
+ };
23505
+ }
23506
+ function buildStarterPromptsAppInitData(initData, viewConfig) {
23507
+ var _a;
23508
+ const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
23509
+ if (!starterPrompts)
23510
+ return initData;
23511
+ return {
23512
+ ...initData,
23513
+ embedParams: {
23514
+ ...(initData.embedParams || {}),
23515
+ starterPrompts,
23516
+ },
23517
+ };
22844
23518
  }
22845
23519
 
22846
23520
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -22906,6 +23580,10 @@ var Page;
22906
23580
  * Collections listing page
22907
23581
  */
22908
23582
  Page["Collections"] = "collections";
23583
+ /**
23584
+ * Liveboard schedules listing page
23585
+ */
23586
+ Page["LiveboardSchedules"] = "liveboard-schedules";
22909
23587
  })(Page || (Page = {}));
22910
23588
  /**
22911
23589
  * Define the initial state of column custom group accordions
@@ -22954,6 +23632,9 @@ var HomePage;
22954
23632
  /**
22955
23633
  * Modular (v2) introduces the updated Modular Home Experience.
22956
23634
  * It serves as the foundational version of the home page.
23635
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
23636
+ * {@link HomePage.Focused} (V4) instead.
23637
+ * @deprecated V1 and V2 home page experiences are deprecated.
22957
23638
  */
22958
23639
  HomePage["Modular"] = "v2";
22959
23640
  /**
@@ -23048,6 +23729,15 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23048
23729
  this.setIFrameHeight(frameHeight || this.defaultHeight);
23049
23730
  };
23050
23731
  if (this.viewConfig.fullHeight === true) {
23732
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
23733
+ this.viewConfig.lazyLoadingForFullHeight = true;
23734
+ }
23735
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
23736
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
23737
+ }
23738
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
23739
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
23740
+ }
23051
23741
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23052
23742
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23053
23743
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23069,14 +23759,20 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23069
23759
  async getAppInitData() {
23070
23760
  const defaultAppInitData = await super.getAppInitData();
23071
23761
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
23072
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23762
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23763
+ const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
23764
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
23073
23765
  }
23074
23766
  /**
23075
23767
  * Constructs a map of parameters to be passed on to the
23076
23768
  * embedded Liveboard or visualization.
23077
23769
  */
23078
23770
  getEmbedParams() {
23079
- const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.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, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
23771
+ const params = this.getEmbedParamsObject();
23772
+ return getQueryParamString(params, true);
23773
+ }
23774
+ getEmbedParamsObject() {
23775
+ const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, updatedSpotterExperience, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23080
23776
  let params = {};
23081
23777
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
23082
23778
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -23086,34 +23782,51 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23086
23782
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
23087
23783
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
23088
23784
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23089
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23785
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
23786
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23787
+ }
23090
23788
  if (newChartsLibrary !== undefined) {
23091
23789
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23092
23790
  }
23093
23791
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23094
23792
  params[Param.IsFullAppEmbed] = true;
23095
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23096
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
23793
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23794
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23795
+ }
23796
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
23797
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
23798
+ isEnhancedFilterInteractivityEnabled;
23799
+ }
23097
23800
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23098
23801
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23099
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23802
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
23803
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23804
+ }
23100
23805
  if (isUnifiedSearchExperienceEnabled !== undefined) {
23101
23806
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
23102
23807
  }
23103
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23808
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
23809
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23810
+ }
23104
23811
  params = this.getBaseQueryParams(params);
23105
23812
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23106
23813
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23107
23814
  }
23815
+ if (!isUndefined$1(showSpotterRadiance)) {
23816
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23817
+ }
23108
23818
  if (!isUndefined$1(defaultQueryMode)) {
23109
23819
  params[Param.DefaultQueryMode] = defaultQueryMode;
23110
23820
  }
23111
23821
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23112
23822
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23113
23823
  }
23824
+ if (spotterDataSources && spotterDataSources.length) {
23825
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
23826
+ }
23114
23827
  // Handle spotterChatConfig params
23115
23828
  if (spotterChatConfig) {
23116
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
23829
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23117
23830
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23118
23831
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23119
23832
  if (spotterFileUploadEnabled !== undefined) {
@@ -23122,10 +23835,16 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23122
23835
  if (enableStarterPrompts !== undefined) {
23123
23836
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23124
23837
  }
23838
+ if (openSpotterOnLiveboardByDefault !== undefined) {
23839
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
23840
+ }
23125
23841
  if (spotterFileUploadFileTypes !== undefined) {
23126
23842
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23127
23843
  }
23128
23844
  }
23845
+ if (!isUndefined$1(updatedSpotterExperience)) {
23846
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23847
+ }
23129
23848
  if (hideObjectSearch) {
23130
23849
  params[Param.HideObjectSearch] = !!hideObjectSearch;
23131
23850
  }
@@ -23162,6 +23881,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23162
23881
  if (enable2ColumnLayout !== undefined) {
23163
23882
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23164
23883
  }
23884
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
23885
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
23886
+ }
23165
23887
  if (enableAskSage) {
23166
23888
  params[Param.enableAskSage] = enableAskSage;
23167
23889
  }
@@ -23174,6 +23896,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23174
23896
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23175
23897
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23176
23898
  }
23899
+ if (liveboardGutter !== undefined) {
23900
+ params[Param.LiveboardGutter] = liveboardGutter;
23901
+ }
23177
23902
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23178
23903
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23179
23904
  }
@@ -23192,6 +23917,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23192
23917
  if (isCentralizedLiveboardFilterUXEnabled != undefined) {
23193
23918
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23194
23919
  }
23920
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23921
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23922
+ }
23195
23923
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23196
23924
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23197
23925
  }
@@ -23207,7 +23935,6 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23207
23935
  }
23208
23936
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23209
23937
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
23210
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23211
23938
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
23212
23939
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23213
23940
  if (dataPanelCustomGroupsAccordionInitialState
@@ -23222,33 +23949,15 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23222
23949
  if (modularHomeExperience !== undefined) {
23223
23950
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23224
23951
  }
23225
- // Set navigation to v2 by default to avoid problems like the app
23226
- // switcher (9-dot menu) not showing when v3 navigation is turned on
23227
- // at the cluster level.
23228
- // To use v3 navigation, we must manually set the discoveryExperience
23229
- // settings.
23230
- params[Param.NavigationVersion] = 'v2';
23231
- // Set homePageVersion to v2 by default to reset the LD flag value
23232
- // for the homepageVersion.
23233
- params[Param.HomepageVersion] = 'v2';
23952
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
23953
+ // default experience, Need to send navigationVersion=v3 and
23954
+ // homepageVersion=v3 even when the no discoveryExperience /
23955
+ // modularHomeExperience config is set. Without these
23956
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
23957
+ // home page, so the defaults must be sent explicitly from the SDK.
23958
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
23959
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23234
23960
  if (discoveryExperience) {
23235
- // primaryNavbarVersion v3 will enabled the new left navigation
23236
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
23237
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
23238
- // Enable the modularHomeExperience when Sliding is enabled.
23239
- params[Param.ModularHomeExperienceEnabled] = true;
23240
- }
23241
- // homePage v2 will enable the modular home page
23242
- // and it will override the modularHomeExperience value
23243
- if (discoveryExperience.homePage === HomePage.Modular) {
23244
- params[Param.ModularHomeExperienceEnabled] = true;
23245
- }
23246
- // ModularWithStylingChanges (v3) introduces the styling changes
23247
- // to the Modular Homepage.
23248
- // v3 will be the base version of homePageVersion.
23249
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
23250
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23251
- }
23252
23961
  // listPageVersion can be changed to v2 or v3
23253
23962
  if (discoveryExperience.listPageVersion !== undefined) {
23254
23963
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
@@ -23263,8 +23972,7 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23263
23972
  }
23264
23973
  }
23265
23974
  }
23266
- const queryParams = getQueryParamString(params, true);
23267
- return queryParams;
23975
+ return params;
23268
23976
  }
23269
23977
  /**
23270
23978
  * Constructs the URL of the ThoughtSpot app page to be rendered.
@@ -23301,6 +24009,8 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23301
24009
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
23302
24010
  case Page.Collections:
23303
24011
  return 'collections';
24012
+ case Page.LiveboardSchedules:
24013
+ return 'home/liveboard-schedules';
23304
24014
  case Page.Home:
23305
24015
  default:
23306
24016
  return 'home';
@@ -23586,6 +24296,15 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23586
24296
  logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
23587
24297
  'Using full height with vizId might lead to unexpected behavior.');
23588
24298
  }
24299
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
24300
+ this.viewConfig.lazyLoadingForFullHeight = true;
24301
+ }
24302
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
24303
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
24304
+ }
24305
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
24306
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
24307
+ }
23589
24308
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23590
24309
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23591
24310
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23594,7 +24313,8 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23594
24313
  }
23595
24314
  async getAppInitData() {
23596
24315
  const defaultAppInitData = await super.getAppInitData();
23597
- return buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24316
+ const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24317
+ return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
23598
24318
  }
23599
24319
  /**
23600
24320
  * Construct a map of params to be passed on to the
@@ -23608,7 +24328,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23608
24328
  getEmbedParamsObject() {
23609
24329
  let params = {};
23610
24330
  params = this.getBaseQueryParams(params);
23611
- 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, newChartsLibrary, 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, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
24331
+ const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, isEnhancedFilterInteractivityEnabled, enableAskSage, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23612
24332
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23613
24333
  || this.viewConfig.preventPinboardFilterRemoval;
23614
24334
  if (fullHeight === true) {
@@ -23630,6 +24350,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23630
24350
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23631
24351
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23632
24352
  }
24353
+ if (!isUndefined$1(showSpotterRadiance)) {
24354
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
24355
+ }
23633
24356
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23634
24357
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23635
24358
  }
@@ -23646,6 +24369,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23646
24369
  if (enable2ColumnLayout !== undefined) {
23647
24370
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23648
24371
  }
24372
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
24373
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
24374
+ }
23649
24375
  if (hideTabPanel) {
23650
24376
  params[Param.HideTabPanel] = hideTabPanel;
23651
24377
  }
@@ -23673,6 +24399,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23673
24399
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23674
24400
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23675
24401
  }
24402
+ if (liveboardGutter !== undefined) {
24403
+ params[Param.LiveboardGutter] = liveboardGutter;
24404
+ }
23676
24405
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23677
24406
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23678
24407
  }
@@ -23685,9 +24414,12 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23685
24414
  if (showSpotterLimitations !== undefined) {
23686
24415
  params[Param.ShowSpotterLimitations] = showSpotterLimitations;
23687
24416
  }
24417
+ if (!isUndefined$1(updatedSpotterExperience)) {
24418
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
24419
+ }
23688
24420
  // Handle spotterChatConfig params
23689
24421
  if (spotterChatConfig) {
23690
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
24422
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23691
24423
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23692
24424
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23693
24425
  if (spotterFileUploadEnabled !== undefined) {
@@ -23696,6 +24428,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23696
24428
  if (enableStarterPrompts !== undefined) {
23697
24429
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23698
24430
  }
24431
+ if (openSpotterOnLiveboardByDefault !== undefined) {
24432
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
24433
+ }
23699
24434
  if (spotterFileUploadFileTypes !== undefined) {
23700
24435
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23701
24436
  }
@@ -23706,6 +24441,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23706
24441
  if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
23707
24442
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23708
24443
  }
24444
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
24445
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
24446
+ }
23709
24447
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23710
24448
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23711
24449
  }
@@ -23719,16 +24457,27 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23719
24457
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23720
24458
  }
23721
24459
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23722
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24460
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
24461
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24462
+ }
23723
24463
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23724
24464
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23725
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24465
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
24466
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24467
+ }
23726
24468
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23727
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23728
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
24469
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
24470
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
24471
+ }
24472
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
24473
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
24474
+ isEnhancedFilterInteractivityEnabled;
24475
+ }
23729
24476
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23730
24477
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23731
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24478
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
24479
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24480
+ }
23732
24481
  getQueryParamString(params, true);
23733
24482
  return params;
23734
24483
  }
@@ -23927,7 +24676,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23927
24676
  if (this.isRendered) {
23928
24677
  this.trigger(HostEvent.Navigate, path.substring(1));
23929
24678
  }
23930
- else if (this.viewConfig.preRenderId) {
24679
+ else if (this.getPreRenderConfig().preRenderId) {
23931
24680
  this.preRender(true);
23932
24681
  }
23933
24682
  else {
@@ -24517,18 +25266,12 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24517
25266
  */
24518
25267
  async getAppInitData() {
24519
25268
  const defaultAppInitData = await super.getAppInitData();
24520
- return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25269
+ const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25270
+ const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
25271
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
24521
25272
  }
24522
25273
  getEmbedParamsObject() {
24523
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24524
- if (!worksheetId) {
24525
- this.handleError({
24526
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
24527
- message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24528
- code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
24529
- error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24530
- });
24531
- }
25274
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
24532
25275
  const queryParams = this.getBaseQueryParams();
24533
25276
  queryParams[Param.SpotterEnabled] = true;
24534
25277
  // Boolean params
@@ -24538,8 +25281,10 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24538
25281
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
24539
25282
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
24540
25283
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
25284
+ setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
24541
25285
  setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
24542
25286
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
25287
+ setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
24543
25288
  // Handle spotterChatConfig params
24544
25289
  if (spotterChatConfig) {
24545
25290
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -24551,11 +25296,18 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24551
25296
  queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
24552
25297
  }
24553
25298
  }
25299
+ setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
24554
25300
  return queryParams;
24555
25301
  }
24556
25302
  getIframeSrc() {
24557
- const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
24558
- const path = 'insights/conv-assist';
25303
+ const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
25304
+ // Deep-link into the read-only shared-conversation reader view when a
25305
+ // shared conversation id is supplied (e.g. a recipient landing from a
25306
+ // host-configured CONVERSATION_URL share link); otherwise the normal
25307
+ // Spotter conversation surface.
25308
+ const path = sharedConversationId
25309
+ ? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
25310
+ : 'insights/conv-assist';
24559
25311
  const queryParams = this.getEmbedParamsObject();
24560
25312
  let query = '';
24561
25313
  const queryParamsString = getQueryParamString(queryParams, true);
@@ -24571,8 +25323,12 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24571
25323
  query += `&${parameterQuery}`;
24572
25324
  }
24573
25325
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
24574
- worksheet: worksheetId,
24575
- query: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) || '',
25326
+ ...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
25327
+ && { worksheet: worksheetId }),
25328
+ ...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
25329
+ ...(Array.isArray(dataSources)
25330
+ && dataSources.length > 0
25331
+ && { dataSources: JSON.stringify(dataSources) }),
24576
25332
  });
24577
25333
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
24578
25334
  }
@@ -24620,15 +25376,17 @@ const componentFactory = (EmbedConstructor,
24620
25376
  // not be destroyed when the component is unmounted.
24621
25377
  isPreRenderedComponent = false) => {
24622
25378
  const Component = React__default.forwardRef((props, forwardedRef) => {
25379
+ var _a, _b;
24623
25380
  const ref = React__default.useRef(null);
24624
25381
  const { className, style, ...embedProps } = props;
24625
25382
  const { viewConfig, listeners } = getViewPropsAndListeners(embedProps);
25383
+ const preRenderId = (_b = (_a = props.preRenderConfig) === null || _a === void 0 ? void 0 : _a.preRenderId) !== null && _b !== void 0 ? _b : props.preRenderId;
24626
25384
  const handleDestroy = (tsEmbed) => {
24627
25385
  // do not destroy if it is a preRender component
24628
25386
  if (isPreRenderedComponent)
24629
25387
  return;
24630
25388
  // if component is connected to a preRendered component
24631
- if (props.preRenderId) {
25389
+ if (preRenderId) {
24632
25390
  tsEmbed.hidePreRender();
24633
25391
  return;
24634
25392
  }
@@ -24639,7 +25397,7 @@ isPreRenderedComponent = false) => {
24639
25397
  };
24640
25398
  const handleDefaultRendering = (tsEmbed) => {
24641
25399
  // if component is connected to a preRendered component
24642
- if (props.preRenderId) {
25400
+ if (preRenderId) {
24643
25401
  tsEmbed.showPreRender();
24644
25402
  return;
24645
25403
  }
@@ -24888,7 +25646,7 @@ const PreRenderedConversationEmbed = componentFactory(SpotterEmbed$1, true);
24888
25646
  * const ref = useEmbedRef();
24889
25647
  * useEffect(() => {
24890
25648
  * ref.current.trigger(
24891
- * EmbedEvent.UpdateRuntimeFilter,
25649
+ * HostEvent.UpdateRuntimeFilters,
24892
25650
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
24893
25651
  * }, [])
24894
25652
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />