@thoughtspot/visual-embed-sdk 1.50.0 → 1.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/css-variables.d.ts +95 -0
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +136 -15
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +59 -37
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +419 -149
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/conversation.d.ts +230 -1
  11. package/cjs/src/embed/conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/conversation.js +30 -16
  13. package/cjs/src/embed/conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.spec.js +221 -17
  15. package/cjs/src/embed/conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/events.spec.js +635 -0
  17. package/cjs/src/embed/events.spec.js.map +1 -1
  18. package/cjs/src/embed/host-events.spec.js +151 -0
  19. package/cjs/src/embed/host-events.spec.js.map +1 -1
  20. package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
  21. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  22. package/cjs/src/embed/hostEventClient/contracts.js +11 -1
  23. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  24. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  25. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
  27. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +218 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
  31. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/utils.js +32 -2
  33. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
  35. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +42 -1
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +26 -6
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +83 -2
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +14 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +61 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +34 -0
  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/spotter-viz-utils.spec.js +17 -0
  52. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
  53. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  54. package/cjs/src/embed/ts-embed.js +29 -7
  55. package/cjs/src/embed/ts-embed.js.map +1 -1
  56. package/cjs/src/embed/ts-embed.spec.js +146 -0
  57. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  58. package/cjs/src/errors.d.ts +1 -0
  59. package/cjs/src/errors.d.ts.map +1 -1
  60. package/cjs/src/errors.js +1 -0
  61. package/cjs/src/errors.js.map +1 -1
  62. package/cjs/src/index.d.ts +2 -2
  63. package/cjs/src/index.d.ts.map +1 -1
  64. package/cjs/src/index.js +3 -2
  65. package/cjs/src/index.js.map +1 -1
  66. package/cjs/src/mixpanel-service.d.ts +4 -0
  67. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  68. package/cjs/src/mixpanel-service.js +4 -0
  69. package/cjs/src/mixpanel-service.js.map +1 -1
  70. package/cjs/src/react/util.spec.js +251 -0
  71. package/cjs/src/react/util.spec.js.map +1 -1
  72. package/cjs/src/types.d.ts +573 -11
  73. package/cjs/src/types.d.ts.map +1 -1
  74. package/cjs/src/types.js +519 -2
  75. package/cjs/src/types.js.map +1 -1
  76. package/cjs/src/utils/processData.spec.js +93 -0
  77. package/cjs/src/utils/processData.spec.js.map +1 -1
  78. package/cjs/src/utils/processTrigger.spec.js +61 -0
  79. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  80. package/dist/{index-B5xoN6Cp.js → index-aBzH5ZwF.js} +1 -1
  81. package/dist/src/css-variables.d.ts +95 -0
  82. package/dist/src/css-variables.d.ts.map +1 -1
  83. package/dist/src/embed/app.d.ts +136 -15
  84. package/dist/src/embed/app.d.ts.map +1 -1
  85. package/dist/src/embed/conversation.d.ts +230 -1
  86. package/dist/src/embed/conversation.d.ts.map +1 -1
  87. package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
  88. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  89. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  90. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  91. package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
  92. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +42 -1
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +8 -1
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  97. package/dist/src/embed/spotter-viz-utils.d.ts +34 -0
  98. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  99. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  100. package/dist/src/errors.d.ts +1 -0
  101. package/dist/src/errors.d.ts.map +1 -1
  102. package/dist/src/index.d.ts +2 -2
  103. package/dist/src/index.d.ts.map +1 -1
  104. package/dist/src/mixpanel-service.d.ts +4 -0
  105. package/dist/src/mixpanel-service.d.ts.map +1 -1
  106. package/dist/src/types.d.ts +573 -11
  107. package/dist/src/types.d.ts.map +1 -1
  108. package/dist/tsembed-react.es.js +936 -142
  109. package/dist/tsembed-react.js +935 -141
  110. package/dist/tsembed.es.js +935 -142
  111. package/dist/tsembed.js +933 -140
  112. package/dist/visual-embed-sdk-react-full.d.ts +1147 -44
  113. package/dist/visual-embed-sdk-react.d.ts +1153 -46
  114. package/dist/visual-embed-sdk.d.ts +1161 -46
  115. package/lib/package.json +1 -1
  116. package/lib/src/css-variables.d.ts +95 -0
  117. package/lib/src/css-variables.d.ts.map +1 -1
  118. package/lib/src/embed/app.d.ts +136 -15
  119. package/lib/src/embed/app.d.ts.map +1 -1
  120. package/lib/src/embed/app.js +60 -38
  121. package/lib/src/embed/app.js.map +1 -1
  122. package/lib/src/embed/app.spec.js +420 -150
  123. package/lib/src/embed/app.spec.js.map +1 -1
  124. package/lib/src/embed/conversation.d.ts +230 -1
  125. package/lib/src/embed/conversation.d.ts.map +1 -1
  126. package/lib/src/embed/conversation.js +31 -17
  127. package/lib/src/embed/conversation.js.map +1 -1
  128. package/lib/src/embed/conversation.spec.js +222 -18
  129. package/lib/src/embed/conversation.spec.js.map +1 -1
  130. package/lib/src/embed/events.spec.js +635 -0
  131. package/lib/src/embed/events.spec.js.map +1 -1
  132. package/lib/src/embed/host-events.spec.js +152 -1
  133. package/lib/src/embed/host-events.spec.js.map +1 -1
  134. package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
  135. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  136. package/lib/src/embed/hostEventClient/contracts.js +10 -0
  137. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  138. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -0
  139. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  140. package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
  141. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  142. package/lib/src/embed/hostEventClient/host-event-client.spec.js +218 -0
  143. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  144. package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
  145. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  146. package/lib/src/embed/hostEventClient/utils.js +28 -1
  147. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  148. package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
  149. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  150. package/lib/src/embed/liveboard.d.ts +42 -1
  151. package/lib/src/embed/liveboard.d.ts.map +1 -1
  152. package/lib/src/embed/liveboard.js +26 -6
  153. package/lib/src/embed/liveboard.js.map +1 -1
  154. package/lib/src/embed/liveboard.spec.js +83 -2
  155. package/lib/src/embed/liveboard.spec.js.map +1 -1
  156. package/lib/src/embed/spotter-utils.d.ts +8 -1
  157. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  158. package/lib/src/embed/spotter-utils.js +12 -0
  159. package/lib/src/embed/spotter-utils.js.map +1 -1
  160. package/lib/src/embed/spotter-utils.spec.js +62 -1
  161. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  162. package/lib/src/embed/spotter-viz-utils.d.ts +34 -0
  163. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  164. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  165. package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
  166. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +29 -7
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.js +146 -0
  171. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  172. package/lib/src/errors.d.ts +1 -0
  173. package/lib/src/errors.d.ts.map +1 -1
  174. package/lib/src/errors.js +1 -0
  175. package/lib/src/errors.js.map +1 -1
  176. package/lib/src/index.d.ts +2 -2
  177. package/lib/src/index.d.ts.map +1 -1
  178. package/lib/src/index.js +2 -2
  179. package/lib/src/index.js.map +1 -1
  180. package/lib/src/mixpanel-service.d.ts +4 -0
  181. package/lib/src/mixpanel-service.d.ts.map +1 -1
  182. package/lib/src/mixpanel-service.js +4 -0
  183. package/lib/src/mixpanel-service.js.map +1 -1
  184. package/lib/src/react/util.spec.js +251 -0
  185. package/lib/src/react/util.spec.js.map +1 -1
  186. package/lib/src/types.d.ts +573 -11
  187. package/lib/src/types.d.ts.map +1 -1
  188. package/lib/src/types.js +519 -2
  189. package/lib/src/types.js.map +1 -1
  190. package/lib/src/utils/processData.spec.js +93 -0
  191. package/lib/src/utils/processData.spec.js.map +1 -1
  192. package/lib/src/utils/processTrigger.spec.js +61 -0
  193. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  194. package/lib/src/visual-embed-sdk.d.ts +1161 -46
  195. package/package.json +1 -1
  196. package/src/css-variables.ts +118 -0
  197. package/src/embed/app.spec.ts +530 -183
  198. package/src/embed/app.ts +209 -66
  199. package/src/embed/conversation.spec.ts +275 -21
  200. package/src/embed/conversation.ts +262 -17
  201. package/src/embed/events.spec.ts +757 -1
  202. package/src/embed/host-events.spec.ts +194 -0
  203. package/src/embed/hostEventClient/contracts.ts +57 -14
  204. package/src/embed/hostEventClient/host-event-client.spec.ts +338 -0
  205. package/src/embed/hostEventClient/host-event-client.ts +16 -0
  206. package/src/embed/hostEventClient/utils.spec.ts +204 -0
  207. package/src/embed/hostEventClient/utils.ts +37 -10
  208. package/src/embed/liveboard.spec.ts +108 -2
  209. package/src/embed/liveboard.ts +82 -14
  210. package/src/embed/spotter-utils.spec.ts +68 -1
  211. package/src/embed/spotter-utils.ts +16 -1
  212. package/src/embed/spotter-viz-utils.spec.ts +17 -0
  213. package/src/embed/spotter-viz-utils.ts +34 -0
  214. package/src/embed/ts-embed.spec.ts +186 -0
  215. package/src/embed/ts-embed.ts +30 -4
  216. package/src/errors.ts +1 -0
  217. package/src/index.ts +3 -1
  218. package/src/mixpanel-service.ts +4 -0
  219. package/src/react/util.spec.tsx +255 -0
  220. package/src/types.ts +575 -8
  221. package/src/utils/processData.spec.ts +97 -0
  222. package/src/utils/processTrigger.spec.ts +91 -0
package/dist/tsembed.js CHANGED
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.50.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.51.0 */
2
2
  'use client';
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
@@ -195,7 +195,9 @@
195
195
  })(exports.AuthType || (exports.AuthType = {}));
196
196
  /**
197
197
  *
198
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
198
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
199
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
200
+ * V4 (Focused) home page experiences.
199
201
  *
200
202
  */
201
203
  exports.HomeLeftNavItem = void 0;
@@ -263,6 +265,13 @@
263
265
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
264
266
  */
265
267
  HomeLeftNavItem["Favorites"] = "favorites";
