@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
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
@@ -396,7 +396,9 @@
396
396
  })(AuthType || (AuthType = {}));
397
397
  /**
398
398
  *
399
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
399
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
400
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
401
+ * V4 (Focused) home page experiences.
400
402
  *
401
403
  */
402
404
  exports.HomeLeftNavItem = void 0;
@@ -543,7 +545,9 @@
543
545
  * via `hiddenHomepageModules` and reordered via
544
546
  * `reorderedHomepageModules`.
545
547
  *
546
- * **Note**: This option is not supported in the classic (v1) experience.
548
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
549
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
550
+ * V4 (Focused) home page experiences.
547
551
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
548
552
  */
549
553
  exports.HomepageModule = void 0;
@@ -721,7 +725,7 @@
721
725
  * @returns nonFilteredColumns - The columns that were not filtered
722
726
  * @example
723
727
  * ```js
724
- * searchEmbed.on(EmbedEvent.DrillDown, {
728
+ * searchEmbed.on(EmbedEvent.Drilldown, {
725
729
  * points: {
726
730
  * clickedPoint,
727
731
  * selectedPoints: selectedPoint
@@ -782,7 +786,7 @@
782
786
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
783
787
  * @example
784
788
  * ```js
785
- * appEmbed.on(EmbedEvent.customAction, payload => {
789
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
786
790
  * const data = payload.data;
787
791
  * if (data.id === 'insert Custom Action ID here') {
788
792
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -1048,8 +1052,8 @@
1048
1052
  *
1049
1053
  * **Note**: This event is deprecated in v1.21.0.
1050
1054
  * To fire an event when a download action is initiated on a chart or table,
1051
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
1052
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
1055
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
1056
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
1053
1057
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1054
1058
  * @example
1055
1059
  * ```js
@@ -1099,10 +1103,10 @@
1099
1103
  * @example
1100
1104
  * ```js
1101
1105
  * //emit when action starts
1102
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
1106
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
1103
1107
  * console.log('download CSV', payload)}, {start: true })
1104
1108
  * //emit when action ends
1105
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
1109
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
1106
1110
  * console.log('download CSV', payload)})
1107
1111
  * ```
1108
1112
  */
@@ -1501,11 +1505,19 @@
1501
1505
  * Emitted when a user changes any filter on a Liveboard.
1502
1506
  * Returns filter type and name, column name and ID, and runtime
1503
1507
  * filter details.
1508
+ * The payload includes an optional `applicability` attribute indicating the
1509
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
1510
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1511
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1512
+ * is no `targetId`, since the filter applies to the whole Liveboard.
1513
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1514
+ * ThoughtSpot: 26.10.0.cl.
1504
1515
  * @example
1505
1516
  *
1506
1517
  * ```js
1507
1518
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
1508
1519
  * console.log('payload', payload);
1520
+ * // payload.data optionally includes applicability: { level, targetId }
1509
1521
  * })
1510
1522
  * ```
1511
1523
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -1697,9 +1709,17 @@
1697
1709
  /**
1698
1710
  * Emitted when parameter changes in an Answer
1699
1711
  * or Liveboard.
1712
+ * The payload includes an optional `applicability` attribute indicating the
1713
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
1714
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1715
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1716
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
1717
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1718
+ * ThoughtSpot: 26.10.0.cl.
1700
1719
  * ```js
1701
1720
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
1702
1721
  * console.log('payload', payload);
1722
+ * // payload.data optionally includes applicability: { level, targetId }
1703
1723
  * })
1704
1724
  * ```
1705
1725
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -2001,6 +2021,158 @@
2001
2021
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
2002
2022
  */
2003
2023
  EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
2024
+ /**
2025
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
2026
+ * to bracket the interaction. App→host counterpart of the
2027
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
2028
+ * @example
2029
+ * ```js
2030
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
2031
+ * // payload: { convId: string }
2032
+ * })
2033
+ * ```
2034
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2035
+ */
2036
+ EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
2037
+ /**
2038
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
2039
+ * to bracket the interaction.
2040
+ * @example
2041
+ * ```js
2042
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
2043
+ * // payload: { convId: string }
2044
+ * })
2045
+ * ```
2046
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2047
+ */
2048
+ EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
2049
+ /**
2050
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
2051
+ * share created). The host builds its own link from shareId/convId + its
2052
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
2053
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
2054
+ * the save resolves.
2055
+ * @example
2056
+ * ```js
2057
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
2058
+ * // payload: { convId: string, shareId: string,
2059
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
2060
+ * })
2061
+ * ```
2062
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2063
+ */
2064
+ EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
2065
+ /**
2066
+ * Emitted when access to a shared Spotter conversation is revoked
2067
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
2068
+ * and the share is deleted entirely.
2069
+ * @example
2070
+ * ```js
2071
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
2072
+ * // payload: { convId: string, shareId: string,
2073
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
2074
+ * })
2075
+ * ```
2076
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2077
+ */
2078
+ EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
2079
+ /**
2080
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
2081
+ * view). No shareId available viewer-side.
2082
+ * @example
2083
+ * ```js
2084
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
2085
+ * // payload: { convId: string, sourceConvId: string }
2086
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
2087
+ * })
2088
+ * ```
2089
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2090
+ */
2091
+ EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
2092
+ /**
2093
+ * Emitted when the user toggles the share-modal "include new messages since
2094
+ * last shared version" checkbox.
2095
+ * @example
2096
+ * ```js
2097
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
2098
+ * // payload: { convId: string, includeNewMessages: boolean }
2099
+ * })
2100
+ * ```
2101
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2102
+ */
2103
+ EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
2104
+ /**
2105
+ * Emitted when the user dismisses the stale-snapshot info banner via its
2106
+ * cross (distinct from the include-new-messages checkbox toggle).
2107
+ * @example
2108
+ * ```js
2109
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
2110
+ * // payload: { convId: string }
2111
+ * })
2112
+ * ```
2113
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2114
+ */
2115
+ EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
2116
+ /**
2117
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
2118
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
2119
+ * / `SpotterConversationShareRevoked` result events.
2120
+ * @example
2121
+ * ```js
2122
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
2123
+ * // payload: { convId: string }
2124
+ * })
2125
+ * ```
2126
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2127
+ */
2128
+ EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
2129
+ /**
2130
+ * Emitted when the share modal is dismissed via the Cancel button.
2131
+ * @example
2132
+ * ```js
2133
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
2134
+ * // payload: { convId: string }
2135
+ * })
2136
+ * ```
2137
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2138
+ */
2139
+ EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
2140
+ /**
2141
+ * Emitted when a recipient leaves the read-only shared view via the Exit
2142
+ * button.
2143
+ * @example
2144
+ * ```js
2145
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
2146
+ * // payload: { convId: string }
2147
+ * })
2148
+ * ```
2149
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2150
+ */
2151
+ EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
2152
+ /**
2153
+ * Emitted when a Spotter conversation is pinned.
2154
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2155
+ * @example
2156
+ * ```js
2157
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
2158
+ * console.log('Conversation pinned', payload);
2159
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
2160
+ * })
2161
+ * ```
2162
+ */
2163
+ EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
2164
+ /**
2165
+ * Emitted when a Spotter conversation is unpinned.
2166
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2167
+ * @example
2168
+ * ```js
2169
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
2170
+ * console.log('Conversation unpinned', payload);
2171
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
2172
+ * })
2173
+ * ```
2174
+ */
2175
+ EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
2004
2176
  /**
2005
2177
  * Emitted when a Spotter conversation is selected/clicked.
2006
2178
  * @example
@@ -2391,6 +2563,7 @@
2391
2563
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
2392
2564
  * console.log("iFrameURL", url);
2393
2565
  * ```
2566
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
2394
2567
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
2395
2568
  */
2396
2569
  HostEvent["GetIframeUrl"] = "GetIframeUrl";
@@ -2517,6 +2690,17 @@
2517
2690
  * name: string,