268
+ /**
269
+ * The *Collections* menu option in
270
+ * the *Insights* left navigation panel.
271
+ * Shown when collections are enabled on the cluster.
272
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
273
+ */
274
+ HomeLeftNavItem["Collections"] = "collections";
266
275
  })(exports.HomeLeftNavItem || (exports.HomeLeftNavItem = {}));
267
276
  /**
268
277
  * A map of the supported runtime filter operations
@@ -335,7 +344,9 @@
335
344
  * via `hiddenHomepageModules` and reordered via
336
345
  * `reorderedHomepageModules`.
337
346
  *
338
- * **Note**: This option is not supported in the classic (v1) experience.
347
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
348
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
349
+ * V4 (Focused) home page experiences.
339
350
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
340
351
  */
341
352
  exports.HomepageModule = void 0;
@@ -1293,11 +1304,19 @@
1293
1304
  * Emitted when a user changes any filter on a Liveboard.
1294
1305
  * Returns filter type and name, column name and ID, and runtime
1295
1306
  * filter details.
1307
+ * The payload includes an optional `applicability` attribute indicating the
1308
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
1309
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1310
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1311
+ * is no `targetId`, since the filter applies to the whole Liveboard.
1312
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1313
+ * ThoughtSpot: 26.10.0.cl.
1296
1314
  * @example
1297
1315
  *
1298
1316
  * ```js
1299
1317
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
1300
1318
  * console.log('payload', payload);
1319
+ * // payload.data optionally includes applicability: { level, targetId }
1301
1320
  * })
1302
1321
  * ```
1303
1322
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -1489,9 +1508,17 @@
1489
1508
  /**
1490
1509
  * Emitted when parameter changes in an Answer
1491
1510
  * or Liveboard.
1511
+ * The payload includes an optional `applicability` attribute indicating the
1512
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
1513
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1514
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1515
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
1516
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1517
+ * ThoughtSpot: 26.10.0.cl.
1492
1518
  * ```js
1493
1519
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
1494
1520
  * console.log('payload', payload);
1521
+ * // payload.data optionally includes applicability: { level, targetId }
1495
1522
  * })
1496
1523
  * ```
1497
1524
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -1793,6 +1820,158 @@
1793
1820
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
1794
1821
  */
1795
1822
  EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
1823
+ /**
1824
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
1825
+ * to bracket the interaction. App→host counterpart of the
1826
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
1827
+ * @example
1828
+ * ```js
1829
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
1830
+ * // payload: { convId: string }
1831
+ * })
1832
+ * ```
1833
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1834
+ */
1835
+ EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
1836
+ /**
1837
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
1838
+ * to bracket the interaction.
1839
+ * @example
1840
+ * ```js
1841
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
1842
+ * // payload: { convId: string }
1843
+ * })
1844
+ * ```
1845
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1846
+ */
1847
+ EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
1848
+ /**
1849
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
1850
+ * share created). The host builds its own link from shareId/convId + its
1851
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
1852
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
1853
+ * the save resolves.
1854
+ * @example
1855
+ * ```js
1856
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
1857
+ * // payload: { convId: string, shareId: string,
1858
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
1859
+ * })
1860
+ * ```
1861
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1862
+ */
1863
+ EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
1864
+ /**
1865
+ * Emitted when access to a shared Spotter conversation is revoked
1866
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
1867
+ * and the share is deleted entirely.
1868
+ * @example
1869
+ * ```js
1870
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
1871
+ * // payload: { convId: string, shareId: string,
1872
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
1873
+ * })
1874
+ * ```
1875
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1876
+ */
1877
+ EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
1878
+ /**
1879
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
1880
+ * view). No shareId available viewer-side.
1881
+ * @example
1882
+ * ```js
1883
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
1884
+ * // payload: { convId: string, sourceConvId: string }
1885
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
1886
+ * })
1887
+ * ```
1888
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1889
+ */
1890
+ EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
1891
+ /**
1892
+ * Emitted when the user toggles the share-modal "include new messages since
1893
+ * last shared version" checkbox.
1894
+ * @example
1895
+ * ```js
1896
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
1897
+ * // payload: { convId: string, includeNewMessages: boolean }
1898
+ * })
1899
+ * ```
1900
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1901
+ */
1902
+ EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
1903
+ /**
1904
+ * Emitted when the user dismisses the stale-snapshot info banner via its
1905
+ * cross (distinct from the include-new-messages checkbox toggle).
1906
+ * @example
1907
+ * ```js
1908
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
1909
+ * // payload: { convId: string }
1910
+ * })
1911
+ * ```
1912
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1913
+ */
1914
+ EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
1915
+ /**
1916
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
1917
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
1918
+ * / `SpotterConversationShareRevoked` result events.
1919
+ * @example
1920
+ * ```js
1921
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
1922
+ * // payload: { convId: string }
1923
+ * })
1924
+ * ```
1925
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1926
+ */
1927
+ EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
1928
+ /**
1929
+ * Emitted when the share modal is dismissed via the Cancel button.
1930
+ * @example
1931
+ * ```js
1932
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
1933
+ * // payload: { convId: string }
1934
+ * })
1935
+ * ```
1936
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1937
+ */
1938
+ EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
1939
+ /**
1940
+ * Emitted when a recipient leaves the read-only shared view via the Exit
1941
+ * button.
1942
+ * @example
1943
+ * ```js
1944
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
1945
+ * // payload: { convId: string }
1946
+ * })
1947
+ * ```
1948
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1949
+ */
1950
+ EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
1951
+ /**
1952
+ * Emitted when a Spotter conversation is pinned.
1953
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
1954
+ * @example
1955
+ * ```js
1956
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
1957
+ * console.log('Conversation pinned', payload);
1958
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
1959
+ * })
1960
+ * ```
1961
+ */
1962
+ EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
1963
+ /**
1964
+ * Emitted when a Spotter conversation is unpinned.
1965
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
1966
+ * @example
1967
+ * ```js
1968
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
1969
+ * console.log('Conversation unpinned', payload);
1970
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
1971
+ * })
1972
+ * ```
1973
+ */
1974
+ EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
1796
1975
  /**
1797
1976
  * Emitted when a Spotter conversation is selected/clicked.
1798
1977
  * @example
@@ -1805,6 +1984,30 @@
1805
1984
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
1806
1985
  */
1807
1986
  EmbedEvent["SpotterConversationSelected"] = "spotterConversationSelected";
1987
+ /**
1988
+ * Emitted when the Spotter agent finishes streaming/rendering a response.
1989
+ * Includes the conversation and message identifiers so the host app can
1990
+ * fetch the full conversation history via the REST API if needed.
1991
+ *
1992
+ * The payload data has the shape `{ convId: string, messageId: string }`.
1993
+ *
1994
+ * Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
1995
+ * inside the full application).
1996
+ * @example
1997
+ * ```js
1998
+ * spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
1999
+ * console.log('Spotter response complete', payload);
2000
+ * })
2001
+ * ```
2002
+ * @example
2003
+ * ```js
2004
+ * appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
2005
+ * console.log('Spotter response complete', payload);
2006
+ * })
2007
+ * ```
2008
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
2009
+ */
2010
+ EmbedEvent["SpotterResponseComplete"] = "spotterResponseComplete";
1808
2011
  /**
1809
2012
  * @hidden
1810
2013
  * Emitted when the auth token is about to get expired and needs to be refreshed.
@@ -2285,6 +2488,17 @@
2285
2488
  * name: string,
2286
2489
  * type: ATTRIBUTE/MEASURE,
2287
2490
  * dataType: INT64/CHAR/DATE }
2491
+ *
2492
+ * `applicability` - Optional. Scopes the filter to a specific target,
2493
+ * for example, a single Liveboard tab, so the panel for the correct
2494
+ * scoped filter is opened. Available from SDK: 1.53.0 |
2495
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
2496
+ *
2497
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
2498
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2499
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2500
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
2501
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2288
2502
  * @example
2289
2503
  * ```js
2290
2504
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -2297,6 +2511,14 @@
2297
2511
  * ```
2298
2512
  * @example
2299
2513
  * ```js
2514
+ * // Open a filter scoped to a specific Liveboard tab
2515
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
2516
+ * column: { columnId: '<column-GUID>' },
2517
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
2518
+ * });
2519
+ * ```
2520
+ * @example
2521
+ * ```js
2300
2522
  * // Open filter from search context
2301
2523
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2302
2524
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -2306,6 +2528,38 @@
2306
2528
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2307
2529
  */
2308
2530
  HostEvent["OpenFilter"] = "openFilter";
2531
+ /**
2532
+ * Open the parameter panel for a particular parameter on a Liveboard.
2533
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
2534
+ * @param - Includes the following keys:
2535
+ * - `parameter`: An object identifying the parameter to open, for
2536
+ * example, `{ parameterId: '<parameter-GUID>' }`.
2537
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
2538
+ * for example, a single Liveboard tab, so the panel for the correct
2539
+ * scoped parameter is opened. Includes the following attributes:
2540
+ *
2541
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
2542
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2543
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2544
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
2545
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2546
+ * @example
2547
+ * ```js
2548
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2549
+ * parameter: { parameterId: '<parameter-GUID>' }
2550
+ * });
2551
+ * ```
2552
+ * @example
2553
+ * ```js
2554
+ * // Open a parameter scoped to a specific group
2555
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2556
+ * parameter: { parameterId: '<parameter-GUID>' },
2557
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
2558
+ * });
2559
+ * ```
2560
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2561
+ */
2562
+ HostEvent["OpenParameter"] = "openParameter";
2309
2563
  /**
2310
2564
  * Add columns to the current search query.
2311
2565
  * @param - { columnIds: string[] }
@@ -3370,6 +3624,14 @@
3370
3624
  /**
3371
3625
  * Get details of filters applied on the Liveboard.
3372
3626
  * Returns arrays containing Liveboard filter and runtime filter elements.
3627
+ * Each Liveboard filter includes an optional `applicability` attribute
3628
+ * indicating the scope of the filter. It contains a `level`
3629
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3630
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3631
+ * level there is no `targetId`, since the filter applies to the
3632
+ * whole Liveboard.
3633
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3634
+ * ThoughtSpot: 26.10.0.cl.
3373
3635
  * @example
3374
3636
  * ```js
3375
3637
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
@@ -3409,6 +3671,16 @@
3409
3671
  *
3410
3672
  * `type` - To update filters for date time, specify the date format type.
3411
3673
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
3674
+ *
3675
+ * `applicability` - Optional. Scopes the filter to a specific target,
3676
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3677
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3678
+ *
3679
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
3680
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
3681
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
3682
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
3683
+ * Liveboard.
3412
3684
  * @example
3413
3685
  * ```js
3414
3686
  *
@@ -3485,6 +3757,21 @@
3485
3757
  * }
3486
3758
  * }, ContextType.Liveboard);
3487
3759
  * ```
3760
+ * @example
3761
+ * ```js
3762
+ * // Scope the filter to a specific Liveboard tab
3763
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
3764
+ * filter: {
3765
+ * column: "item type",
3766
+ * oper: "IN",
3767
+ * values: ["bags", "shirts"],
3768
+ * applicability: {
3769
+ * level: "TAB",
3770
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
3771
+ * }
3772
+ * }
3773
+ * });
3774
+ * ```
3488
3775
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3489
3776
  */
3490
3777
  HostEvent["UpdateFilters"] = "updateFilters";
@@ -3509,6 +3796,28 @@
3509
3796
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3510
3797
  */
3511
3798
  HostEvent["GetTabs"] = "getTabs";
3799
+ /**
3800
+ * Get group details for the current Liveboard.
3801
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
3802
+ * @example
3803
+ * ```js
3804
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
3805
+ * console.log(
3806
+ * groupDetails // GroupDetails of current Liveboard
3807
+ * );
3808
+ * })
3809
+ * ```
3810
+ * @example
3811
+ * ```js
3812
+ * // Get groups from liveboard context
3813
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
3814
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
3815
+ * console.log('groups', groupDetails);
3816
+ * });
3817
+ * ```
3818
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3819
+ */
3820
+ HostEvent["GetGroups"] = "getGroups";
3512
3821
  /**
3513
3822
  * Set the visible tabs on a Liveboard.
3514
3823
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -3636,6 +3945,15 @@
3636
3945
  * - `name`: Name of the parameter.
3637
3946
  * - `value`: The value to set for the parameter.
3638
3947
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
3948
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
3949
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3950
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3951
+ *
3952
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
3953
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
3954
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
3955
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
3956
+ * Liveboard.
3639
3957
  *
3640
3958
  * @example
3641
3959
  * ```js
@@ -3647,6 +3965,18 @@
3647
3965
  * ```
3648
3966
  * @example
3649
3967
  * ```js
3968
+ * // Scope the parameter to a specific Liveboard tab
3969
+ * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
3970
+ * name: "Integer Range Param",
3971
+ * value: 10,
3972
+ * applicability: {
3973
+ * level: "TAB",
3974
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
3975
+ * }
3976
+ * }])
3977
+ * ```
3978
+ * @example
3979
+ * ```js
3650
3980
  * // Update parameters from liveboard context
3651
3981
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
3652
3982
  * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
@@ -3660,6 +3990,14 @@
3660
3990
  HostEvent["UpdateParameters"] = "UpdateParameters";
3661
3991
  /**
3662
3992
  * Triggers GetParameters to fetch the runtime Parameters.
3993
+ * Each parameter includes an optional `applicability` attribute
3994
+ * indicating the scope of the parameter. It contains a `level`
3995
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3996
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3997
+ * level there is no `targetId`, since the parameter applies to the
3998
+ * whole Liveboard.
3999
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4000
+ * ThoughtSpot: 26.10.0.cl.
3663
4001
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
3664
4002
  * ```js
3665
4003
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
@@ -3926,6 +4264,36 @@
3926
4264
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
3927
4265
  */
3928
4266
  HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
4267
+ /**
4268
+ * Opens the Spotter share-conversation modal for the given conversation.
4269
+ * `conversationId` is **mandatory** — you must pass the id of the
4270
+ * conversation to share. Also no-op when sharing is disabled
4271
+ * (enableShareConversation off) or when already in the read-only shared view.
4272
+ * @example
4273
+ * ```js
4274
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
4275
+ * ```
4276
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4277
+ */
4278
+ HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
4279
+ /**
4280
+ * Closes the Spotter share-conversation modal. No-op if none is open.
4281
+ * @example
4282
+ * ```js
4283
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
4284
+ * ```
4285
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4286
+ */
4287
+ HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
4288
+ /**
4289
+ * Exits the read-only shared-conversation view.
4290
+ * @example
4291
+ * ```js
4292
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
4293
+ * ```
4294
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4295
+ */
4296
+ HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
3929
4297
  /**
3930
4298
  * Deletes the last prompt in spotter embed.
3931
4299
  * @example
@@ -4021,6 +4389,41 @@
4021
4389
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
4022
4390
  */
4023
4391
  HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
4392
+ /**
4393
+ * Pins a saved Spotter conversation so it floats to the top of the past
4394
+ * conversations sidebar. The `conversationId` of the conversation to pin is
4395
+ * required.
4396
+ *
4397
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4398
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4399
+ * instance.
4400
+ *
4401
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4402
+ * @example
4403
+ * ```js
4404
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
4405
+ * conversationId: '<conversation-id>',
4406
+ * });
4407
+ * ```
4408
+ */
4409
+ HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
4410
+ /**
4411
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
4412
+ * conversation to unpin is required.
4413
+ *
4414
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4415
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4416
+ * instance.
4417
+ *
4418
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4419
+ * @example
4420
+ * ```js
4421
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
4422
+ * conversationId: '<conversation-id>',
4423
+ * });
4424
+ * ```
4425
+ */
4426
+ HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
4024
4427
  /**
4025
4428
  * @hidden
4026
4429
  * Get the current context of the embedded page.
@@ -4242,6 +4645,7 @@
4242
4645
  Param["SpotterEnabled"] = "isSpotterExperienceEnabled";
4243
4646
  Param["IsUnifiedSearchExperienceEnabled"] = "isUnifiedSearchExperienceEnabled";
4244
4647
  Param["OverrideOrgId"] = "orgId";
4648
+ Param["OverrideHistoryState"] = "overrideHistoryState";
4245
4649
  Param["OauthPollingInterval"] = "oAuthPollingInterval";
4246
4650
  Param["IsForceRedirect"] = "isForceRedirect";
4247
4651
  Param["DataSourceId"] = "dataSourceId";
@@ -4259,9 +4663,12 @@
4259
4663
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
4260
4664
  Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
4261
4665
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
4666
+ Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
4262
4667
  Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
4263
4668
  Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
4264
4669
  Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
4670
+ Param["ShowSpotterRadiance"] = "showSpotterRadiance";
4671
+ Param["DefaultQueryMode"] = "defaultQueryMode";
4265
4672
  Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
4266
4673
  Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
4267
4674
  Param["SpotterSidebarDefaultExpanded"] = "spotterSidebarDefaultExpanded";
@@ -4281,6 +4688,8 @@
4281
4688
  Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
4282
4689
  Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
4283
4690
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4691
+ Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4692
+ Param["SpotterDataSources"] = "spotterDataSources";
4284
4693
  })(Param || (Param = {}));
4285
4694
  /**
4286
4695
  * ThoughtSpot application pages include actions and menu commands
@@ -5545,6 +5954,19 @@
5545
5954
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
5546
5955
  */
5547
5956
  Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
5957
+ /**
5958
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
5959
+ * including filter, parameter, and cross-filter chips at the liveboard,
5960
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
5961
+ *
5962
+ * @example
5963
+ * ```js
5964
+ * hiddenActions: [Action.AllLiveboardFilters]
5965
+ * disabledActions: [Action.AllLiveboardFilters]
5966
+ * ```
5967
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5968
+ */
5969
+ Action["AllLiveboardFilters"] = "allLiveboardFilters";
5548
5970
  /**
5549
5971
  * The **Data model instructions** button on the Spotter interface.
5550
5972
  * Allows opening the data model instructions modal.
@@ -5880,6 +6302,89 @@
5880
6302
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
5881
6303
  */
5882
6304
  Action["SpotterChatRename"] = "spotterChatRename";
6305
+ /**
6306
+ * Controls visibility and disable state of the Spotter conversation Share
6307
+ * button in the chat header. Only takes effect once sharing is enabled
6308
+ * (enableShareConversation on).
6309
+ * @example
6310
+ * ```js
6311
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
6312
+ * ```
6313
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6314
+ */
6315
+ Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
6316
+ /**
6317
+ * Controls visibility and disable state of the Share item in the Spotter
6318
+ * conversation history (sidebar) edit menu. Independent of the header button
6319
+ * above, so a host can show Share in one entry point and hide it in the other.
6320
+ * @example
6321
+ * ```js
6322
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
6323
+ * ```
6324
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6325
+ */
6326
+ Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
6327
+ /**
6328
+ * Controls visibility of the entire read-only shared-conversation data-access
6329
+ * banner shown when a recipient opens a shared view. Hide-only.
6330
+ * @example
6331
+ * ```js
6332
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
6333
+ * ```
6334
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6335
+ */
6336
+ Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
6337
+ /**
6338
+ * Controls visibility and disable state of the cross/close button on the
6339
+ * read-only shared-conversation data-access banner (keeps the banner itself).
6340
+ * @example
6341
+ * ```js
6342
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
6343
+ * ```
6344
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6345
+ */
6346
+ Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
6347
+ /**
6348
+ * Controls visibility and disable state of the Exit button in the read-only
6349
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
6350
+ * host event.
6351
+ * @example
6352
+ * ```js
6353
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
6354
+ * ```
6355
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6356
+ */
6357
+ Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
6358
+ /**
6359
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
6360
+ * to the current moment…"). Hide-only.
6361
+ * @example
6362
+ * ```js
6363
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
6364
+ * ```
6365
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6366
+ */
6367
+ Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
6368
+ /**
6369
+ * Controls visibility and disable state of the share-modal "include new
6370
+ * messages since last shared version" checkbox.
6371
+ * @example
6372
+ * ```js
6373
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
6374
+ * ```
6375
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6376
+ */
6377
+ Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
6378
+ /**
6379
+ * Controls visibility and disable state of the cross on the share-modal
6380
+ * stale-snapshot info banner.
6381
+ * @example
6382
+ * ```js
6383
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
6384
+ * ```
6385
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6386
+ */
6387
+ Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
5883
6388
  /**
5884
6389
  * Controls visibility and disable state of the delete action
5885
6390
  * in the Spotter conversation edit menu.
@@ -5890,6 +6395,16 @@
5890
6395
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
5891
6396
  */