2518
2691
  * type: ATTRIBUTE/MEASURE,
2519
2692
  * dataType: INT64/CHAR/DATE }
2693
+ *
2694
+ * `applicability` - Optional. Scopes the filter to a specific target,
2695
+ * for example, a single Liveboard tab, so the panel for the correct
2696
+ * scoped filter is opened. Available from SDK: 1.53.0 |
2697
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
2698
+ *
2699
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
2700
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2701
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2702
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
2703
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2520
2704
  * @example
2521
2705
  * ```js
2522
2706
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -2529,6 +2713,14 @@
2529
2713
  * ```
2530
2714
  * @example
2531
2715
  * ```js
2716
+ * // Open a filter scoped to a specific Liveboard tab
2717
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
2718
+ * column: { columnId: '<column-GUID>' },
2719
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
2720
+ * });
2721
+ * ```
2722
+ * @example
2723
+ * ```js
2532
2724
  * // Open filter from search context
2533
2725
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2534
2726
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -2538,6 +2730,73 @@
2538
2730
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2539
2731
  */
2540
2732
  HostEvent["OpenFilter"] = "openFilter";
2733
+ /**
2734
+ * Open the add-filter modal of a Liveboard, the same dialog that the
2735
+ * *Add filter* button in the Liveboard edit header opens, so the host
2736
+ * app can start the add-filter flow from its own UI.
2737
+ *
2738
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2739
+ * Hiding the *Add filter* button with `hiddenActions:
2740
+ * [Action.AddFilter]` does not block this event, but disabling it with
2741
+ * `disabledActions` does.
2742
+ *
2743
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
2744
+ * existing filter, this event starts the creation of a new filter.
2745
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2746
+ * @example
2747
+ * ```js
2748
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
2749
+ * ```
2750
+ */
2751
+ HostEvent["OpenAddFilterModal"] = "openAddFilterModal";
2752
+ /**
2753
+ * Open the add-parameter panel of a Liveboard, the same panel that the
2754
+ * *Add parameter* button in the Liveboard edit header opens.
2755
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
2756
+ *
2757
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2758
+ * Hiding the *Add parameter* button with `hiddenActions:
2759
+ * [Action.AddParameter]` does not block this event, but disabling it
2760
+ * with `disabledActions` does.
2761
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2762
+ * @example
2763
+ * ```js
2764
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
2765
+ * ```
2766
+ */
2767
+ HostEvent["OpenAddParameterModal"] = "openAddParameterModal";
2768
+ /**
2769
+ * Open the parameter panel for a particular parameter on a Liveboard.
2770
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
2771
+ * @param - Includes the following keys:
2772
+ * - `parameter`: An object identifying the parameter to open, for
2773
+ * example, `{ parameterId: '<parameter-GUID>' }`.
2774
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
2775
+ * for example, a single Liveboard tab, so the panel for the correct
2776
+ * scoped parameter is opened. Includes the following attributes:
2777
+ *
2778
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
2779
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2780
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2781
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
2782
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2783
+ * @example
2784
+ * ```js
2785
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2786
+ * parameter: { parameterId: '<parameter-GUID>' }
2787
+ * });
2788
+ * ```
2789
+ * @example
2790
+ * ```js
2791
+ * // Open a parameter scoped to a specific group
2792
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2793
+ * parameter: { parameterId: '<parameter-GUID>' },
2794
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
2795
+ * });
2796
+ * ```
2797
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2798
+ */
2799
+ HostEvent["OpenParameter"] = "openParameter";
2541
2800
  /**
2542
2801
  * Add columns to the current search query.
2543
2802
  * @param - { columnIds: string[] }
@@ -2587,6 +2846,10 @@
2587
2846
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
2588
2847
  * data=>console.log(data))
2589
2848
  * ```
2849
+ * @returns data - Object with a `v2Content` string: the export request
2850
+ * payload for the current Liveboard.
2851
+ * @returns type - The passthrough event name,
2852
+ * `getExportRequestForCurrentPinboard`.
2590
2853
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
2591
2854
  */
2592
2855
  HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
@@ -2689,6 +2952,9 @@
2689
2952
  * }, ContextType.Spotter);
2690
2953
  * ```
2691
2954
  *
2955
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
2956
+ * @returns tabId - GUID of the tab within that Liveboard.
2957
+ * @returns vizId - GUID of the newly created visualization.
2692
2958
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2693
2959
  */
2694
2960
  HostEvent["Pin"] = "pin";
@@ -2727,13 +2993,13 @@
2727
2993
  * Trigger the **Manage schedule** action on an embedded Liveboard
2728
2994
  * @example
2729
2995
  * ```js
2730
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
2996
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
2731
2997
  * ```
2732
2998
  * @example
2733
2999
  * ```js
2734
3000
  * // Manage schedules from liveboard context
2735
3001
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2736
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
3002
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
2737
3003
  * ```
2738
3004
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2739
3005
  */
@@ -3178,6 +3444,7 @@
3178
3444
  * console.log(tml.answer);
3179
3445
  * });
3180
3446
  * ```
3447
+ * @returns The TML representation of the current Answer, as an object.
3181
3448
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
3182
3449
  * @important
3183
3450
  */
@@ -3602,13 +3869,13 @@
3602
3869
  /**
3603
3870
  * Get details of filters applied on the Liveboard.
3604
3871
  * Returns arrays containing Liveboard filter and runtime filter elements.
3605
- * Each Liveboard filter may include an `applicability` attribute
3872
+ * Each Liveboard filter includes an optional `applicability` attribute
3606
3873
  * indicating the scope of the filter. It contains a `level`
3607
3874
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3608
3875
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3609
3876
  * level there is no `targetId`, since the filter applies to the
3610
3877
  * whole Liveboard.
3611
- * The `applicability` attribute is available from SDK: 1.51.0 |
3878
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3612
3879
  * ThoughtSpot: 26.10.0.cl.
3613
3880
  * @example
3614
3881
  * ```js
@@ -3622,6 +3889,8 @@
3622
3889
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
3623
3890
  * console.log('filters', data);
3624
3891
  * ```
3892
+ * @returns liveboardFilters - Filters applied on the Liveboard.
3893
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
3625
3894
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3626
3895
  */
3627
3896
  HostEvent["GetFilters"] = "getFilters";
@@ -3651,7 +3920,7 @@
3651
3920
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
3652
3921
  *
3653
3922
  * `applicability` - Optional. Scopes the filter to a specific target,
3654
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
3923
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3655
3924
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3656
3925
  *
3657
3926
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3771,9 +4040,37 @@
3771
4040
  * console.log('tabs', tabDetails);
3772
4041
  * });
3773
4042
  * ```
4043
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
4044
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
4045
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
3774
4046
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3775
4047
  */
3776
4048
  HostEvent["GetTabs"] = "getTabs";
4049
+ /**
4050
+ * Get group details for the current Liveboard.
4051
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
4052
+ * @example
4053
+ * ```js
4054
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
4055
+ * console.log(
4056
+ * groupDetails // GroupDetails of current Liveboard
4057
+ * );
4058
+ * })
4059
+ * ```
4060
+ * @example
4061
+ * ```js
4062
+ * // Get groups from liveboard context
4063
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
4064
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
4065
+ * console.log('groups', groupDetails);
4066
+ * });
4067
+ * ```
4068
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
4069
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
4070
+ * @returns Groups - Group details, each with at least `id` and `name`.
4071
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4072
+ */
4073
+ HostEvent["GetGroups"] = "getGroups";
3777
4074
  /**
3778
4075
  * Set the visible tabs on a Liveboard.
3779
4076
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -3845,6 +4142,9 @@
3845
4142
  * // Alternative direct usage (not recommended)
3846
4143
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
3847
4144
  * ```
4145
+ * @returns session - Session identifier for the Answer, for use with the
4146
+ * `AnswerService`.
4147
+ * @returns embedAnswerData - Data backing the Answer, when available.
3848
4148
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
3849
4149
  */