5892
6397
  Action["SpotterChatDelete"] = "spotterChatDelete";
6398
+ /**
6399
+ * Controls visibility and disable state of the pin/unpin action
6400
+ * in the Spotter conversation edit menu.
6401
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6402
+ * @example
6403
+ * ```js
6404
+ * disabledActions: [Action.SpotterChatPin]
6405
+ * ```
6406
+ */
6407
+ Action["SpotterChatPin"] = "spotterChatPin";
5893
6408
  /**
5894
6409
  * Controls visibility and disable state of the documentation/best practices
5895
6410
  * link in the Spotter sidebar footer.
@@ -6368,6 +6883,8 @@
6368
6883
  EmbedErrorCodes["UPDATEFILTERS_INVALID_PAYLOAD"] = "UPDATEFILTERS_INVALID_PAYLOAD";
6369
6884
  /** DrillDown payload is invalid - missing or malformed points */
6370
6885
  EmbedErrorCodes["DRILLDOWN_INVALID_PAYLOAD"] = "DRILLDOWN_INVALID_PAYLOAD";
6886
+ /** UpdateParameters payload is invalid - malformed applicability */
6887
+ EmbedErrorCodes["UPDATEPARAMETERS_INVALID_PAYLOAD"] = "UPDATEPARAMETERS_INVALID_PAYLOAD";
6371
6888
  })(exports.EmbedErrorCodes || (exports.EmbedErrorCodes = {}));
6372
6889
  /**
6373
6890
  * Context types for specifying the page context when triggering host events.
@@ -6546,7 +7063,7 @@
6546
7063
  TableContentDensity["Compact"] = "COMPACT";
6547
7064
  })(exports.TableContentDensity || (exports.TableContentDensity = {}));
6548
7065
 
6549
- var version$1="1.50.0";var pkg = {version:version$1};
7066
+ var version$1="1.51.0";var pkg = {version:version$1};
6550
7067
 
6551
7068
  const { version } = pkg;
6552
7069
 
@@ -6692,7 +7209,6 @@
6692
7209
 
6693
7210
  const ERROR_MESSAGE = {
6694
7211
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
6695
- SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
6696
7212
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6697
7213
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6698
7214
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
@@ -6722,6 +7238,7 @@
6722
7238
  INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
6723
7239
  UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { column, oper, values } } or { filters: [{ column, oper, values }, ...] }',
6724
7240
  DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
7241
+ UPDATEPARAMETERS_INVALID_PAYLOAD: 'UpdateParameters received an invalid applicability. Expected: { level: LIVEBOARD | TAB | GROUP, targetId } where targetId is required for TAB and GROUP levels',
6725
7242
  };
6726
7243
  const CUSTOM_ACTIONS_ERROR_MESSAGE = {
6727
7244
  INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
@@ -6840,7 +7357,7 @@
6840
7357
  * @returns true if the value is a valid CSS margin value, false otherwise
6841
7358
  */
6842
7359
  const isValidCssMargin = (value) => {
6843
- if (isUndefined(value)) {
7360
+ if (isUndefined$1(value)) {
6844
7361
  return false;
6845
7362
  }
6846
7363
  if (typeof value !== 'string') {
@@ -7049,7 +7566,7 @@
7049
7566
  element.style.removeProperty(styleProperty);
7050
7567
  });
7051
7568
  };
7052
- const isUndefined = (value) => value === undefined;
7569
+ const isUndefined$1 = (value) => value === undefined;
7053
7570
  // Return if the value is a string, double or boolean.