3850
4150
  HostEvent["GetAnswerSession"] = "getAnswerSession";
@@ -3902,7 +4202,7 @@
3902
4202
  * - `value`: The value to set for the parameter.
3903
4203
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
3904
4204
  * - `applicability`: Optional. Scopes the parameter to a specific target,
3905
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
4205
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3906
4206
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3907
4207
  *
3908
4208
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3946,13 +4246,13 @@
3946
4246
  HostEvent["UpdateParameters"] = "UpdateParameters";
3947
4247
  /**
3948
4248
  * Triggers GetParameters to fetch the runtime Parameters.
3949
- * Each parameter may include an `applicability` attribute
4249
+ * Each parameter includes an optional `applicability` attribute
3950
4250
  * indicating the scope of the parameter. It contains a `level`
3951
4251
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3952
4252
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3953
4253
  * level there is no `targetId`, since the parameter applies to the
3954
4254
  * whole Liveboard.
3955
- * The `applicability` attribute is available from SDK: 1.51.0 |
4255
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3956
4256
  * ThoughtSpot: 26.10.0.cl.
3957
4257
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
3958
4258
  * ```js
@@ -3978,12 +4278,16 @@
3978
4278
  * console.log('parameters', parameters);
3979
4279
  * });
3980
4280
  * ```
4281
+ * @returns parameters - Parameters currently applied on the Liveboard.
3981
4282
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
3982
4283
  */
3983
4284
  HostEvent["GetParameters"] = "GetParameters";
3984
4285
  /**
3985
4286
  * Triggers an event to update a personalized view of a Liveboard.
3986
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
4287
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4288
+ * which additionally accepts a `viewName`, resets to the original view when
4289
+ * called with an empty payload, and reports an error when a named view
4290
+ * cannot be found.
3987
4291
  * ```js
3988
4292
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
3989
4293
  * ```
@@ -4001,10 +4305,15 @@
4001
4305
  HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
4002
4306
  /**
4003
4307
  * Triggers an event to update a personalized view of a Liveboard.
4308
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4309
+ * which additionally accepts a `viewName`, resets to the original view when
4310
+ * called with an empty payload, and reports an error when a named view
4311
+ * cannot be found.
4004
4312
  * ```js
4005
4313
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
4006
4314
  * ```
4007
4315
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
4316
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4008
4317
  */
4009
4318
  HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
4010
4319
  /**
@@ -4107,6 +4416,10 @@
4107
4416
  * description: "Generated from Spotter"
4108
4417
  * }, ContextType.Spotter);
4109
4418
  * ```
4419
+ * @returns answerId - GUID of the saved Answer.
4420
+ * @returns saveResponse - Raw response from the save operation.
4421
+ * @returns shareResponse - Raw response from the share operation, when the
4422
+ * Answer was also made discoverable.
4110
4423
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
4111
4424
  */
4112
4425
  HostEvent["SaveAnswer"] = "saveAnswer";
@@ -4220,6 +4533,36 @@
4220
4533
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
4221
4534
  */
4222
4535
  HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
4536
+ /**
4537
+ * Opens the Spotter share-conversation modal for the given conversation.
4538
+ * `conversationId` is **mandatory** — you must pass the id of the
4539
+ * conversation to share. Also no-op when sharing is disabled
4540
+ * (enableShareConversation off) or when already in the read-only shared view.
4541
+ * @example
4542
+ * ```js
4543
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
4544
+ * ```
4545
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4546
+ */
4547
+ HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
4548
+ /**
4549
+ * Closes the Spotter share-conversation modal. No-op if none is open.
4550
+ * @example
4551
+ * ```js
4552
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
4553
+ * ```
4554
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4555
+ */
4556
+ HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
4557
+ /**
4558
+ * Exits the read-only shared-conversation view.
4559
+ * @example
4560
+ * ```js
4561
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
4562
+ * ```
4563
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4564
+ */
4565
+ HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
4223
4566
  /**
4224
4567
  * Deletes the last prompt in spotter embed.
4225
4568
  * @example
@@ -4315,6 +4658,41 @@
4315
4658
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
4316
4659
  */
4317
4660
  HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
4661
+ /**
4662
+ * Pins a saved Spotter conversation so it floats to the top of the past
4663
+ * conversations sidebar. The `conversationId` of the conversation to pin is
4664
+ * required.
4665
+ *
4666
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4667
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4668
+ * instance.
4669
+ *
4670
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4671
+ * @example
4672
+ * ```js
4673
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
4674
+ * conversationId: '<conversation-id>',
4675
+ * });
4676
+ * ```
4677
+ */
4678
+ HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
4679
+ /**
4680
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
4681
+ * conversation to unpin is required.
4682
+ *
4683
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4684
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4685
+ * instance.
4686
+ *
4687
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4688
+ * @example
4689
+ * ```js
4690
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
4691
+ * conversationId: '<conversation-id>',
4692
+ * });
4693
+ * ```
4694
+ */
4695
+ HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
4318
4696
  /**
4319
4697
  * @hidden
4320
4698
  * Get the current context of the embedded page.
@@ -4523,6 +4901,7 @@
4523
4901
  Param["NumberFormatLocale"] = "numberFormatLocale";
4524
4902
  Param["CurrencyFormat"] = "currencyFormat";
4525
4903
  Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
4904
+ Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
4526
4905
  Param["IsFullAppEmbed"] = "isFullAppEmbed";
4527
4906
  Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
4528
4907
  Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
@@ -4546,6 +4925,7 @@
4546
4925
  Param["PrimaryAction"] = "primaryAction";
4547
4926
  Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
4548
4927
  Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
4928
+ Param["LiveboardGutter"] = "liveboardGutter";
4549
4929
  Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
4550
4930
  Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
4551
4931
  Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
@@ -4554,9 +4934,11 @@
4554
4934
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
4555
4935
  Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
4556
4936
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
4937
+ Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
4557
4938
  Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
4558
4939
  Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
4559
4940
  Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
4941
+ Param["ShowSpotterRadiance"] = "showSpotterRadiance";
4560
4942
  Param["DefaultQueryMode"] = "defaultQueryMode";
4561
4943
  Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
4562
4944
  Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
@@ -4577,14 +4959,19 @@
4577
4959
  Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
4578
4960
  Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
4579
4961
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4962
+ Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4963
+ Param["SpotterDataSources"] = "spotterDataSources";
4964
+ Param["AnalystId"] = "analystId";
4965
+ Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
4580
4966
  })(Param || (Param = {}));
4581
4967
  /**
4582
4968
  * ThoughtSpot application pages include actions and menu commands
4583
4969
  * for various user-initiated operations. These actions are represented
4584
4970
  * as enumeration members in the SDK. To control actions in the embedded view:
4585
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
4586
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
4587
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
4971
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
4972
+ * (user can see but not click). - hiddenActions — the action is completely removed from
4973
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
4974
+ * are shown; all others are hidden.
4588
4975
  *
4589
4976
  * Use disabledActions to disable (gray out) an action.
4590
4977
  * Use hiddenActions to hide (fully remove) an action.
@@ -4638,6 +5025,17 @@
4638
5025
  * ```
4639
5026
  */
4640
5027
  Action["SaveAsView"] = "saveAsView";
5028
+ /**
5029
+ * The **EditInputTable** action on a Liveboard
5030
+ * page. Allows users to edit an input table used in an Answer directly from
5031
+ * a Liveboard.
5032
+ * @example
5033
+ * ```js
5034
+ * disabledActions: [Action.EditInputTable]
5035
+ * ```
5036
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5037
+ */
5038
+ Action["EditInputTable"] = "editInputTable";
4641
5039
  /**
4642
5040
  * The **Make a copy** action on a Liveboard or Answer
4643
5041
  * page. Creates a copy of the Liveboard.
@@ -5841,6 +6239,19 @@
5841
6239
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
5842
6240
  */
5843
6241
  Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
6242
+ /**
6243
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
6244
+ * including filter, parameter, and cross-filter chips at the liveboard,
6245
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
6246
+ *
6247
+ * @example
6248
+ * ```js
6249
+ * hiddenActions: [Action.AllLiveboardFilters]
6250
+ * disabledActions: [Action.AllLiveboardFilters]
6251
+ * ```
6252
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6253
+ */
6254
+ Action["AllLiveboardFilters"] = "allLiveboardFilters";
5844
6255
  /**
5845
6256
  * The **Data model instructions** button on the Spotter interface.
5846
6257
  * Allows opening the data model instructions modal.
@@ -5942,6 +6353,10 @@
5942
6353
  * The **Add to Coaching** feature allows adding reference questions and
5943
6354
  * business terms to improve Spotter’s responses. This feature is generally available
5944
6355
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
6356
+ *
6357
+ * This action governs both the answer-card **Add to memory** CTA and its
6358
+ * Spotter 3 successor, the response-footer **Remember this** CTA
6359
+ * (they are mutually exclusive).
5945
6360
  * @example
5946
6361
  * ```js
5947
6362
  * hiddenAction: [Action.InConversationTraining]
@@ -6176,6 +6591,89 @@
6176
6591
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6177
6592
  */
6178
6593
  Action["SpotterChatRename"] = "spotterChatRename";
6594
+ /**
6595
+ * Controls visibility and disable state of the Spotter conversation Share
6596
+ * button in the chat header. Only takes effect once sharing is enabled
6597
+ * (enableShareConversation on).
6598
+ * @example
6599
+ * ```js
6600
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
6601
+ * ```
6602
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6603
+ */
6604
+ Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
6605
+ /**
6606
+ * Controls visibility and disable state of the Share item in the Spotter
6607
+ * conversation history (sidebar) edit menu. Independent of the header button
6608
+ * above, so a host can show Share in one entry point and hide it in the other.
6609
+ * @example
6610
+ * ```js
6611
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
6612
+ * ```
6613
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6614
+ */
6615
+ Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
6616
+ /**
6617
+ * Controls visibility of the entire read-only shared-conversation data-access
6618
+ * banner shown when a recipient opens a shared view. Hide-only.
6619
+ * @example
6620
+ * ```js
6621
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
6622
+ * ```
6623
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6624
+ */
6625
+ Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
6626
+ /**
6627
+ * Controls visibility and disable state of the cross/close button on the
6628
+ * read-only shared-conversation data-access banner (keeps the banner itself).
6629
+ * @example
6630
+ * ```js
6631
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
6632
+ * ```
6633
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6634
+ */
6635
+ Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
6636
+ /**
6637
+ * Controls visibility and disable state of the Exit button in the read-only
6638
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
6639
+ * host event.
6640
+ * @example
6641
+ * ```js
6642
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
6643
+ * ```
6644
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6645
+ */
6646
+ Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
6647
+ /**
6648
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
6649
+ * to the current moment…"). Hide-only.
6650
+ * @example
6651
+ * ```js
6652
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
6653
+ * ```
6654
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6655
+ */
6656
+ Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
6657
+ /**
6658
+ * Controls visibility and disable state of the share-modal "include new
6659
+ * messages since last shared version" checkbox.
6660
+ * @example
6661
+ * ```js
6662
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
6663
+ * ```
6664
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6665
+ */
6666
+ Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
6667
+ /**
6668
+ * Controls visibility and disable state of the cross on the share-modal
6669
+ * stale-snapshot info banner.
6670
+ * @example
6671
+ * ```js
6672
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
6673
+ * ```
6674
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6675
+ */
6676
+ Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
6179
6677
  /**
6180
6678
  * Controls visibility and disable state of the delete action
6181
6679
  * in the Spotter conversation edit menu.
@@ -6186,6 +6684,16 @@
6186
6684
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6187
6685
  */
6188
6686
  Action["SpotterChatDelete"] = "spotterChatDelete";
6687
+ /**
6688
+ * Controls visibility and disable state of the pin/unpin action
6689
+ * in the Spotter conversation edit menu.
6690
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6691
+ * @example
6692
+ * ```js
6693
+ * disabledActions: [Action.SpotterChatPin]
6694
+ * ```
6695
+ */
6696
+ Action["SpotterChatPin"] = "spotterChatPin";
6189
6697
  /**
6190
6698
  * Controls visibility and disable state of the documentation/best practices
6191
6699
  * link in the Spotter sidebar footer.
@@ -6229,6 +6737,56 @@
6229
6737
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
6230
6738
  */
6231
6739
  Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
6740
+ /**
6741
+ * The **Basic Search** starter prompt pill.
6742
+ *
6743
+ * Starter prompt pills are the row of category buttons shown above the
6744
+ * Spotter chat input before a conversation starts. They give a new user
6745
+ * ready-made questions to click instead of typing one from scratch, and
6746
+ * disappear once the conversation begins. There are three, one per action
6747
+ * below.
6748
+ *
6749
+ * Clicking this pill opens a card of suggested simple questions; picking one
6750
+ * submits it to Spotter right away. Visible by default, and hidden along
6751
+ * with the other pills when the surface itself is off (see
6752
+ * {@link SpotterChatViewConfig.starterPrompts}).
6753
+ * @example
6754
+ * ```js
6755
+ * hiddenActions: [Action.QuickSearchPill]
6756
+ * ```
6757
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6758
+ */
6759
+ Action["QuickSearchPill"] = "quickSearchPill";
6760
+ /**
6761
+ * The **Deep Analysis** starter prompt pill, next to
6762
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6763
+ *
6764
+ * Clicking it opens a card of suggested investigative questions ("why did
6765
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
6766
+ * rather than submitting immediately, so the user can edit it first.
6767
+ * Visible by default.
6768
+ * @example
6769
+ * ```js
6770
+ * hiddenActions: [Action.DeepAnalysisPill]
6771
+ * ```
6772
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6773
+ */
6774
+ Action["DeepAnalysisPill"] = "deepAnalysisPill";
6775
+ /**
6776
+ * The **Data Literacy** starter prompt pill, next to
6777
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6778
+ *
6779
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
6780
+ * that describes the data the model can answer over, helping a user who does
6781
+ * not yet know what is in the data source. The prompt text always comes from
6782
+ * ThoughtSpot, so only its label is customizable. Visible by default.
6783
+ * @example
6784
+ * ```js
6785
+ * hiddenActions: [Action.DataLiteracyPill]
6786
+ * ```
6787
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6788
+ */
6789
+ Action["DataLiteracyPill"] = "dataLiteracyPill";
6232
6790
  /**
6233
6791
  * The **Include current period** checkbox for date filters.
6234
6792
  * Controls the visibility and availability of the option to include
@@ -6377,6 +6935,38 @@
6377
6935
  * ```
6378
6936
  */
6379
6937
  Action["SpotterAnalystSidebar"] = "spotterAnalystSidebar";
6938
+ /**
6939
+ * Controls visibility and disable state of the analyst list
6940
+ * ("Show all") in the Spotter Analyst interface.
6941
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6942
+ * @example
6943
+ * ```js
6944
+ * hiddenActions: [Action.SpotterAnalystList]
6945
+ * disabledActions: [Action.SpotterAnalystList]
6946
+ * ```
6947
+ */
6948
+ Action["SpotterAnalystList"] = "spotterAnalystList";
6949
+ /**
6950
+ * Controls visibility and disable state of the default Spotter analyst
6951
+ * entry in the Spotter Analyst interface.
6952
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6953
+ * @example
6954
+ * ```js
6955
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
6956
+ * disabledActions: [Action.SpotterDefaultAnalyst]
6957
+ * ```
6958
+ */
6959
+ Action["SpotterDefaultAnalyst"] = "spotterDefaultAnalyst";
6960
+ /**
6961
+ * The **Spotter** button in the Liveboard header.
6962
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6963
+ * @example
6964
+ * ```js
6965
+ * hiddenActions: [Action.SpotterOnLiveboard]
6966
+ * disabledActions: [Action.SpotterOnLiveboard]
6967
+ * ```
6968
+ */
6969
+ Action["SpotterOnLiveboard"] = "spotterOnLiveboard";
6380
6970
  })(exports.Action || (exports.Action = {}));