7054
7571
  const getTypeFromValue = (value) => {
7055
7572
  if (typeof value === 'string') {
@@ -7354,7 +7871,7 @@
7354
7871
  };
7355
7872
 
7356
7873
  /** Used for built-in method references. */
7357
- var objectProto$c = Object.prototype;
7874
+ var objectProto$d = Object.prototype;
7358
7875
 
7359
7876
  /**
7360
7877
  * Checks if `value` is likely a prototype object.
@@ -7365,7 +7882,7 @@
7365
7882
  */
7366
7883
  function isPrototype(value) {
7367
7884
  var Ctor = value && value.constructor,
7368
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$c;
7885
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
7369
7886
 
7370
7887
  return value === proto;
7371
7888
  }
@@ -7394,10 +7911,10 @@
7394
7911
  var _nativeKeys = nativeKeys;
7395
7912
 
7396
7913
  /** Used for built-in method references. */
7397
- var objectProto$b = Object.prototype;
7914
+ var objectProto$c = Object.prototype;
7398
7915
 
7399
7916
  /** Used to check objects for own properties. */
7400
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
7917
+ var hasOwnProperty$b = objectProto$c.hasOwnProperty;
7401
7918
 
7402
7919
  /**
7403
7920
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -7412,7 +7929,7 @@
7412
7929
  }
7413
7930
  var result = [];
7414
7931
  for (var key in Object(object)) {
7415
- if (hasOwnProperty$a.call(object, key) && key != 'constructor') {
7932
+ if (hasOwnProperty$b.call(object, key) && key != 'constructor') {
7416
7933
  result.push(key);
7417
7934
  }
7418
7935
  }
@@ -7448,17 +7965,17 @@
7448
7965
  var _Symbol = Symbol$1;
7449
7966
 
7450
7967
  /** Used for built-in method references. */
7451
- var objectProto$a = Object.prototype;
7968
+ var objectProto$b = Object.prototype;
7452
7969
 
7453
7970
  /** Used to check objects for own properties. */
7454
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
7971
+ var hasOwnProperty$a = objectProto$b.hasOwnProperty;
7455
7972
 
7456
7973
  /**
7457
7974
  * Used to resolve the
7458
7975
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
7459
7976
  * of values.
7460
7977
  */
7461
- var nativeObjectToString$1 = objectProto$a.toString;
7978
+ var nativeObjectToString$1 = objectProto$b.toString;
7462
7979
 
7463
7980
  /** Built-in value references. */
7464
7981
  var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
@@ -7471,7 +7988,7 @@
7471
7988
  * @returns {string} Returns the raw `toStringTag`.
7472
7989
  */
7473
7990
  function getRawTag(value) {
7474
- var isOwn = hasOwnProperty$9.call(value, symToStringTag$1),
7991
+ var isOwn = hasOwnProperty$a.call(value, symToStringTag$1),
7475
7992
  tag = value[symToStringTag$1];
7476
7993
 
7477
7994
  try {
@@ -7493,14 +8010,14 @@
7493
8010
  var _getRawTag = getRawTag;
7494
8011
 
7495
8012
  /** Used for built-in method references. */
7496
- var objectProto$9 = Object.prototype;
8013
+ var objectProto$a = Object.prototype;
7497
8014
 
7498
8015
  /**
7499
8016
  * Used to resolve the
7500
8017
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
7501
8018
  * of values.
7502
8019
  */
7503
- var nativeObjectToString = objectProto$9.toString;
8020
+ var nativeObjectToString = objectProto$a.toString;
7504
8021
 
7505
8022
  /**
7506
8023
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -7632,10 +8149,10 @@
7632
8149
  var _isMasked = isMasked;
7633
8150
 
7634
8151
  /** Used for built-in method references. */
7635
- var funcProto$1 = Function.prototype;
8152
+ var funcProto$2 = Function.prototype;
7636
8153
 
7637
8154
  /** Used to resolve the decompiled source of functions. */
7638
- var funcToString$1 = funcProto$1.toString;
8155
+ var funcToString$2 = funcProto$2.toString;
7639
8156
 
7640
8157
  /**
7641
8158
  * Converts `func` to its source code.
@@ -7647,7 +8164,7 @@
7647
8164
  function toSource(func) {
7648
8165
  if (func != null) {
7649
8166
  try {
7650
- return funcToString$1.call(func);
8167
+ return funcToString$2.call(func);
7651
8168
  } catch (e) {}
7652
8169
  try {
7653
8170
  return (func + '');
@@ -7668,18 +8185,18 @@
7668
8185
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
7669
8186
 
7670
8187
  /** Used for built-in method references. */
7671
- var funcProto = Function.prototype,
7672
- objectProto$8 = Object.prototype;
8188
+ var funcProto$1 = Function.prototype,
8189
+ objectProto$9 = Object.prototype;
7673
8190
 
7674
8191
  /** Used to resolve the decompiled source of functions. */
7675
- var funcToString = funcProto.toString;
8192
+ var funcToString$1 = funcProto$1.toString;
7676
8193
 
7677
8194
  /** Used to check objects for own properties. */
7678
- var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
8195
+ var hasOwnProperty$9 = objectProto$9.hasOwnProperty;
7679
8196
 
7680
8197
  /** Used to detect if a method is native. */
7681
8198
  var reIsNative = RegExp('^' +
7682
- funcToString.call(hasOwnProperty$8).replace(reRegExpChar, '\\$&')
8199
+ funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, '\\$&')
7683
8200
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
7684
8201
  );
7685
8202
 
@@ -7757,7 +8274,7 @@
7757
8274
 
7758
8275
  /** `Object#toString` result references. */
7759
8276
  var mapTag$3 = '[object Map]',
7760
- objectTag$2 = '[object Object]',
8277
+ objectTag$3 = '[object Object]',
7761
8278
  promiseTag = '[object Promise]',
7762
8279
  setTag$3 = '[object Set]',
7763
8280
  weakMapTag$1 = '[object WeakMap]';
@@ -7788,7 +8305,7 @@
7788
8305
  (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {
7789
8306
  getTag = function(value) {
7790
8307
  var result = _baseGetTag(value),
7791
- Ctor = result == objectTag$2 ? value.constructor : undefined,
8308
+ Ctor = result == objectTag$3 ? value.constructor : undefined,
7792
8309
  ctorString = Ctor ? _toSource(Ctor) : '';
7793
8310
 
7794
8311
  if (ctorString) {
@@ -7853,13 +8370,13 @@
7853
8370
  var _baseIsArguments = baseIsArguments;
7854
8371
 
7855
8372
  /** Used for built-in method references. */
7856
- var objectProto$7 = Object.prototype;
8373
+ var objectProto$8 = Object.prototype;
7857
8374
 
7858
8375
  /** Used to check objects for own properties. */
7859
- var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
8376
+ var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
7860
8377
 
7861
8378
  /** Built-in value references. */
7862
- var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
8379
+ var propertyIsEnumerable$1 = objectProto$8.propertyIsEnumerable;
7863
8380
 
7864
8381
  /**
7865
8382
  * Checks if `value` is likely an `arguments` object.
@@ -7880,7 +8397,7 @@
7880
8397
  * // => false
7881
8398
  */
7882
8399
  var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {
7883
- return isObjectLike_1(value) && hasOwnProperty$7.call(value, 'callee') &&
8400
+ return isObjectLike_1(value) && hasOwnProperty$8.call(value, 'callee') &&
7884
8401
  !propertyIsEnumerable$1.call(value, 'callee');
7885
8402
  };
7886
8403
 
@@ -8046,10 +8563,10 @@
8046
8563
  funcTag = '[object Function]',
8047
8564
  mapTag$2 = '[object Map]',
8048
8565
  numberTag$1 = '[object Number]',
8049
- objectTag$1 = '[object Object]',
8566
+ objectTag$2 = '[object Object]',
8050
8567
  regexpTag$1 = '[object RegExp]',
8051
8568
  setTag$2 = '[object Set]',
8052
- stringTag$1 = '[object String]',
8569
+ stringTag$2 = '[object String]',
8053
8570
  weakMapTag = '[object WeakMap]';
8054
8571
 
8055
8572
  var arrayBufferTag$1 = '[object ArrayBuffer]',
@@ -8076,8 +8593,8 @@
8076
8593
  typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =
8077
8594
  typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
8078
8595
  typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
8079
- typedArrayTags[objectTag$1] = typedArrayTags[regexpTag$1] =
8080
- typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] =
8596
+ typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
8597
+ typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] =
8081
8598
  typedArrayTags[weakMapTag] = false;
8082
8599
 
8083
8600
  /**
@@ -8169,10 +8686,10 @@
8169
8686
  setTag$1 = '[object Set]';
8170
8687
 
8171
8688
  /** Used for built-in method references. */
8172
- var objectProto$6 = Object.prototype;
8689
+ var objectProto$7 = Object.prototype;
8173
8690
 
8174
8691
  /** Used to check objects for own properties. */
8175
- var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
8692
+ var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
8176
8693
 
8177
8694
  /**
8178
8695
  * Checks if `value` is an empty object, collection, map, or set.
@@ -8224,7 +8741,7 @@
8224
8741
  return !_baseKeys(value).length;
8225
8742
  }
8226
8743
  for (var key in value) {
8227
- if (hasOwnProperty$6.call(value, key)) {
8744
+ if (hasOwnProperty$7.call(value, key)) {
8228
8745
  return false;
8229
8746
  }
8230
8747
  }
@@ -8233,6 +8750,15 @@
8233
8750
 
8234
8751
  var isEmpty_1 = isEmpty$1;
8235
8752
 
8753
+ /**
8754
+ * Levels at which a filter or parameter can be applied.
8755
+ */
8756
+ var ApplicabilityLevel;
8757
+ (function (ApplicabilityLevel) {
8758
+ ApplicabilityLevel["Liveboard"] = "LIVEBOARD";
8759
+ ApplicabilityLevel["Tab"] = "TAB";
8760
+ ApplicabilityLevel["Group"] = "GROUP";
8761
+ })(ApplicabilityLevel || (ApplicabilityLevel = {}));
8236
8762
  exports.UIPassthroughEvent = void 0;
8237
8763
  (function (UIPassthroughEvent) {
8238
8764
  UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
@@ -8250,6 +8776,7 @@
8250
8776
  UIPassthroughEvent["GetParameters"] = "getParameters";
8251
8777
  UIPassthroughEvent["GetTML"] = "getTML";
8252
8778
  UIPassthroughEvent["GetTabs"] = "getTabs";
8779
+ UIPassthroughEvent["GetGroups"] = "getGroups";
8253
8780
  UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
8254
8781
  })(exports.UIPassthroughEvent || (exports.UIPassthroughEvent = {}));
8255
8782
 
@@ -9470,10 +9997,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9470
9997
  var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
9471
9998
 
9472
9999
  /** Used for built-in method references. */
9473
- var objectProto$5 = Object.prototype;
10000
+ var objectProto$6 = Object.prototype;
9474
10001
 
9475
10002
  /** Used to check objects for own properties. */
9476
- var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
10003
+ var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
9477
10004
 
9478
10005
  /**
9479
10006
  * Gets the hash value for `key`.
@@ -9490,16 +10017,16 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9490
10017
  var result = data[key];
9491
10018
  return result === HASH_UNDEFINED$2 ? undefined : result;
9492
10019
  }
9493
- return hasOwnProperty$5.call(data, key) ? data[key] : undefined;
10020
+ return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
9494
10021
  }
9495
10022
 
9496
10023
  var _hashGet = hashGet;
9497
10024
 
9498
10025
  /** Used for built-in method references. */
9499
- var objectProto$4 = Object.prototype;
10026
+ var objectProto$5 = Object.prototype;
9500
10027
 
9501
10028
  /** Used to check objects for own properties. */
9502
- var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
10029
+ var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
9503
10030
 
9504
10031
  /**
9505
10032
  * Checks if a hash value for `key` exists.
@@ -9512,7 +10039,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9512
10039
  */
9513
10040
  function hashHas(key) {
9514
10041
  var data = this.__data__;
9515
- return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$4.call(data, key);
10042
+ return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
9516
10043
  }
9517
10044
 
9518
10045
  var _hashHas = hashHas;
@@ -10487,7 +11014,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10487
11014
  numberTag = '[object Number]',
10488
11015
  regexpTag = '[object RegExp]',
10489
11016
  setTag = '[object Set]',
10490
- stringTag = '[object String]',
11017
+ stringTag$1 = '[object String]',
10491
11018
  symbolTag = '[object Symbol]';
10492
11019
 
10493
11020
  var arrayBufferTag = '[object ArrayBuffer]',
@@ -10542,7 +11069,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10542
11069
  return object.name == other.name && object.message == other.message;
10543
11070
 
10544
11071
  case regexpTag:
10545
- case stringTag:
11072
+ case stringTag$1:
10546
11073
  // Coerce regexes to strings and treat strings, primitives and objects,
10547
11074
  // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
10548
11075
  // for more details.
@@ -10650,10 +11177,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10650
11177
  var stubArray_1 = stubArray;
10651
11178
 
10652
11179
  /** Used for built-in method references. */
10653
- var objectProto$3 = Object.prototype;
11180
+ var objectProto$4 = Object.prototype;
10654
11181
 
10655
11182
  /** Built-in value references. */
10656
- var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
11183
+ var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
10657
11184
 
10658
11185
  /* Built-in method references for those with the same name as other `lodash` methods. */
10659
11186
  var nativeGetSymbols = Object.getOwnPropertySymbols;
@@ -10725,10 +11252,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10725
11252
  var _isIndex = isIndex;
10726
11253
 
10727
11254
  /** Used for built-in method references. */
10728
- var objectProto$2 = Object.prototype;
11255
+ var objectProto$3 = Object.prototype;
10729
11256
 
10730
11257
  /** Used to check objects for own properties. */
10731
- var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
11258
+ var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
10732
11259
 
10733
11260
  /**
10734
11261
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -10748,7 +11275,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10748
11275
  length = result.length;
10749
11276
 
10750
11277
  for (var key in value) {
10751
- if ((inherited || hasOwnProperty$3.call(value, key)) &&
11278
+ if ((inherited || hasOwnProperty$4.call(value, key)) &&
10752
11279
  !(skipIndexes && (
10753
11280
  // Safari 9 has enumerable `arguments.length` in strict mode.
10754
11281
  key == 'length' ||
@@ -10818,10 +11345,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10818
11345
  var COMPARE_PARTIAL_FLAG$3 = 1;
10819
11346
 
10820
11347
  /** Used for built-in method references. */
10821
- var objectProto$1 = Object.prototype;
11348
+ var objectProto$2 = Object.prototype;
10822
11349
 
10823
11350
  /** Used to check objects for own properties. */
10824
- var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
11351
+ var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
10825
11352
 
10826
11353
  /**
10827
11354
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -10849,7 +11376,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10849
11376
  var index = objLength;
10850
11377
  while (index--) {
10851
11378
  var key = objProps[index];
10852
- if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) {
11379
+ if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
10853
11380
  return false;
10854
11381
  }
10855
11382
  }
@@ -10909,13 +11436,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10909
11436
  /** `Object#toString` result references. */
10910
11437
  var argsTag = '[object Arguments]',
10911
11438
  arrayTag = '[object Array]',
10912
- objectTag = '[object Object]';
11439
+ objectTag$1 = '[object Object]';
10913
11440
 
10914
11441
  /** Used for built-in method references. */
10915
- var objectProto = Object.prototype;
11442
+ var objectProto$1 = Object.prototype;
10916
11443
 
10917
11444
  /** Used to check objects for own properties. */
10918
- var hasOwnProperty$1 = objectProto.hasOwnProperty;
11445
+ var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
10919
11446
 
10920
11447
  /**
10921
11448
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -10937,11 +11464,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10937
11464
  objTag = objIsArr ? arrayTag : _getTag(object),
10938
11465
  othTag = othIsArr ? arrayTag : _getTag(other);
10939
11466
 
10940
- objTag = objTag == argsTag ? objectTag : objTag;
10941
- othTag = othTag == argsTag ? objectTag : othTag;
11467
+ objTag = objTag == argsTag ? objectTag$1 : objTag;
11468
+ othTag = othTag == argsTag ? objectTag$1 : othTag;
10942
11469
 
10943
- var objIsObj = objTag == objectTag,
10944
- othIsObj = othTag == objectTag,
11470
+ var objIsObj = objTag == objectTag$1,
11471
+ othIsObj = othTag == objectTag$1,
10945
11472
  isSameTag = objTag == othTag;
10946
11473
 
10947
11474
  if (isSameTag && isBuffer_1(object)) {
@@ -10958,8 +11485,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10958
11485
  : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
10959
11486
  }
10960
11487
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
10961
- var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'),
10962
- othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__');
11488
+ var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
11489
+ othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
10963
11490
 
10964
11491
  if (objIsWrapped || othIsWrapped) {
10965
11492
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -12170,7 +12697,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12170
12697
  var ObjProto = Object.prototype;
12171
12698
  var slice = ArrayProto.slice;
12172
12699
  var toString = ObjProto.toString;
12173
- var hasOwnProperty = ObjProto.hasOwnProperty;
12700
+ var hasOwnProperty$1 = ObjProto.hasOwnProperty;
12174
12701
  var windowConsole = window$1.console;
12175
12702
  var navigator = window$1.navigator;
12176
12703
  var document$1 = window$1.document;
@@ -12307,7 +12834,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12307
12834
  }
12308
12835
  } else {
12309
12836
  for (var key in obj) {
12310
- if (hasOwnProperty.call(obj, key)) {
12837
+ if (hasOwnProperty$1.call(obj, key)) {
12311
12838
  if (iterator.call(context, obj[key], key, obj) === breaker) {
12312
12839
  return;
12313
12840
  }
@@ -12343,7 +12870,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12343
12870
  };
12344
12871
 
12345
12872
  _.isArguments = function(obj) {
12346
- return !!(obj && hasOwnProperty.call(obj, 'callee'));
12873
+ return !!(obj && hasOwnProperty$1.call(obj, 'callee'));
12347
12874
  };
12348
12875
 
12349
12876
  _.toArray = function(iterable) {
@@ -12431,7 +12958,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12431
12958
  _.isEmptyObject = function(obj) {
12432
12959
  if (_.isObject(obj)) {
12433
12960
  for (var key in obj) {
12434
- if (hasOwnProperty.call(obj, key)) {
12961
+ if (hasOwnProperty$1.call(obj, key)) {
12435
12962
  return false;
12436
12963
  }
12437
12964
  }
@@ -12623,7 +13150,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12623
13150
 
12624
13151
  // Iterate through all of the keys in the object.
12625
13152
  for (k in value) {
12626
- if (hasOwnProperty.call(value, k)) {
13153
+ if (hasOwnProperty$1.call(value, k)) {
12627
13154
  v = str(k, value);
12628
13155
  if (v) {
12629
13156
  partial.push(quote(k) + (gap ? ': ' : ':') + v);
@@ -18292,6 +18819,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
18292
18819
  VISUAL_SDK_IFRAME_LOAD_PERFORMANCE: 'visual-sdk-iframe-load-performance',
18293
18820
  VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
18294
18821
  VERCEL_INTEGRATION_COMPLETED: 'vercel-integration-completed',
18822
+ VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
18823
+ VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
18824
+ VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
18825
+ VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
18295
18826
  };
18296
18827
  let isMixpanelInitialized = false;
18297
18828
  let eventQueue = [];
@@ -20044,6 +20575,154 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20044
20575
  return eventData;
20045
20576
  }
20046
20577
 
20578
+ /**
20579
+ * Checks if `value` is `null` or `undefined`.
20580
+ *
20581
+ * @static
20582
+ * @memberOf _
20583
+ * @since 4.0.0
20584
+ * @category Lang
20585
+ * @param {*} value The value to check.
20586
+ * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
20587
+ * @example
20588
+ *
20589
+ * _.isNil(null);
20590
+ * // => true
20591
+ *
20592
+ * _.isNil(void 0);
20593
+ * // => true
20594
+ *
20595
+ * _.isNil(NaN);
20596
+ * // => false
20597
+ */
20598
+ function isNil(value) {
20599
+ return value == null;
20600
+ }
20601
+
20602
+ var isNil_1 = isNil;
20603
+
20604
+ /** Built-in value references. */
20605
+ var getPrototype = _overArg(Object.getPrototypeOf, Object);
20606
+
20607
+ var _getPrototype = getPrototype;
20608
+
20609
+ /** `Object#toString` result references. */
20610
+ var objectTag = '[object Object]';
20611
+
20612
+ /** Used for built-in method references. */
20613
+ var funcProto = Function.prototype,
20614
+ objectProto = Object.prototype;
20615
+
20616
+ /** Used to resolve the decompiled source of functions. */
20617
+ var funcToString = funcProto.toString;
20618
+
20619
+ /** Used to check objects for own properties. */
20620
+ var hasOwnProperty = objectProto.hasOwnProperty;
20621
+
20622
+ /** Used to infer the `Object` constructor. */
20623
+ var objectCtorString = funcToString.call(Object);
20624
+
20625
+ /**
20626
+ * Checks if `value` is a plain object, that is, an object created by the
20627
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
20628
+ *
20629
+ * @static
20630
+ * @memberOf _
20631
+ * @since 0.8.0
20632
+ * @category Lang
20633
+ * @param {*} value The value to check.
20634
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
20635
+ * @example
20636
+ *
20637
+ * function Foo() {
20638
+ * this.a = 1;
20639
+ * }
20640
+ *
20641
+ * _.isPlainObject(new Foo);
20642
+ * // => false
20643
+ *
20644
+ * _.isPlainObject([1, 2, 3]);
20645
+ * // => false
20646
+ *
20647
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
20648
+ * // => true
20649
+ *
20650
+ * _.isPlainObject(Object.create(null));
20651
+ * // => true
20652
+ */
20653
+ function isPlainObject(value) {
20654
+ if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag) {
20655
+ return false;
20656
+ }
20657
+ var proto = _getPrototype(value);
20658
+ if (proto === null) {
20659
+ return true;
20660
+ }
20661
+ var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
20662
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
20663
+ funcToString.call(Ctor) == objectCtorString;
20664
+ }
20665
+
20666
+ var isPlainObject_1 = isPlainObject;
20667
+
20668
+ /** `Object#toString` result references. */
20669
+ var stringTag = '[object String]';
20670
+
20671
+ /**
20672
+ * Checks if `value` is classified as a `String` primitive or object.
20673
+ *
20674
+ * @static
20675
+ * @since 0.1.0
20676
+ * @memberOf _
20677
+ * @category Lang
20678
+ * @param {*} value The value to check.
20679
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
20680
+ * @example
20681
+ *
20682
+ * _.isString('abc');
20683
+ * // => true
20684
+ *
20685
+ * _.isString(1);
20686
+ * // => false
20687
+ */
20688
+ function isString(value) {
20689
+ return typeof value == 'string' ||
20690
+ (!isArray_1(value) && isObjectLike_1(value) && _baseGetTag(value) == stringTag);
20691
+ }
20692
+
20693
+ var isString_1 = isString;
20694
+
20695
+ /**
20696
+ * Checks if `value` is `undefined`.
20697
+ *
20698
+ * @static
20699
+ * @since 0.1.0
20700
+ * @memberOf _
20701
+ * @category Lang
20702
+ * @param {*} value The value to check.
20703
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
20704
+ * @example
20705
+ *
20706
+ * _.isUndefined(void 0);
20707
+ * // => true
20708
+ *
20709
+ * _.isUndefined(null);
20710
+ * // => false
20711
+ */
20712
+ function isUndefined(value) {
20713
+ return value === undefined;
20714
+ }
20715
+
20716
+ var isUndefined_1 = isUndefined;
20717
+
20718
+ const isValidApplicability = (a) => {
20719
+ if (isUndefined_1(a))
20720
+ return true;
20721
+ // targetId is not required at LIVEBOARD level, since the filter applies to the whole Liveboard
20722
+ return isPlainObject_1(a)
20723
+ && Object.values(ApplicabilityLevel).includes(a.level)
20724
+ && (a.level === ApplicabilityLevel.Liveboard || (isString_1(a.targetId) && a.targetId.trim().length > 0));
20725
+ };
20047
20726
  function isValidUpdateFiltersPayload(payload) {
20048
20727
  if (!payload)
20049
20728
  return false;
@@ -20052,12 +20731,23 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20052
20731
  const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string';
20053
20732
  const hasValues = Array.isArray(f.values);
20054
20733
  const validType = !f.type || typeof f.type === 'string';
20055
- return hasColumn && hasOperator && hasValues && validType;
20734
+ return hasColumn && hasOperator && hasValues && validType && isValidApplicability(f.applicability);
20056
20735
  };
20057
20736
  const hasValidFilter = payload.filter && isValidFilter(payload.filter);
20058
20737
  const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
20059
20738
  return !!(hasValidFilter || hasValidFilters);
20060
20739
  }
20740
+ function isValidUpdateParametersPayload(payload) {
20741
+ // Only validates the applicability of each parameter (null treated as absent); the rest is forwarded as-is for backward compatibility.
20742
+ if (!Array.isArray(payload))
20743
+ return true;
20744
+ return payload.every((p) => {
20745
+ if (!isPlainObject_1(p))
20746
+ return true;
20747
+ const { applicability } = p;
20748
+ return isNil_1(applicability) || isValidApplicability(applicability);
20749
+ });
20750
+ }
20061
20751
  function isValidDrillDownPayload(payload) {
20062
20752
  if (!payload)
20063
20753
  return false;
@@ -20088,6 +20778,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20088
20778
  }
20089
20779
  function throwDrillDownValidationError() {
20090
20780
  createValidationError(ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD);
20781
+ }
20782
+ function throwUpdateParametersValidationError() {
20783
+ createValidationError(ERROR_MESSAGE.UPDATEPARAMETERS_INVALID_PAYLOAD);
20091
20784
  }
20092
20785
 
20093
20786
  /**
@@ -20108,6 +20801,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20108
20801
  [exports.HostEvent.GetParameters]: exports.UIPassthroughEvent.GetParameters,
20109
20802
  [exports.HostEvent.GetTML]: exports.UIPassthroughEvent.GetTML,
20110
20803
  [exports.HostEvent.GetTabs]: exports.UIPassthroughEvent.GetTabs,
20804
+ [exports.HostEvent.GetGroups]: exports.UIPassthroughEvent.GetGroups,
20111
20805
  [exports.HostEvent.getExportRequestForCurrentPinboard]: exports.UIPassthroughEvent.GetExportRequestForCurrentPinboard,
20112
20806
  };
20113
20807
  class HostEventClient {
@@ -20119,6 +20813,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20119
20813
  [exports.HostEvent.Pin]: (p, c) => this.handlePinEvent(p, c),
20120
20814
  [exports.HostEvent.SaveAnswer]: (p, c) => this.handleSaveAnswerEvent(p, c),
20121
20815
  [exports.HostEvent.UpdateFilters]: (p, c) => this.handleUpdateFiltersEvent(p, c),
20816
+ [exports.HostEvent.UpdateParameters]: (p, c) => this.handleUpdateParametersEvent(p, c),
20122
20817
  [exports.HostEvent.DrillDown]: (p, c) => this.handleDrillDownEvent(p, c),
20123
20818
  };
20124
20819
  }
@@ -20243,6 +20938,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20243
20938
  }
20244
20939
  return this.handleHostEventWithParam(exports.UIPassthroughEvent.UpdateFilters, payload, context);
20245
20940
  }
20941
+ handleUpdateParametersEvent(payload, context) {
20942
+ if (!isValidUpdateParametersPayload(payload)) {
20943
+ throwUpdateParametersValidationError();
20944
+ }
20945
+ // UpdateParameters has no UI passthrough contract; dispatch over the legacy channel
20946
+ return this.hostEventFallback(exports.HostEvent.UpdateParameters, payload, context);
20947
+ }
20246
20948
  handleDrillDownEvent(payload, context) {
20247
20949
  if (!isValidDrillDownPayload(payload)) {
20248
20950
  throwDrillDownValidationError();
@@ -21028,7 +21730,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21028
21730
  if (this.embedConfig.currencyFormat) {
21029
21731
  queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
21030
21732
  }
21031
- const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
21733
+ const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, overrideHistoryState, exposeTranslationIDs, primaryAction, } = this.viewConfig;
21032
21734
  const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
21033
21735
  const additionalFlags = {
21034
21736
  ...additionalFlagsFromInit,
@@ -21116,6 +21818,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21116
21818
  if (overrideOrgId !== undefined) {
21117
21819
  queryParams[Param.OverrideOrgId] = overrideOrgId;
21118
21820
  }
21821
+ if (overrideHistoryState !== undefined) {
21822
+ queryParams[Param.OverrideHistoryState] = overrideHistoryState;
21823
+ }
21119
21824
  if (this.isPreAuthCacheEnabled()) {
21120
21825
  queryParams[Param.preAuthCache] = true;
21121
21826
  }
@@ -21801,6 +22506,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21801
22506
  * @param args
21802
22507
  */
21803
22508
  async render() {
22509
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
22510
+ embedComponentType: this.viewConfig.embedComponentType,
22511
+ });
21804
22512
  if (!getIsInitCalled()) {
21805
22513
  logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
21806
22514
  }
@@ -21872,6 +22580,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21872
22580
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
21873
22581
  */
21874
22582
  async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
22583
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
22584
+ showPreRenderByDefault,
22585
+ replaceExistingPreRender,
22586
+ });
21875
22587
  if (!this.viewConfig.preRenderId) {
21876
22588
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
21877
22589
  return this;
@@ -22048,7 +22760,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22048
22760
  * wrapper to overlay it.
22049
22761
  */
22050
22762
  async showPreRender() {
22051
- var _a;
22763
+ var _a, _b;
22764
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22765
+ preRenderId: this.viewConfig.preRenderId,
22766
+ embedComponentType: this.viewConfig.embedComponentType,
22767
+ });
22052
22768
  if (this.shouldWaitForRenderPromise)
22053
22769
  await this.isReadyForRenderPromise;
22054
22770
  if (!this.viewConfig.preRenderId) {
@@ -22072,10 +22788,14 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22072
22788
  }
22073
22789
  }
22074
22790
  const placeHolderId = this.getPreRenderIds().placeHolder;
22075
- const oldEle = this.hostElement.querySelector(`#${placeHolderId}`);
22076
- if (oldEle) {
22077
- this.hostElement.removeChild(oldEle);
22078
- }
22791
+ // Remove any stale placeholder from a previous cycle. It is located
22792
+ // via a subtree-wide querySelector, so it may be nested deeper than a
22793
+ // direct child (E.g.: with fullHeight the host app can wrap it). Use
22794
+ // Element.remove() — which detaches from whatever the real parent is —
22795
+ // rather than hostElement.removeChild(), which throws NotFoundError
22796
+ // when the match is not a direct child. Mirrors the wrapper/child
22797
+ // cleanup in createPreRenderWrapper()/createPreRenderChild().
22798
+ (_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
22079
22799
  this.hostElement.appendChild(this.insertedDomEl);
22080
22800
  this.syncPreRenderStyle();
22081
22801
  const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
@@ -22086,7 +22806,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22086
22806
  customContainer.addEventListener('scroll', this.containerScrollListener);
22087
22807
  }