6381
6971
  var PrefetchFeatures;
6382
6972
  (function (PrefetchFeatures) {
@@ -6844,7 +7434,7 @@
6844
7434
  TableContentDensity["Compact"] = "COMPACT";
6845
7435
  })(TableContentDensity || (TableContentDensity = {}));
6846
7436
 
6847
- var version$1="1.50.1";var pkg = {version:version$1};
7437
+ var version$1="1.51.0-test";var pkg = {version:version$1};
6848
7438
 
6849
7439
  const { version } = pkg;
6850
7440
 
@@ -6920,7 +7510,6 @@
6920
7510
 
6921
7511
  const ERROR_MESSAGE = {
6922
7512
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
6923
- SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
6924
7513
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6925
7514
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6926
7515
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
@@ -8489,6 +9078,7 @@
8489
9078
  UIPassthroughEvent["GetParameters"] = "getParameters";
8490
9079
  UIPassthroughEvent["GetTML"] = "getTML";
8491
9080
  UIPassthroughEvent["GetTabs"] = "getTabs";
9081
+ UIPassthroughEvent["GetGroups"] = "getGroups";
8492
9082
  UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
8493
9083
  })(UIPassthroughEvent || (UIPassthroughEvent = {}));
8494
9084
 
@@ -12373,7 +12963,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12373
12963
  * The default CSS dimensions of the embedded app
12374
12964
  */
12375
12965
  const DEFAULT_EMBED_WIDTH = '100%';
12376
- const DEFAULT_EMBED_HEIGHT = '100%';
12966
+ const DEFAULT_EMBED_HEIGHT = '100%';
12967
+ const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
12377
12968
 
12378
12969
  var Config = {
12379
12970
  DEBUG: false,
@@ -18528,7 +19119,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
18528
19119
  VISUAL_SDK_RENDER_FAILED: 'visual-sdk-render-failed',
18529
19120
  VISUAL_SDK_TRIGGER: 'visual-sdk-trigger',
18530
19121
  VISUAL_SDK_ON: 'visual-sdk-on',
18531
- VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create'};
19122
+ VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
19123
+ VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
19124
+ VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
19125
+ VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
19126
+ VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
19127
+ };
18532
19128
  let isMixpanelInitialized = false;
18533
19129
  let eventQueue = [];
18534
19130
  /**
@@ -19903,7 +20499,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
19903
20499
  /**
19904
20500
  * Initializes the Visual Embed SDK globally and perform
19905
20501
  * authentication if applicable. This function needs to be called before any ThoughtSpot
19906
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
20502
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
19907
20503
  * to actually embed. That is handled internally.
19908
20504
  * @param embedConfig The configuration object containing ThoughtSpot host,
19909
20505
  * authentication mechanism and so on.
@@ -20327,6 +20923,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20327
20923
  [exports.HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
20328
20924
  [exports.HostEvent.GetTML]: UIPassthroughEvent.GetTML,
20329
20925
  [exports.HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
20926
+ [exports.HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
20330
20927
  [exports.HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
20331
20928
  };
20332
20929
  class HostEventClient {
@@ -20729,7 +21326,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20729
21326
  */
20730
21327
  this.shouldEncodeUrlQueryParams = false;
20731
21328
  this.defaultHiddenActions = [exports.Action.ReportError];
20732
- this.preRenderContainerEl = null;
21329
+ this.preRenderContainerEl = document.body;
20733
21330
  this.containerScrollListener = null;
20734
21331
  /**
20735
21332
  * Handler for fullscreen change events
@@ -21417,11 +22014,27 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21417
22014
  iFrame.name = 'ThoughtSpot Embedded Analytics';
21418
22015
  return iFrame;
21419
22016
  }
22017
+ /**
22018
+ * Returns a merged {@link PreRenderConfig} object where each shared key
22019
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
22020
+ * backward compatibility.
22021
+ */
22022
+ getPreRenderConfig() {
22023
+ var _a, _b, _c, _d;
22024
+ const viewCfg = this.viewConfig;
22025
+ const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
22026
+ return {
22027
+ ...preRenderCfg,
22028
+ preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
22029
+ preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
22030
+ doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
22031
+ };
22032
+ }
21420
22033
  /**
21421
22034
  * Returns true if this embed instance is configured for pre-rendering.
21422
22035
  */
21423
22036
  isPreRenderEmbed() {
21424
- return !!this.viewConfig.preRenderId;
22037
+ return !!this.getPreRenderConfig().preRenderId;
21425
22038
  }
21426
22039
  handleInsertionIntoDOM(child) {
21427
22040
  if (this.isPreRenderEmbed()) {
@@ -21557,6 +22170,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21557
22170
  this.setIframeElement(this.preRenderChild);
21558
22171
  }
21559
22172
  this.isRendered = true;
22173
+ this.inheritPreRenderContainer();
21560
22174
  }
21561
22175
  return this.isPreRenderConnected();
21562
22176
  }
@@ -21607,7 +22221,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21607
22221
  */
21608
22222
  resolvePreRenderContainerTarget() {
21609
22223
  var _a;
21610
- const containerConfig = this.viewConfig.preRenderContainer;
22224
+ const containerConfig = this.getPreRenderConfig().preRenderContainer;
21611
22225
  let container = null;
21612
22226
  if (typeof containerConfig === 'string') {
21613
22227
  try {
@@ -21625,15 +22239,35 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21625
22239
  }
21626
22240
  return (_a = container) !== null && _a !== void 0 ? _a : document.body;
21627
22241
  }
22242
+ inheritPreRenderContainer() {
22243
+ var _a;
22244
+ const preRenderedObject = this.getPreRenderObj();
22245
+ if (!preRenderedObject || preRenderedObject === this) {
22246
+ return;
22247
+ }
22248
+ const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
22249
+ if (this.getPreRenderConfig().preRenderContainer
22250
+ && this.resolvePreRenderContainerTarget() !== ownerContainer) {
22251
+ logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
22252
+ + 'the one passed here is ignored. Set it on the PreRender component instead.');
22253
+ }
22254
+ this.preRenderContainerEl = ownerContainer;
22255
+ this.applyPreRenderContainerPositioning();
22256
+ }
22257
+ getCustomPreRenderContainer() {
22258
+ const container = this.preRenderContainerEl;
22259
+ return container && container !== document.body ? container : null;
22260
+ }
21628
22261
  /**
21629
- * Makes the container a positioning context for the absolutely positioned
21630
- * wrapper, stashing the original inline `position` on the element (once) so
21631
- * destroy() can restore it exactly, leaving no trace. Recording it on the
21632
- * element rather than per-instance lets the override be reverted even when
21633
- * embeds share the same container.
22262
+ * Makes the resolved container a positioning context for the absolutely
22263
+ * positioned wrapper, stashing the original inline `position` on the element
22264
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
22265
+ * on the element rather than per-instance lets the override be reverted even
22266
+ * when embeds share the same container.
21634
22267
  */
21635
- applyPreRenderContainerPositioning(container) {
21636
- if (container === document.body) {
22268
+ applyPreRenderContainerPositioning() {
22269
+ const container = this.getCustomPreRenderContainer();
22270
+ if (!container) {
21637
22271
  return;
21638
22272
  }
21639
22273
  const pos = window.getComputedStyle(container).position;
@@ -21676,11 +22310,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21676
22310
  resolved.addEventListener('scroll', this.containerScrollListener);
21677
22311
  }
21678
22312
  }
21679
- this.applyPreRenderContainerPositioning(resolved);
22313
+ this.preRenderContainerEl = resolved;
22314
+ this.applyPreRenderContainerPositioning();
21680
22315
  if (wrapper.parentNode !== resolved) {
21681
22316
  resolved.appendChild(wrapper);
21682
22317
  }
21683
- this.preRenderContainerEl = resolved;
21684
22318
  }