22088
22808
  if (!this.viewConfig.doNotTrackPreRenderSize) {
22089
- const observeTarget = (_a = this.insertedDomEl) !== null && _a !== void 0 ? _a : this.hostElement;
22809
+ const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
22090
22810
  this.resizeObserver = new ResizeObserver((entries) => {
22091
22811
  entries.forEach((entry) => {
22092
22812
  if (entry.target === observeTarget) {
@@ -22150,6 +22870,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22150
22870
  * If the component is not preRendered, it issues a warning.
22151
22871
  */
22152
22872
  hidePreRender() {
22873
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
22874
+ preRenderId: this.viewConfig.preRenderId,
22875
+ embedComponentType: this.viewConfig.embedComponentType,
22876
+ });
22153
22877
  logger$3.debug('HidePreRender Called');
22154
22878
  if (!this.isPreRenderConnected()) {
22155
22879
  // if the embed component is not preRendered , nothing to hide
@@ -22357,6 +23081,18 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22357
23081
  ...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
22358
23082
  },
22359
23083
  };
23084
+ }
23085
+ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23086
+ const { spotterShareConversationConfig } = viewConfig;
23087
+ if (!spotterShareConversationConfig)
23088
+ return initData;
23089
+ return {
23090
+ ...initData,
23091
+ embedParams: {
23092
+ ...(initData.embedParams || {}),
23093
+ spotterShareConversationConfig,
23094
+ },
23095
+ };
22360
23096
  }
22361
23097
 
22362
23098
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -22418,6 +23154,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22418
23154
  * Monitor Alerts Page
22419
23155
  */
22420
23156
  Page["Monitor"] = "monitor";
23157
+ /**
23158
+ * Collections listing page
23159
+ */
23160
+ Page["Collections"] = "collections";
22421
23161
  })(exports.Page || (exports.Page = {}));
22422
23162
  /**
22423
23163
  * Define the initial state of column custom group accordions
@@ -22466,6 +23206,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22466
23206
  /**
22467
23207
  * Modular (v2) introduces the updated Modular Home Experience.
22468
23208
  * It serves as the foundational version of the home page.
23209
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
23210
+ * {@link HomePage.Focused} (V4) instead.
23211
+ * @deprecated V1 and V2 home page experiences are deprecated.
22469
23212
  */
22470
23213
  HomePage["Modular"] = "v2";
22471
23214
  /**
@@ -22581,14 +23324,19 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22581
23324
  async getAppInitData() {
22582
23325
  const defaultAppInitData = await super.getAppInitData();
22583
23326
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
22584
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23327
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23328
+ return buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
22585
23329
  }
22586
23330
  /**
22587
23331
  * Constructs a map of parameters to be passed on to the
22588
23332
  * embedded Liveboard or visualization.
22589
23333
  */
22590
23334
  getEmbedParams() {
22591
- 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 = exports.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, enableStopAnswerGenerationEmbed, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
23335
+ const params = this.getEmbedParamsObject();
23336
+ return getQueryParamString(params, true);
23337
+ }
23338
+ getEmbedParamsObject() {
23339
+ 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, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = exports.DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
22592
23340
  let params = {};
22593
23341
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
22594
23342
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -22598,28 +23346,48 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22598
23346
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
22599
23347
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
22600
23348
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
22601
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23349
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
23350
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23351
+ }
22602
23352
  if (newChartsLibrary !== undefined) {
22603
23353
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
22604
23354
  }
22605
23355
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
22606
23356
  params[Param.IsFullAppEmbed] = true;
22607
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
22608
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
23357
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23358
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23359
+ }
23360
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
23361
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
23362
+ isEnhancedFilterInteractivityEnabled;
23363
+ }
22609
23364
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
22610
23365
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
22611
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23366
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
23367
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23368
+ }
22612
23369
  if (isUnifiedSearchExperienceEnabled !== undefined) {
22613
23370
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
22614
23371
  }
22615
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23372
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
23373
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23374
+ }
22616
23375
  params = this.getBaseQueryParams(params);
22617
- if (!isUndefined(updatedSpotterChatPrompt)) {
23376
+ if (!isUndefined$1(updatedSpotterChatPrompt)) {
22618
23377
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
22619
23378
  }
22620
- if (!isUndefined(enableStopAnswerGenerationEmbed)) {
23379
+ if (!isUndefined$1(showSpotterRadiance)) {
23380
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23381
+ }
23382
+ if (!isUndefined$1(defaultQueryMode)) {
23383
+ params[Param.DefaultQueryMode] = defaultQueryMode;
23384
+ }
23385
+ if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
22621
23386
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
22622
23387
  }
23388
+ if (spotterDataSources && spotterDataSources.length) {
23389
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
23390
+ }
22623
23391
  // Handle spotterChatConfig params
22624
23392
  if (spotterChatConfig) {
22625
23393
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -22635,6 +23403,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22635
23403
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
22636
23404
  }
22637
23405
  }
23406
+ if (!isUndefined$1(updatedSpotterExperience)) {
23407
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23408
+ }
22638
23409
  if (hideObjectSearch) {
22639
23410
  params[Param.HideObjectSearch] = !!hideObjectSearch;
22640
23411
  }
@@ -22701,6 +23472,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22701
23472
  if (isCentralizedLiveboardFilterUXEnabled != undefined) {
22702
23473
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
22703
23474
  }
23475
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23476
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23477
+ }
22704
23478
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
22705
23479
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
22706
23480
  }
@@ -22716,7 +23490,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22716
23490
  }