21685
22319
  insertIntoDOMForPreRender(child) {
21686
22320
  const preRenderChild = this.createPreRenderChild(child);
@@ -21703,7 +22337,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21703
22337
  }
21704
22338
  const targetContainer = this.resolvePreRenderContainerTarget();
21705
22339
  this.preRenderContainerEl = targetContainer;
21706
- this.applyPreRenderContainerPositioning(targetContainer);
22340
+ this.applyPreRenderContainerPositioning();
21707
22341
  targetContainer.appendChild(preRenderWrapper);
21708
22342
  }
21709
22343
  insertIntoDOM(child) {
@@ -22031,6 +22665,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22031
22665
  * @param args
22032
22666
  */
22033
22667
  async render() {
22668
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
22669
+ embedComponentType: this.viewConfig.embedComponentType,
22670
+ });
22034
22671
  if (!getIsInitCalled()) {
22035
22672
  logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
22036
22673
  }
@@ -22102,7 +22739,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22102
22739
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
22103
22740
  */
22104
22741
  async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
22105
- if (!this.viewConfig.preRenderId) {
22742
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
22743
+ showPreRenderByDefault,
22744
+ replaceExistingPreRender,
22745
+ });
22746
+ if (!this.getPreRenderConfig().preRenderId) {
22106
22747
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22107
22748
  return this;
22108
22749
  }
@@ -22158,7 +22799,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22158
22799
  }
22159
22800
  // Drop our reference up front so a destroyed embed never pins a
22160
22801
  // detached container in memory; restoration uses the local handle.
22161
- this.preRenderContainerEl = null;
22802
+ this.preRenderContainerEl = document.body;
22162
22803
  const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
22163
22804
  if (originalPosition === undefined) {
22164
22805
  // We never overrode this container's position; nothing to restore.
@@ -22181,9 +22822,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22181
22822
  if (!this.containerScrollListener) {
22182
22823
  return;
22183
22824
  }
22184
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22185
- ? this.preRenderContainerEl
22186
- : null;
22825
+ const customContainer = this.getCustomPreRenderContainer();
22187
22826
  customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
22188
22827
  this.containerScrollListener = null;
22189
22828
  }
@@ -22279,9 +22918,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22279
22918
  */
22280
22919
  async showPreRender() {
22281
22920
  var _a, _b;
22921
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22922
+ preRenderId: this.getPreRenderConfig().preRenderId,
22923
+ embedComponentType: this.viewConfig.embedComponentType,
22924
+ });
22282
22925
  if (this.shouldWaitForRenderPromise)
22283
22926
  await this.isReadyForRenderPromise;