22717
23491
  params[Param.DataPanelV2Enabled] = dataPanelV2;
22718
23492
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
22719
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
22720
23493
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
22721
23494
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
22722
23495
  if (dataPanelCustomGroupsAccordionInitialState
@@ -22731,33 +23504,15 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22731
23504
  if (modularHomeExperience !== undefined) {
22732
23505
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
22733
23506
  }
22734
- // Set navigation to v2 by default to avoid problems like the app
22735
- // switcher (9-dot menu) not showing when v3 navigation is turned on
22736
- // at the cluster level.
22737
- // To use v3 navigation, we must manually set the discoveryExperience
22738
- // settings.
22739
- params[Param.NavigationVersion] = 'v2';
22740
- // Set homePageVersion to v2 by default to reset the LD flag value
22741
- // for the homepageVersion.
22742
- params[Param.HomepageVersion] = 'v2';
23507
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
23508
+ // default experience, Need to send navigationVersion=v3 and
23509
+ // homepageVersion=v3 even when the no discoveryExperience /
23510
+ // modularHomeExperience config is set. Without these
23511
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
23512
+ // home page, so the defaults must be sent explicitly from the SDK.
23513
+ params[Param.NavigationVersion] = exports.PrimaryNavbarVersion.Sliding;
23514
+ params[Param.HomepageVersion] = exports.HomePage.ModularWithStylingChanges;
22743
23515
  if (discoveryExperience) {
22744
- // primaryNavbarVersion v3 will enabled the new left navigation
22745
- if (discoveryExperience.primaryNavbarVersion === exports.PrimaryNavbarVersion.Sliding) {
22746
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
22747
- // Enable the modularHomeExperience when Sliding is enabled.
22748
- params[Param.ModularHomeExperienceEnabled] = true;
22749
- }
22750
- // homePage v2 will enable the modular home page
22751
- // and it will override the modularHomeExperience value
22752
- if (discoveryExperience.homePage === exports.HomePage.Modular) {
22753
- params[Param.ModularHomeExperienceEnabled] = true;
22754
- }
22755
- // ModularWithStylingChanges (v3) introduces the styling changes
22756
- // to the Modular Homepage.
22757
- // v3 will be the base version of homePageVersion.
22758
- if (discoveryExperience.homePage === exports.HomePage.ModularWithStylingChanges) {
22759
- params[Param.HomepageVersion] = exports.HomePage.ModularWithStylingChanges;
22760
- }
22761
23516
  // listPageVersion can be changed to v2 or v3
22762
23517
  if (discoveryExperience.listPageVersion !== undefined) {
22763
23518
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
@@ -22767,13 +23522,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22767
23522
  // The Focused (V4) homepage experience requires the updated
22768
23523
  // Spotter chat prompt. Enable it automatically unless the
22769
23524
  // developer has explicitly set updatedSpotterChatPrompt.
22770
- if (isUndefined(updatedSpotterChatPrompt)) {
23525
+ if (isUndefined$1(updatedSpotterChatPrompt)) {
22771
23526
  params[Param.UpdatedSpotterChatPrompt] = true;
22772
23527
  }
22773
23528
  }
22774
23529
  }
22775
- const queryParams = getQueryParamString(params, true);
22776
- return queryParams;
23530
+ return params;
22777
23531
  }
22778
23532
  /**
22779
23533
  * Constructs the URL of the ThoughtSpot app page to be rendered.
@@ -22808,6 +23562,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22808
23562
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
22809
23563
  case exports.Page.Monitor:
22810
23564
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
23565
+ case exports.Page.Collections:
23566
+ return 'collections';
22811
23567
  case exports.Page.Home:
22812
23568
  default:
22813
23569
  return 'home';
@@ -22840,11 +23596,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22840
23596
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
22841
23597
  */
22842
23598
  navigateToPage(path, noReload = false) {
23599
+ var _a;
22843
23600
  if (!this.iFrame) {
22844
23601
  logger$3.log('Please call render before invoking this method');
22845
23602
  return;
22846
23603
  }
22847
- if (noReload) {
23604
+ const overrideHistoryState = (_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.overrideHistoryState;
23605
+ if (noReload || overrideHistoryState) {
22848
23606
  this.trigger(exports.HostEvent.Navigate, path);
22849
23607
  }
22850
23608
  else {
@@ -23113,7 +23871,7 @@ query GetEurekaVizSnapshots(
23113
23871
  getEmbedParamsObject() {
23114
23872
  let params = {};
23115
23873
  params = this.getBaseQueryParams(params);
23116
- 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;
23874
+ 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, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23117
23875
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23118
23876
  || this.viewConfig.preventPinboardFilterRemoval;
23119
23877
  if (fullHeight === true) {
@@ -23132,10 +23890,13 @@ query GetEurekaVizSnapshots(
23132
23890
  if (preventLiveboardFilterRemoval) {
23133
23891
  params[Param.preventLiveboardFilterRemoval] = true;
23134
23892
  }
23135
- if (!isUndefined(updatedSpotterChatPrompt)) {
23893
+ if (!isUndefined$1(updatedSpotterChatPrompt)) {
23136
23894
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23137
23895
  }
23138
- if (!isUndefined(enableStopAnswerGenerationEmbed)) {
23896
+ if (!isUndefined$1(showSpotterRadiance)) {
23897
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23898
+ }
23899
+ if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23139
23900
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23140
23901
  }
23141
23902
  if (visibleVizs) {
@@ -23190,6 +23951,9 @@ query GetEurekaVizSnapshots(
23190
23951
  if (showSpotterLimitations !== undefined) {
23191
23952
  params[Param.ShowSpotterLimitations] = showSpotterLimitations;
23192
23953
  }
23954
+ if (!isUndefined$1(updatedSpotterExperience)) {
23955
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23956
+ }
23193
23957
  // Handle spotterChatConfig params
23194
23958
  if (spotterChatConfig) {
23195
23959
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -23211,6 +23975,9 @@ query GetEurekaVizSnapshots(
23211
23975
  if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
23212
23976
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23213
23977
  }
23978
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23979
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23980
+ }
23214
23981
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23215
23982
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23216
23983
  }
@@ -23224,16 +23991,27 @@ query GetEurekaVizSnapshots(
23224
23991
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23225
23992
  }
23226
23993
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23227
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23994
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23995
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23996
+ }
23228
23997
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23229
23998
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23230
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23999
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
24000
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24001
+ }
23231
24002
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23232
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23233
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
24003
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
24004
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
24005
+ }
24006
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
24007
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
24008
+ isEnhancedFilterInteractivityEnabled;
24009
+ }
23234
24010
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23235
24011
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23236
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24012
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
24013
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24014
+ }
23237
24015
  getQueryParamString(params, true);
23238
24016
  return params;
23239
24017
  }
@@ -23336,7 +24114,7 @@ query GetEurekaVizSnapshots(
23336
24114
  });
23337
24115
  }
23338
24116
  async handleRenderForPrerender() {
23339
- if (isUndefined(this.viewConfig.liveboardId)) {
24117
+ if (isUndefined$1(this.viewConfig.liveboardId)) {
23340
24118
  return this.prerenderGeneric();
23341
24119
  }
23342
24120
  return super.handleRenderForPrerender();
@@ -24255,6 +25033,15 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24255
25033
  }
24256
25034
  }
24257
25035
 
25036
+ /**
25037
+ * The query mode Spotter uses when answering a question.
25038
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
25039
+ */
25040
+ exports.SpotterQueryMode = void 0;
25041
+ (function (SpotterQueryMode) {
25042
+ SpotterQueryMode["FAST_SEARCH"] = "fastSearch";
25043
+ SpotterQueryMode["RESEARCH"] = "research";
25044
+ })(exports.SpotterQueryMode || (exports.SpotterQueryMode = {}));
24258
25045
  /**
24259
25046
  * Embed ThoughtSpot AI Conversation.
24260
25047
  * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
@@ -24295,18 +25082,11 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24295
25082
  */
24296
25083
  async getAppInitData() {
24297
25084
  const defaultAppInitData = await super.getAppInitData();
24298
- return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25085
+ const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25086
+ return buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
24299
25087
  }
24300
25088
  getEmbedParamsObject() {
24301
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24302
- if (!worksheetId) {
24303
- this.handleError({
24304
- errorType: exports.ErrorDetailsTypes.VALIDATION_ERROR,
24305
- message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24306
- code: exports.EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
24307
- error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24308
- });
24309
- }
25089
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24310
25090
  const queryParams = this.getBaseQueryParams();
24311
25091
  queryParams[Param.SpotterEnabled] = true;
24312
25092
  // Boolean params
@@ -24316,6 +25096,8 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24316
25096
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
24317
25097
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
24318
25098
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
25099
+ setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
25100
+ setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
24319
25101
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
24320
25102
  // Handle spotterChatConfig params
24321
25103
  if (spotterChatConfig) {
@@ -24328,11 +25110,18 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24328
25110
  queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
24329
25111
  }
24330
25112
  }
25113
+ setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
24331
25114
  return queryParams;
24332
25115
  }
24333
25116
  getIframeSrc() {
24334
- const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
24335
- const path = 'insights/conv-assist';
25117
+ const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
25118
+ // Deep-link into the read-only shared-conversation reader view when a
25119
+ // shared conversation id is supplied (e.g. a recipient landing from a
25120
+ // host-configured CONVERSATION_URL share link); otherwise the normal
25121
+ // Spotter conversation surface.
25122
+ const path = sharedConversationId
25123
+ ? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
25124
+ : 'insights/conv-assist';
24336
25125
  const queryParams = this.getEmbedParamsObject();
24337
25126
  let query = '';
24338
25127
  const queryParamsString = getQueryParamString(queryParams, true);
@@ -24348,8 +25137,12 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24348
25137
  query += `&${parameterQuery}`;
24349
25138
  }
24350
25139
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
24351
- worksheet: worksheetId,
24352
- query: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) || '',
25140
+ ...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
25141
+ && { worksheet: worksheetId }),
25142
+ ...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
25143
+ ...(Array.isArray(dataSources)
25144
+ && dataSources.length > 0
25145
+ && { dataSources: JSON.stringify(dataSources) }),
24353
25146
  });
24354
25147
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
24355
25148
  }