22284
- if (!this.viewConfig.preRenderId) {
22927
+ if (!this.getPreRenderConfig().preRenderId) {
22285
22928
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22286
22929
  return this;
22287
22930
  }
@@ -22312,14 +22955,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22312
22955
  (_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
22313
22956
  this.hostElement.appendChild(this.insertedDomEl);
22314
22957
  this.syncPreRenderStyle();
22315
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22316
- ? this.preRenderContainerEl
22317
- : null;
22958
+ const customContainer = this.getCustomPreRenderContainer();
22318
22959
  if (customContainer && !this.containerScrollListener) {
22319
22960
  this.containerScrollListener = () => this.syncPreRenderStyle();
22320
22961
  customContainer.addEventListener('scroll', this.containerScrollListener);
22321
22962
  }
22322
- if (!this.viewConfig.doNotTrackPreRenderSize) {
22963
+ if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
22323
22964
  const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
22324
22965
  this.resizeObserver = new ResizeObserver((entries) => {
22325
22966
  entries.forEach((entry) => {
@@ -22361,13 +23002,15 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22361
23002
  logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
22362
23003
  return;
22363
23004
  }
23005
+ if (!this.getPreRenderPlaceHolderElement().isConnected) {
23006
+ logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
23007
+ return;
23008
+ }
22364
23009
  // Self-heal if the resolved container was remounted/detached, so we
22365
23010
  // never measure a stale node (which would collapse the wrapper).
22366
23011
  this.reconcilePreRenderContainer();
22367
23012
  const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
22368
- const containerEl = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22369
- ? this.preRenderContainerEl
22370
- : null;
23013
+ const containerEl = this.getCustomPreRenderContainer();
22371
23014
  const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
22372
23015
  const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
22373
23016
  const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
@@ -22384,16 +23027,21 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22384
23027
  * If the component is not preRendered, it issues a warning.
22385
23028
  */
22386
23029
  hidePreRender() {
23030
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
23031
+ preRenderId: this.getPreRenderConfig().preRenderId,
23032
+ embedComponentType: this.viewConfig.embedComponentType,
23033
+ });
22387
23034
  logger$3.debug('HidePreRender Called');
22388
23035
  if (!this.isPreRenderConnected()) {
22389
23036
  // if the embed component is not preRendered , nothing to hide
22390
23037
  logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
22391
23038
  return;
22392
23039
  }
23040
+ const { zIndex } = this.getPreRenderConfig();
22393
23041
  const preRenderHideStyles = {
22394
23042
  opacity: '0',
22395
23043
  pointerEvents: 'none',
22396
- zIndex: '-1000',
23044
+ zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
22397
23045
  position: 'absolute',
22398
23046
  top: '0',
22399
23047
  left: '0',
@@ -22418,10 +23066,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22418
23066
  * @property {string} child - The HTML element ID for the PreRender child.
22419
23067
  */
22420
23068
  getPreRenderIds() {
23069
+ const preRenderId = this.getPreRenderConfig().preRenderId;
22421
23070
  return {
22422
- wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${this.viewConfig.preRenderId}`,
22423
- child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
22424
- placeHolder: `tsEmbed-pre-render-placeholder-${this.viewConfig.preRenderId}`,
23071
+ wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
23072
+ child: `tsEmbed-pre-render-child-${preRenderId}`,
23073
+ placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
22425
23074
  };
22426
23075
  }
22427
23076
  /**
@@ -22863,6 +23512,31 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22863
23512
  ...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
22864
23513
  },
22865
23514
  };
23515
+ }
23516
+ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23517
+ const { spotterShareConversationConfig } = viewConfig;
23518
+ if (!spotterShareConversationConfig)
23519
+ return initData;
23520
+ return {
23521
+ ...initData,
23522
+ embedParams: {
23523
+ ...(initData.embedParams || {}),
23524
+ spotterShareConversationConfig,
23525
+ },
23526
+ };
23527
+ }
23528
+ function buildStarterPromptsAppInitData(initData, viewConfig) {
23529
+ var _a;
23530
+ const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
23531
+ if (!starterPrompts)
23532
+ return initData;
23533
+ return {
23534
+ ...initData,
23535
+ embedParams: {
23536
+ ...(initData.embedParams || {}),
23537
+ starterPrompts,
23538
+ },
23539
+ };
22866
23540
  }
22867
23541
 
22868
23542
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -22928,6 +23602,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22928
23602
  * Collections listing page
22929
23603
  */
22930
23604
  Page["Collections"] = "collections";
23605
+ /**
23606
+ * Liveboard schedules listing page
23607
+ */
23608
+ Page["LiveboardSchedules"] = "liveboard-schedules";
22931
23609
  })(exports.Page || (exports.Page = {}));
22932
23610
  /**
22933
23611
  * Define the initial state of column custom group accordions
@@ -22976,6 +23654,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22976
23654
  /**
22977
23655
  * Modular (v2) introduces the updated Modular Home Experience.
22978
23656
  * It serves as the foundational version of the home page.
23657
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
23658
+ * {@link HomePage.Focused} (V4) instead.
23659
+ * @deprecated V1 and V2 home page experiences are deprecated.
22979
23660
  */
22980
23661
  HomePage["Modular"] = "v2";
22981
23662
  /**
@@ -23070,6 +23751,15 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23070
23751
  this.setIFrameHeight(frameHeight || this.defaultHeight);
23071
23752
  };
23072
23753
  if (this.viewConfig.fullHeight === true) {
23754
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
23755
+ this.viewConfig.lazyLoadingForFullHeight = true;
23756
+ }
23757
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
23758
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
23759
+ }
23760
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
23761
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
23762
+ }
23073
23763
  this.on(exports.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23074
23764
  this.on(exports.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23075
23765
  this.on(exports.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23091,14 +23781,20 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23091
23781
  async getAppInitData() {
23092
23782
  const defaultAppInitData = await super.getAppInitData();
23093
23783
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
23094
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23784
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23785
+ const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
23786
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
23095
23787
  }
23096
23788
  /**
23097
23789
  * Constructs a map of parameters to be passed on to the
23098
23790
  * embedded Liveboard or visualization.
23099
23791
  */
23100
23792
  getEmbedParams() {
23101
- 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;
23793
+ const params = this.getEmbedParamsObject();
23794
+ return getQueryParamString(params, true);
23795
+ }
23796
+ getEmbedParamsObject() {
23797
+ 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;
23102
23798
  let params = {};
23103
23799
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
23104
23800
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -23108,34 +23804,51 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23108
23804
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
23109
23805
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
23110
23806
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23111
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23807
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
23808
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23809
+ }
23112
23810
  if (newChartsLibrary !== undefined) {
23113
23811
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23114
23812
  }
23115
23813
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23116
23814
  params[Param.IsFullAppEmbed] = true;
23117
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23118
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
23815
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23816
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23817
+ }
23818
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
23819
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
23820
+ isEnhancedFilterInteractivityEnabled;
23821
+ }
23119
23822
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23120
23823
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23121
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23824
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
23825
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23826
+ }
23122
23827
  if (isUnifiedSearchExperienceEnabled !== undefined) {
23123
23828
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
23124
23829
  }
23125
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23830
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
23831
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23832
+ }
23126
23833
  params = this.getBaseQueryParams(params);
23127
23834
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23128
23835
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23129
23836
  }
23837
+ if (!isUndefined$1(showSpotterRadiance)) {
23838
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23839
+ }
23130
23840
  if (!isUndefined$1(defaultQueryMode)) {
23131
23841
  params[Param.DefaultQueryMode] = defaultQueryMode;
23132
23842
  }
23133
23843
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23134
23844
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23135
23845
  }
23846
+ if (spotterDataSources && spotterDataSources.length) {
23847
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
23848
+ }
23136
23849
  // Handle spotterChatConfig params
23137
23850
  if (spotterChatConfig) {
23138
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
23851
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23139
23852
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23140
23853
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23141
23854
  if (spotterFileUploadEnabled !== undefined) {
@@ -23144,10 +23857,16 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23144
23857
  if (enableStarterPrompts !== undefined) {
23145
23858
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23146
23859
  }
23860
+ if (openSpotterOnLiveboardByDefault !== undefined) {
23861
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
23862
+ }
23147
23863
  if (spotterFileUploadFileTypes !== undefined) {
23148
23864
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23149
23865
  }
23150
23866
  }
23867
+ if (!isUndefined$1(updatedSpotterExperience)) {
23868
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23869
+ }
23151
23870
  if (hideObjectSearch) {
23152
23871
  params[Param.HideObjectSearch] = !!hideObjectSearch;
23153
23872
  }
@@ -23184,6 +23903,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23184
23903
  if (enable2ColumnLayout !== undefined) {
23185
23904
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23186
23905
  }
23906
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
23907
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
23908
+ }
23187
23909
  if (enableAskSage) {
23188
23910
  params[Param.enableAskSage] = enableAskSage;
23189
23911
  }
@@ -23196,6 +23918,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23196
23918
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23197
23919
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23198
23920
  }
23921
+ if (liveboardGutter !== undefined) {
23922
+ params[Param.LiveboardGutter] = liveboardGutter;
23923
+ }
23199
23924
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23200
23925
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23201
23926
  }
@@ -23214,6 +23939,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23214
23939
  if (isCentralizedLiveboardFilterUXEnabled != undefined) {
23215
23940
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23216
23941
  }
23942
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23943
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23944
+ }
23217
23945
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23218
23946
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23219
23947
  }
@@ -23229,7 +23957,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23229
23957
  }
23230
23958
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23231
23959
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
23232
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23233
23960
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
23234
23961
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23235
23962
  if (dataPanelCustomGroupsAccordionInitialState
@@ -23244,33 +23971,15 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23244
23971
  if (modularHomeExperience !== undefined) {
23245
23972
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23246
23973
  }
23247
- // Set navigation to v2 by default to avoid problems like the app
23248
- // switcher (9-dot menu) not showing when v3 navigation is turned on
23249
- // at the cluster level.
23250
- // To use v3 navigation, we must manually set the discoveryExperience
23251
- // settings.
23252
- params[Param.NavigationVersion] = 'v2';
23253
- // Set homePageVersion to v2 by default to reset the LD flag value
23254
- // for the homepageVersion.
23255
- params[Param.HomepageVersion] = 'v2';
23974
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
23975
+ // default experience, Need to send navigationVersion=v3 and
23976
+ // homepageVersion=v3 even when the no discoveryExperience /
23977
+ // modularHomeExperience config is set. Without these
23978
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
23979
+ // home page, so the defaults must be sent explicitly from the SDK.
23980
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
23981
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23256
23982
  if (discoveryExperience) {
23257
- // primaryNavbarVersion v3 will enabled the new left navigation
23258
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
23259
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
23260
- // Enable the modularHomeExperience when Sliding is enabled.
23261
- params[Param.ModularHomeExperienceEnabled] = true;
23262
- }
23263
- // homePage v2 will enable the modular home page
23264
- // and it will override the modularHomeExperience value
23265
- if (discoveryExperience.homePage === HomePage.Modular) {
23266
- params[Param.ModularHomeExperienceEnabled] = true;
23267
- }
23268
- // ModularWithStylingChanges (v3) introduces the styling changes
23269
- // to the Modular Homepage.
23270
- // v3 will be the base version of homePageVersion.
23271
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
23272
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23273
- }
23274
23983
  // listPageVersion can be changed to v2 or v3
23275
23984
  if (discoveryExperience.listPageVersion !== undefined) {
23276
23985
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
@@ -23285,8 +23994,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23285
23994
  }
23286
23995
  }
23287
23996
  }
23288
- const queryParams = getQueryParamString(params, true);
23289
- return queryParams;
23997
+ return params;
23290
23998
  }
23291
23999
  /**
23292
24000
  * Constructs the URL of the ThoughtSpot app page to be rendered.
@@ -23323,6 +24031,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23323
24031
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
23324
24032
  case exports.Page.Collections:
23325
24033
  return 'collections';
24034
+ case exports.Page.LiveboardSchedules:
24035
+ return 'home/liveboard-schedules';
23326
24036
  case exports.Page.Home:
23327
24037
  default:
23328
24038
  return 'home';
@@ -23608,6 +24318,15 @@ query GetEurekaVizSnapshots(
23608
24318
  logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
23609
24319
  'Using full height with vizId might lead to unexpected behavior.');
23610
24320
  }
24321
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
24322
+ this.viewConfig.lazyLoadingForFullHeight = true;
24323
+ }
24324
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
24325
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
24326
+ }
24327
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
24328
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
24329
+ }
23611
24330
  this.on(exports.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23612
24331
  this.on(exports.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23613
24332
  this.on(exports.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23616,7 +24335,8 @@ query GetEurekaVizSnapshots(
23616
24335
  }
23617
24336
  async getAppInitData() {
23618
24337
  const defaultAppInitData = await super.getAppInitData();
23619
- return buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24338
+ const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24339
+ return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
23620
24340
  }
23621
24341
  /**
23622
24342
  * Construct a map of params to be passed on to the
@@ -23630,7 +24350,7 @@ query GetEurekaVizSnapshots(
23630
24350
  getEmbedParamsObject() {
23631
24351
  let params = {};
23632
24352
  params = this.getBaseQueryParams(params);
23633
- 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;
24353
+ 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;
23634
24354
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23635
24355
  || this.viewConfig.preventPinboardFilterRemoval;
23636
24356
  if (fullHeight === true) {
@@ -23652,6 +24372,9 @@ query GetEurekaVizSnapshots(
23652
24372
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23653
24373
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23654
24374
  }
24375
+ if (!isUndefined$1(showSpotterRadiance)) {
24376
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
24377
+ }
23655
24378
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23656
24379
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23657
24380
  }
@@ -23668,6 +24391,9 @@ query GetEurekaVizSnapshots(
23668
24391
  if (enable2ColumnLayout !== undefined) {
23669
24392
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23670
24393
  }
24394
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
24395
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
24396
+ }
23671
24397
  if (hideTabPanel) {
23672
24398
  params[Param.HideTabPanel] = hideTabPanel;
23673
24399
  }
@@ -23695,6 +24421,9 @@ query GetEurekaVizSnapshots(
23695
24421
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23696
24422
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23697
24423
  }
24424
+ if (liveboardGutter !== undefined) {
24425
+ params[Param.LiveboardGutter] = liveboardGutter;
24426
+ }
23698
24427
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23699
24428
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23700
24429
  }
@@ -23707,9 +24436,12 @@ query GetEurekaVizSnapshots(
23707
24436
  if (showSpotterLimitations !== undefined) {
23708
24437
  params[Param.ShowSpotterLimitations] = showSpotterLimitations;
23709
24438
  }
24439
+ if (!isUndefined$1(updatedSpotterExperience)) {
24440
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
24441
+ }
23710
24442
  // Handle spotterChatConfig params
23711
24443
  if (spotterChatConfig) {
23712
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
24444
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23713
24445
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23714
24446
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23715
24447
  if (spotterFileUploadEnabled !== undefined) {
@@ -23718,6 +24450,9 @@ query GetEurekaVizSnapshots(
23718
24450
  if (enableStarterPrompts !== undefined) {
23719
24451
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23720
24452
  }
24453
+ if (openSpotterOnLiveboardByDefault !== undefined) {
24454
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
24455
+ }
23721
24456
  if (spotterFileUploadFileTypes !== undefined) {
23722
24457
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23723
24458
  }
@@ -23728,6 +24463,9 @@ query GetEurekaVizSnapshots(
23728
24463
  if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
23729
24464
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23730
24465
  }
24466
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
24467
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
24468
+ }
23731
24469
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23732
24470
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23733
24471
  }
@@ -23741,16 +24479,27 @@ query GetEurekaVizSnapshots(
23741
24479
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23742
24480
  }
23743
24481
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23744
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24482
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
24483
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24484
+ }
23745
24485
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23746
24486
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23747
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24487
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
24488
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24489
+ }
23748
24490
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23749
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23750
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
24491
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
24492
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
24493
+ }
24494
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
24495
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
24496
+ isEnhancedFilterInteractivityEnabled;
24497
+ }
23751
24498
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23752
24499
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23753
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24500
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
24501
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24502
+ }
23754
24503
  getQueryParamString(params, true);
23755
24504
  return params;
23756
24505
  }
@@ -23949,7 +24698,7 @@ query GetEurekaVizSnapshots(
23949
24698
  if (this.isRendered) {
23950
24699
  this.trigger(exports.HostEvent.Navigate, path.substring(1));
23951
24700
  }
23952
- else if (this.viewConfig.preRenderId) {
24701
+ else if (this.getPreRenderConfig().preRenderId) {
23953
24702
  this.preRender(true);
23954
24703
  }
23955
24704
  else {
@@ -24539,18 +25288,12 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24539
25288
  */
24540
25289
  async getAppInitData() {
24541
25290
  const defaultAppInitData = await super.getAppInitData();
24542
- return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25291
+ const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25292
+ const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
25293
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
24543
25294
  }
24544
25295
  getEmbedParamsObject() {
24545
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24546
- if (!worksheetId) {
24547
- this.handleError({
24548
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
24549
- message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24550
- code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
24551
- error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24552
- });
24553
- }
25296
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
24554
25297
  const queryParams = this.getBaseQueryParams();
24555
25298
  queryParams[Param.SpotterEnabled] = true;
24556
25299
  // Boolean params
@@ -24560,8 +25303,10 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24560
25303
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
24561
25304
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
24562
25305
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
25306
+ setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
24563
25307
  setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
24564
25308
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
25309
+ setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
24565
25310
  // Handle spotterChatConfig params
24566
25311
  if (spotterChatConfig) {
24567
25312
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -24573,11 +25318,18 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24573
25318
  queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
24574
25319
  }
24575
25320
  }
25321
+ setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
24576
25322
  return queryParams;
24577
25323
  }
24578
25324
  getIframeSrc() {
24579
- const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
24580
- const path = 'insights/conv-assist';
25325
+ const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
25326
+ // Deep-link into the read-only shared-conversation reader view when a
25327
+ // shared conversation id is supplied (e.g. a recipient landing from a
25328
+ // host-configured CONVERSATION_URL share link); otherwise the normal
25329
+ // Spotter conversation surface.
25330
+ const path = sharedConversationId
25331
+ ? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
25332
+ : 'insights/conv-assist';
24581
25333
  const queryParams = this.getEmbedParamsObject();
24582
25334
  let query = '';
24583
25335
  const queryParamsString = getQueryParamString(queryParams, true);
@@ -24593,8 +25345,12 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24593
25345
  query += `&${parameterQuery}`;
24594
25346
  }
24595
25347
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
24596
- worksheet: worksheetId,
24597
- query: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) || '',
25348
+ ...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
25349
+ && { worksheet: worksheetId }),
25350
+ ...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
25351
+ ...(Array.isArray(dataSources)
25352
+ && dataSources.length > 0
25353
+ && { dataSources: JSON.stringify(dataSources) }),
24598
25354
  });
24599
25355
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
24600
25356
  }
@@ -24642,15 +25398,17 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24642
25398
  // not be destroyed when the component is unmounted.
24643
25399
  isPreRenderedComponent = false) => {
24644
25400
  const Component = React.forwardRef((props, forwardedRef) => {
25401
+ var _a, _b;
24645
25402
  const ref = React.useRef(null);
24646
25403
  const { className, style, ...embedProps } = props;
24647
25404
  const { viewConfig, listeners } = getViewPropsAndListeners(embedProps);
25405
+ const preRenderId = (_b = (_a = props.preRenderConfig) === null || _a === void 0 ? void 0 : _a.preRenderId) !== null && _b !== void 0 ? _b : props.preRenderId;
24648
25406
  const handleDestroy = (tsEmbed) => {
24649
25407
  // do not destroy if it is a preRender component
24650
25408
  if (isPreRenderedComponent)
24651
25409
  return;
24652
25410
  // if component is connected to a preRendered component
24653
- if (props.preRenderId) {
25411
+ if (preRenderId) {
24654
25412
  tsEmbed.hidePreRender();
24655
25413
  return;
24656
25414
  }
@@ -24661,7 +25419,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24661
25419
  };
24662
25420
  const handleDefaultRendering = (tsEmbed) => {
24663
25421
  // if component is connected to a preRendered component
24664
- if (props.preRenderId) {
25422
+ if (preRenderId) {
24665
25423
  tsEmbed.showPreRender();
24666
25424
  return;
24667
25425
  }
@@ -24910,7 +25668,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24910
25668
  * const ref = useEmbedRef();
24911
25669
  * useEffect(() => {
24912
25670
  * ref.current.trigger(
24913
- * EmbedEvent.UpdateRuntimeFilter,
25671
+ * HostEvent.UpdateRuntimeFilters,
24914
25672
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
24915
25673
  * }, [])
24916
25674
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />