@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
@@ -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, require('react')) :
@@ -396,7 +396,9 @@
396
396
  })(AuthType || (AuthType = {}));
397
397
  /**
398
398
  *
399
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
399
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
400
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
401
+ * V4 (Focused) home page experiences.
400
402
  *
401
403
  */
402
404
  exports.HomeLeftNavItem = void 0;
@@ -464,6 +466,13 @@
464
466
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
465
467
  */
466
468
  HomeLeftNavItem["Favorites"] = "favorites";
469
+ /**
470
+ * The *Collections* menu option in
471
+ * the *Insights* left navigation panel.
472
+ * Shown when collections are enabled on the cluster.
473
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
474
+ */
475
+ HomeLeftNavItem["Collections"] = "collections";
467
476
  })(exports.HomeLeftNavItem || (exports.HomeLeftNavItem = {}));
468
477
  /**
469
478
  * A map of the supported runtime filter operations
@@ -536,7 +545,9 @@
536
545
  * via `hiddenHomepageModules` and reordered via
537
546
  * `reorderedHomepageModules`.
538
547
  *
539
- * **Note**: This option is not supported in the classic (v1) experience.
548
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
549
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
550
+ * V4 (Focused) home page experiences.
540
551
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
541
552
  */
542
553
  exports.HomepageModule = void 0;
@@ -1494,11 +1505,19 @@
1494
1505
  * Emitted when a user changes any filter on a Liveboard.
1495
1506
  * Returns filter type and name, column name and ID, and runtime
1496
1507
  * filter details.
1508
+ * The payload includes an optional `applicability` attribute indicating the
1509
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
1510
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1511
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1512
+ * is no `targetId`, since the filter applies to the whole Liveboard.
1513
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1514
+ * ThoughtSpot: 26.10.0.cl.
1497
1515
  * @example
1498
1516
  *
1499
1517
  * ```js
1500
1518
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
1501
1519
  * console.log('payload', payload);
1520
+ * // payload.data optionally includes applicability: { level, targetId }
1502
1521
  * })
1503
1522
  * ```
1504
1523
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -1690,9 +1709,17 @@
1690
1709
  /**
1691
1710
  * Emitted when parameter changes in an Answer
1692
1711
  * or Liveboard.
1712
+ * The payload includes an optional `applicability` attribute indicating the
1713
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
1714
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1715
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1716
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
1717
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1718
+ * ThoughtSpot: 26.10.0.cl.
1693
1719
  * ```js
1694
1720
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
1695
1721
  * console.log('payload', payload);
1722
+ * // payload.data optionally includes applicability: { level, targetId }
1696
1723
  * })
1697
1724
  * ```
1698
1725
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -1994,6 +2021,158 @@
1994
2021
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
1995
2022
  */
1996
2023
  EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
2024
+ /**
2025
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
2026
+ * to bracket the interaction. App→host counterpart of the
2027
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
2028
+ * @example
2029
+ * ```js
2030
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
2031
+ * // payload: { convId: string }
2032
+ * })
2033
+ * ```
2034
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2035
+ */
2036
+ EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
2037
+ /**
2038
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
2039
+ * to bracket the interaction.
2040
+ * @example
2041
+ * ```js
2042
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
2043
+ * // payload: { convId: string }
2044
+ * })
2045
+ * ```
2046
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2047
+ */
2048
+ EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
2049
+ /**
2050
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
2051
+ * share created). The host builds its own link from shareId/convId + its
2052
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
2053
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
2054
+ * the save resolves.
2055
+ * @example
2056
+ * ```js
2057
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
2058
+ * // payload: { convId: string, shareId: string,
2059
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
2060
+ * })
2061
+ * ```
2062
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2063
+ */
2064
+ EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
2065
+ /**
2066
+ * Emitted when access to a shared Spotter conversation is revoked
2067
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
2068
+ * and the share is deleted entirely.
2069
+ * @example
2070
+ * ```js
2071
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
2072
+ * // payload: { convId: string, shareId: string,
2073
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
2074
+ * })
2075
+ * ```
2076
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2077
+ */
2078
+ EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
2079
+ /**
2080
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
2081
+ * view). No shareId available viewer-side.
2082
+ * @example
2083
+ * ```js
2084
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
2085
+ * // payload: { convId: string, sourceConvId: string }
2086
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
2087
+ * })
2088
+ * ```
2089
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2090
+ */
2091
+ EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
2092
+ /**
2093
+ * Emitted when the user toggles the share-modal "include new messages since
2094
+ * last shared version" checkbox.
2095
+ * @example
2096
+ * ```js
2097
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
2098
+ * // payload: { convId: string, includeNewMessages: boolean }
2099
+ * })
2100
+ * ```
2101
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2102
+ */
2103
+ EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
2104
+ /**
2105
+ * Emitted when the user dismisses the stale-snapshot info banner via its
2106
+ * cross (distinct from the include-new-messages checkbox toggle).
2107
+ * @example
2108
+ * ```js
2109
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
2110
+ * // payload: { convId: string }
2111
+ * })
2112
+ * ```
2113
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2114
+ */
2115
+ EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
2116
+ /**
2117
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
2118
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
2119
+ * / `SpotterConversationShareRevoked` result events.
2120
+ * @example
2121
+ * ```js
2122
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
2123
+ * // payload: { convId: string }
2124
+ * })
2125
+ * ```
2126
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2127
+ */
2128
+ EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
2129
+ /**
2130
+ * Emitted when the share modal is dismissed via the Cancel button.
2131
+ * @example
2132
+ * ```js
2133
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
2134
+ * // payload: { convId: string }
2135
+ * })
2136
+ * ```
2137
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2138
+ */
2139
+ EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
2140
+ /**
2141
+ * Emitted when a recipient leaves the read-only shared view via the Exit
2142
+ * button.
2143
+ * @example
2144
+ * ```js
2145
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
2146
+ * // payload: { convId: string }
2147
+ * })
2148
+ * ```
2149
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2150
+ */
2151
+ EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
2152
+ /**
2153
+ * Emitted when a Spotter conversation is pinned.
2154
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2155
+ * @example
2156
+ * ```js
2157
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
2158
+ * console.log('Conversation pinned', payload);
2159
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
2160
+ * })
2161
+ * ```
2162
+ */
2163
+ EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
2164
+ /**
2165
+ * Emitted when a Spotter conversation is unpinned.
2166
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2167
+ * @example
2168
+ * ```js
2169
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
2170
+ * console.log('Conversation unpinned', payload);
2171
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
2172
+ * })
2173
+ * ```
2174
+ */
2175
+ EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
1997
2176
  /**
1998
2177
  * Emitted when a Spotter conversation is selected/clicked.
1999
2178
  * @example
@@ -2006,6 +2185,30 @@
2006
2185
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
2007
2186
  */
2008
2187
  EmbedEvent["SpotterConversationSelected"] = "spotterConversationSelected";
2188
+ /**
2189
+ * Emitted when the Spotter agent finishes streaming/rendering a response.
2190
+ * Includes the conversation and message identifiers so the host app can
2191
+ * fetch the full conversation history via the REST API if needed.
2192
+ *
2193
+ * The payload data has the shape `{ convId: string, messageId: string }`.
2194
+ *
2195
+ * Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
2196
+ * inside the full application).
2197
+ * @example
2198
+ * ```js
2199
+ * spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
2200
+ * console.log('Spotter response complete', payload);
2201
+ * })
2202
+ * ```
2203
+ * @example
2204
+ * ```js
2205
+ * appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
2206
+ * console.log('Spotter response complete', payload);
2207
+ * })
2208
+ * ```
2209
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
2210
+ */
2211
+ EmbedEvent["SpotterResponseComplete"] = "spotterResponseComplete";
2009
2212
  /**
2010
2213
  * @hidden
2011
2214
  * Emitted when the auth token is about to get expired and needs to be refreshed.
@@ -2486,6 +2689,17 @@
2486
2689
  * name: string,
2487
2690
  * type: ATTRIBUTE/MEASURE,
2488
2691
  * dataType: INT64/CHAR/DATE }
2692
+ *
2693
+ * `applicability` - Optional. Scopes the filter to a specific target,
2694
+ * for example, a single Liveboard tab, so the panel for the correct
2695
+ * scoped filter is opened. Available from SDK: 1.53.0 |
2696
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
2697
+ *
2698
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
2699
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2700
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2701
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
2702
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2489
2703
  * @example
2490
2704
  * ```js
2491
2705
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -2498,6 +2712,14 @@
2498
2712
  * ```
2499
2713
  * @example
2500
2714
  * ```js
2715
+ * // Open a filter scoped to a specific Liveboard tab
2716
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
2717
+ * column: { columnId: '<column-GUID>' },
2718
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
2719
+ * });
2720
+ * ```
2721
+ * @example
2722
+ * ```js
2501
2723
  * // Open filter from search context
2502
2724
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2503
2725
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -2507,6 +2729,38 @@
2507
2729
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2508
2730
  */
2509
2731
  HostEvent["OpenFilter"] = "openFilter";
2732
+ /**
2733
+ * Open the parameter panel for a particular parameter on a Liveboard.
2734
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
2735
+ * @param - Includes the following keys:
2736
+ * - `parameter`: An object identifying the parameter to open, for
2737
+ * example, `{ parameterId: '<parameter-GUID>' }`.
2738
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
2739
+ * for example, a single Liveboard tab, so the panel for the correct
2740
+ * scoped parameter is opened. Includes the following attributes:
2741
+ *
2742
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
2743
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2744
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2745
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
2746
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2747
+ * @example
2748
+ * ```js
2749
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2750
+ * parameter: { parameterId: '<parameter-GUID>' }
2751
+ * });
2752
+ * ```
2753
+ * @example
2754
+ * ```js
2755
+ * // Open a parameter scoped to a specific group
2756
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2757
+ * parameter: { parameterId: '<parameter-GUID>' },
2758
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
2759
+ * });
2760
+ * ```
2761
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2762
+ */
2763
+ HostEvent["OpenParameter"] = "openParameter";
2510
2764
  /**
2511
2765
  * Add columns to the current search query.
2512
2766
  * @param - { columnIds: string[] }
@@ -3571,6 +3825,14 @@
3571
3825
  /**
3572
3826
  * Get details of filters applied on the Liveboard.
3573
3827
  * Returns arrays containing Liveboard filter and runtime filter elements.
3828
+ * Each Liveboard filter includes an optional `applicability` attribute
3829
+ * indicating the scope of the filter. It contains a `level`
3830
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3831
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3832
+ * level there is no `targetId`, since the filter applies to the
3833
+ * whole Liveboard.
3834
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3835
+ * ThoughtSpot: 26.10.0.cl.
3574
3836
  * @example
3575
3837
  * ```js
3576
3838
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
@@ -3610,6 +3872,16 @@
3610
3872
  *
3611
3873
  * `type` - To update filters for date time, specify the date format type.
3612
3874
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
3875
+ *
3876
+ * `applicability` - Optional. Scopes the filter to a specific target,
3877
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3878
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3879
+ *
3880
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
3881
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
3882
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
3883
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
3884
+ * Liveboard.
3613
3885
  * @example
3614
3886
  * ```js
3615
3887
  *
@@ -3686,6 +3958,21 @@
3686
3958
  * }
3687
3959
  * }, ContextType.Liveboard);
3688
3960
  * ```
3961
+ * @example
3962
+ * ```js
3963
+ * // Scope the filter to a specific Liveboard tab
3964
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
3965
+ * filter: {
3966
+ * column: "item type",
3967
+ * oper: "IN",
3968
+ * values: ["bags", "shirts"],
3969
+ * applicability: {
3970
+ * level: "TAB",
3971
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
3972
+ * }
3973
+ * }
3974
+ * });
3975
+ * ```
3689
3976
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3690
3977
  */
3691
3978
  HostEvent["UpdateFilters"] = "updateFilters";
@@ -3710,6 +3997,28 @@
3710
3997
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3711
3998
  */
3712
3999
  HostEvent["GetTabs"] = "getTabs";
4000
+ /**
4001
+ * Get group details for the current Liveboard.
4002
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
4003
+ * @example
4004
+ * ```js
4005
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
4006
+ * console.log(
4007
+ * groupDetails // GroupDetails of current Liveboard
4008
+ * );
4009
+ * })
4010
+ * ```
4011
+ * @example
4012
+ * ```js
4013
+ * // Get groups from liveboard context
4014
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
4015
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
4016
+ * console.log('groups', groupDetails);
4017
+ * });
4018
+ * ```
4019
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4020
+ */
4021
+ HostEvent["GetGroups"] = "getGroups";
3713
4022
  /**
3714
4023
  * Set the visible tabs on a Liveboard.
3715
4024
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -3837,6 +4146,15 @@
3837
4146
  * - `name`: Name of the parameter.
3838
4147
  * - `value`: The value to set for the parameter.
3839
4148
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
4149
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
4150
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
4151
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
4152
+ *
4153
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
4154
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
4155
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
4156
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
4157
+ * Liveboard.
3840
4158
  *
3841
4159
  * @example
3842
4160
  * ```js
@@ -3848,6 +4166,18 @@
3848
4166
  * ```
3849
4167
  * @example
3850
4168
  * ```js
4169
+ * // Scope the parameter to a specific Liveboard tab
4170
+ * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
4171
+ * name: "Integer Range Param",
4172
+ * value: 10,
4173
+ * applicability: {
4174
+ * level: "TAB",
4175
+ * targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
4176
+ * }
4177
+ * }])
4178
+ * ```
4179
+ * @example
4180
+ * ```js
3851
4181
  * // Update parameters from liveboard context
3852
4182
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
3853
4183
  * liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
@@ -3861,6 +4191,14 @@
3861
4191
  HostEvent["UpdateParameters"] = "UpdateParameters";
3862
4192
  /**
3863
4193
  * Triggers GetParameters to fetch the runtime Parameters.
4194
+ * Each parameter includes an optional `applicability` attribute
4195
+ * indicating the scope of the parameter. It contains a `level`
4196
+ * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
4197
+ * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
4198
+ * level there is no `targetId`, since the parameter applies to the
4199
+ * whole Liveboard.
4200
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4201
+ * ThoughtSpot: 26.10.0.cl.
3864
4202
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
3865
4203
  * ```js
3866
4204
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
@@ -4127,6 +4465,36 @@
4127
4465
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
4128
4466
  */
4129
4467
  HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
4468
+ /**
4469
+ * Opens the Spotter share-conversation modal for the given conversation.
4470
+ * `conversationId` is **mandatory** — you must pass the id of the
4471
+ * conversation to share. Also no-op when sharing is disabled
4472
+ * (enableShareConversation off) or when already in the read-only shared view.
4473
+ * @example
4474
+ * ```js
4475
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
4476
+ * ```
4477
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4478
+ */
4479
+ HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
4480
+ /**
4481
+ * Closes the Spotter share-conversation modal. No-op if none is open.
4482
+ * @example
4483
+ * ```js
4484
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
4485
+ * ```
4486
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4487
+ */
4488
+ HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
4489
+ /**
4490
+ * Exits the read-only shared-conversation view.
4491
+ * @example
4492
+ * ```js
4493
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
4494
+ * ```
4495
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4496
+ */
4497
+ HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
4130
4498
  /**
4131
4499
  * Deletes the last prompt in spotter embed.
4132
4500
  * @example
@@ -4222,6 +4590,41 @@
4222
4590
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
4223
4591
  */
4224
4592
  HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
4593
+ /**
4594
+ * Pins a saved Spotter conversation so it floats to the top of the past
4595
+ * conversations sidebar. The `conversationId` of the conversation to pin is
4596
+ * required.
4597
+ *
4598
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4599
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4600
+ * instance.
4601
+ *
4602
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4603
+ * @example
4604
+ * ```js
4605
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
4606
+ * conversationId: '<conversation-id>',
4607
+ * });
4608
+ * ```
4609
+ */
4610
+ HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
4611
+ /**
4612
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
4613
+ * conversation to unpin is required.
4614
+ *
4615
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4616
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4617
+ * instance.
4618
+ *
4619
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4620
+ * @example
4621
+ * ```js
4622
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
4623
+ * conversationId: '<conversation-id>',
4624
+ * });
4625
+ * ```
4626
+ */
4627
+ HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
4225
4628
  /**
4226
4629
  * @hidden
4227
4630
  * Get the current context of the embedded page.
@@ -4443,6 +4846,7 @@
4443
4846
  Param["SpotterEnabled"] = "isSpotterExperienceEnabled";
4444
4847
  Param["IsUnifiedSearchExperienceEnabled"] = "isUnifiedSearchExperienceEnabled";
4445
4848
  Param["OverrideOrgId"] = "orgId";
4849
+ Param["OverrideHistoryState"] = "overrideHistoryState";
4446
4850
  Param["OauthPollingInterval"] = "oAuthPollingInterval";
4447
4851
  Param["IsForceRedirect"] = "isForceRedirect";
4448
4852
  Param["DataSourceId"] = "dataSourceId";
@@ -4460,9 +4864,12 @@
4460
4864
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
4461
4865
  Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
4462
4866
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
4867
+ Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
4463
4868
  Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
4464
4869
  Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
4465
4870
  Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
4871
+ Param["ShowSpotterRadiance"] = "showSpotterRadiance";
4872
+ Param["DefaultQueryMode"] = "defaultQueryMode";
4466
4873
  Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
4467
4874
  Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
4468
4875
  Param["SpotterSidebarDefaultExpanded"] = "spotterSidebarDefaultExpanded";
@@ -4482,6 +4889,8 @@
4482
4889
  Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
4483
4890
  Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
4484
4891
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4892
+ Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4893
+ Param["SpotterDataSources"] = "spotterDataSources";
4485
4894
  })(Param || (Param = {}));
4486
4895
  /**
4487
4896
  * ThoughtSpot application pages include actions and menu commands
@@ -5746,6 +6155,19 @@
5746
6155
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
5747
6156
  */
5748
6157
  Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
6158
+ /**
6159
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
6160
+ * including filter, parameter, and cross-filter chips at the liveboard,
6161
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
6162
+ *
6163
+ * @example
6164
+ * ```js
6165
+ * hiddenActions: [Action.AllLiveboardFilters]
6166
+ * disabledActions: [Action.AllLiveboardFilters]
6167
+ * ```
6168
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6169
+ */
6170
+ Action["AllLiveboardFilters"] = "allLiveboardFilters";
5749
6171
  /**
5750
6172
  * The **Data model instructions** button on the Spotter interface.
5751
6173
  * Allows opening the data model instructions modal.
@@ -6081,6 +6503,89 @@
6081
6503
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6082
6504
  */
6083
6505
  Action["SpotterChatRename"] = "spotterChatRename";
6506
+ /**
6507
+ * Controls visibility and disable state of the Spotter conversation Share
6508
+ * button in the chat header. Only takes effect once sharing is enabled
6509
+ * (enableShareConversation on).
6510
+ * @example
6511
+ * ```js
6512
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
6513
+ * ```
6514
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6515
+ */
6516
+ Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
6517
+ /**
6518
+ * Controls visibility and disable state of the Share item in the Spotter
6519
+ * conversation history (sidebar) edit menu. Independent of the header button
6520
+ * above, so a host can show Share in one entry point and hide it in the other.
6521
+ * @example
6522
+ * ```js
6523
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
6524
+ * ```
6525
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6526
+ */
6527
+ Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
6528
+ /**
6529
+ * Controls visibility of the entire read-only shared-conversation data-access
6530
+ * banner shown when a recipient opens a shared view. Hide-only.
6531
+ * @example
6532
+ * ```js
6533
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
6534
+ * ```
6535
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6536
+ */
6537
+ Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
6538
+ /**
6539
+ * Controls visibility and disable state of the cross/close button on the
6540
+ * read-only shared-conversation data-access banner (keeps the banner itself).
6541
+ * @example
6542
+ * ```js
6543
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
6544
+ * ```
6545
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6546
+ */
6547
+ Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
6548
+ /**
6549
+ * Controls visibility and disable state of the Exit button in the read-only
6550
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
6551
+ * host event.
6552
+ * @example
6553
+ * ```js
6554
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
6555
+ * ```
6556
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6557
+ */
6558
+ Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
6559
+ /**
6560
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
6561
+ * to the current moment…"). Hide-only.
6562
+ * @example
6563
+ * ```js
6564
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
6565
+ * ```
6566
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6567
+ */
6568
+ Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
6569
+ /**
6570
+ * Controls visibility and disable state of the share-modal "include new
6571
+ * messages since last shared version" checkbox.
6572
+ * @example
6573
+ * ```js
6574
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
6575
+ * ```
6576
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6577
+ */
6578
+ Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
6579
+ /**
6580
+ * Controls visibility and disable state of the cross on the share-modal
6581
+ * stale-snapshot info banner.
6582
+ * @example
6583
+ * ```js
6584
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
6585
+ * ```
6586
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6587
+ */
6588
+ Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
6084
6589
  /**
6085
6590
  * Controls visibility and disable state of the delete action
6086
6591
  * in the Spotter conversation edit menu.
@@ -6091,6 +6596,16 @@
6091
6596
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6092
6597
  */
6093
6598
  Action["SpotterChatDelete"] = "spotterChatDelete";
6599
+ /**
6600
+ * Controls visibility and disable state of the pin/unpin action
6601
+ * in the Spotter conversation edit menu.
6602
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6603
+ * @example
6604
+ * ```js
6605
+ * disabledActions: [Action.SpotterChatPin]
6606
+ * ```
6607
+ */
6608
+ Action["SpotterChatPin"] = "spotterChatPin";
6094
6609
  /**
6095
6610
  * Controls visibility and disable state of the documentation/best practices
6096
6611
  * link in the Spotter sidebar footer.
@@ -6569,6 +7084,8 @@
6569
7084
  EmbedErrorCodes["UPDATEFILTERS_INVALID_PAYLOAD"] = "UPDATEFILTERS_INVALID_PAYLOAD";
6570
7085
  /** DrillDown payload is invalid - missing or malformed points */
6571
7086
  EmbedErrorCodes["DRILLDOWN_INVALID_PAYLOAD"] = "DRILLDOWN_INVALID_PAYLOAD";
7087
+ /** UpdateParameters payload is invalid - malformed applicability */
7088
+ EmbedErrorCodes["UPDATEPARAMETERS_INVALID_PAYLOAD"] = "UPDATEPARAMETERS_INVALID_PAYLOAD";
6572
7089
  })(EmbedErrorCodes || (EmbedErrorCodes = {}));
6573
7090
  /**
6574
7091
  * Context types for specifying the page context when triggering host events.
@@ -6747,7 +7264,7 @@
6747
7264
  TableContentDensity["Compact"] = "COMPACT";
6748
7265
  })(TableContentDensity || (TableContentDensity = {}));
6749
7266
 
6750
- var version$1="1.50.0";var pkg = {version:version$1};
7267
+ var version$1="1.51.0";var pkg = {version:version$1};
6751
7268
 
6752
7269
  const { version } = pkg;
6753
7270
 
@@ -6823,7 +7340,6 @@
6823
7340
 
6824
7341
  const ERROR_MESSAGE = {
6825
7342
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
6826
- SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
6827
7343
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6828
7344
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6829
7345
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
@@ -6854,6 +7370,7 @@
6854
7370
  INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
6855
7371
  UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { column, oper, values } } or { filters: [{ column, oper, values }, ...] }',
6856
7372
  DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
7373
+ UPDATEPARAMETERS_INVALID_PAYLOAD: 'UpdateParameters received an invalid applicability. Expected: { level: LIVEBOARD | TAB | GROUP, targetId } where targetId is required for TAB and GROUP levels',
6857
7374
  };
6858
7375
  const CUSTOM_ACTIONS_ERROR_MESSAGE = {
6859
7376
  INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
@@ -6972,7 +7489,7 @@
6972
7489
  * @returns true if the value is a valid CSS margin value, false otherwise
6973
7490
  */
6974
7491
  const isValidCssMargin = (value) => {
6975
- if (isUndefined(value)) {
7492
+ if (isUndefined$1(value)) {
6976
7493
  return false;
6977
7494
  }
6978
7495
  if (typeof value !== 'string') {
@@ -7181,7 +7698,7 @@
7181
7698
  element.style.removeProperty(styleProperty);
7182
7699
  });
7183
7700
  };
7184
- const isUndefined = (value) => value === undefined;
7701
+ const isUndefined$1 = (value) => value === undefined;
7185
7702
  // Return if the value is a string, double or boolean.
7186
7703
  const getTypeFromValue = (value) => {
7187
7704
  if (typeof value === 'string') {
@@ -7486,7 +8003,7 @@
7486
8003
  };
7487
8004
 
7488
8005
  /** Used for built-in method references. */
7489
- var objectProto$c = Object.prototype;
8006
+ var objectProto$d = Object.prototype;
7490
8007
 
7491
8008
  /**
7492
8009
  * Checks if `value` is likely a prototype object.
@@ -7497,7 +8014,7 @@
7497
8014
  */
7498
8015
  function isPrototype(value) {
7499
8016
  var Ctor = value && value.constructor,
7500
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$c;
8017
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
7501
8018
 
7502
8019
  return value === proto;
7503
8020
  }
@@ -7526,10 +8043,10 @@
7526
8043
  var _nativeKeys = nativeKeys;
7527
8044
 
7528
8045
  /** Used for built-in method references. */
7529
- var objectProto$b = Object.prototype;
8046
+ var objectProto$c = Object.prototype;
7530
8047
 
7531
8048
  /** Used to check objects for own properties. */
7532
- var hasOwnProperty$a = objectProto$b.hasOwnProperty;
8049
+ var hasOwnProperty$b = objectProto$c.hasOwnProperty;
7533
8050
 
7534
8051
  /**
7535
8052
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
@@ -7544,7 +8061,7 @@
7544
8061
  }
7545
8062
  var result = [];
7546
8063
  for (var key in Object(object)) {
7547
- if (hasOwnProperty$a.call(object, key) && key != 'constructor') {
8064
+ if (hasOwnProperty$b.call(object, key) && key != 'constructor') {
7548
8065
  result.push(key);
7549
8066
  }
7550
8067
  }
@@ -7580,17 +8097,17 @@
7580
8097
  var _Symbol = Symbol$1;
7581
8098
 
7582
8099
  /** Used for built-in method references. */
7583
- var objectProto$a = Object.prototype;
8100
+ var objectProto$b = Object.prototype;
7584
8101
 
7585
8102
  /** Used to check objects for own properties. */
7586
- var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
8103
+ var hasOwnProperty$a = objectProto$b.hasOwnProperty;
7587
8104
 
7588
8105
  /**
7589
8106
  * Used to resolve the
7590
8107
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
7591
8108
  * of values.
7592
8109
  */
7593
- var nativeObjectToString$1 = objectProto$a.toString;
8110
+ var nativeObjectToString$1 = objectProto$b.toString;
7594
8111
 
7595
8112
  /** Built-in value references. */
7596
8113
  var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
@@ -7603,7 +8120,7 @@
7603
8120
  * @returns {string} Returns the raw `toStringTag`.
7604
8121
  */
7605
8122
  function getRawTag(value) {
7606
- var isOwn = hasOwnProperty$9.call(value, symToStringTag$1),
8123
+ var isOwn = hasOwnProperty$a.call(value, symToStringTag$1),
7607
8124
  tag = value[symToStringTag$1];
7608
8125
 
7609
8126
  try {
@@ -7625,14 +8142,14 @@
7625
8142
  var _getRawTag = getRawTag;
7626
8143
 
7627
8144
  /** Used for built-in method references. */
7628
- var objectProto$9 = Object.prototype;
8145
+ var objectProto$a = Object.prototype;
7629
8146
 
7630
8147
  /**
7631
8148
  * Used to resolve the
7632
8149
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
7633
8150
  * of values.
7634
8151
  */
7635
- var nativeObjectToString = objectProto$9.toString;
8152
+ var nativeObjectToString = objectProto$a.toString;
7636
8153
 
7637
8154
  /**
7638
8155
  * Converts `value` to a string using `Object.prototype.toString`.
@@ -7764,10 +8281,10 @@
7764
8281
  var _isMasked = isMasked;
7765
8282
 
7766
8283
  /** Used for built-in method references. */
7767
- var funcProto$1 = Function.prototype;
8284
+ var funcProto$2 = Function.prototype;
7768
8285
 
7769
8286
  /** Used to resolve the decompiled source of functions. */
7770
- var funcToString$1 = funcProto$1.toString;
8287
+ var funcToString$2 = funcProto$2.toString;
7771
8288
 
7772
8289
  /**
7773
8290
  * Converts `func` to its source code.
@@ -7779,7 +8296,7 @@
7779
8296
  function toSource(func) {
7780
8297
  if (func != null) {
7781
8298
  try {
7782
- return funcToString$1.call(func);
8299
+ return funcToString$2.call(func);
7783
8300
  } catch (e) {}
7784
8301
  try {
7785
8302
  return (func + '');
@@ -7800,18 +8317,18 @@
7800
8317
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
7801
8318
 
7802
8319
  /** Used for built-in method references. */
7803
- var funcProto = Function.prototype,
7804
- objectProto$8 = Object.prototype;
8320
+ var funcProto$1 = Function.prototype,
8321
+ objectProto$9 = Object.prototype;
7805
8322
 
7806
8323
  /** Used to resolve the decompiled source of functions. */
7807
- var funcToString = funcProto.toString;
8324
+ var funcToString$1 = funcProto$1.toString;
7808
8325
 
7809
8326
  /** Used to check objects for own properties. */
7810
- var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
8327
+ var hasOwnProperty$9 = objectProto$9.hasOwnProperty;
7811
8328
 
7812
8329
  /** Used to detect if a method is native. */
7813
8330
  var reIsNative = RegExp('^' +
7814
- funcToString.call(hasOwnProperty$8).replace(reRegExpChar, '\\$&')
8331
+ funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, '\\$&')
7815
8332
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
7816
8333
  );
7817
8334
 
@@ -7889,7 +8406,7 @@
7889
8406
 
7890
8407
  /** `Object#toString` result references. */
7891
8408
  var mapTag$3 = '[object Map]',
7892
- objectTag$2 = '[object Object]',
8409
+ objectTag$3 = '[object Object]',
7893
8410
  promiseTag = '[object Promise]',
7894
8411
  setTag$3 = '[object Set]',
7895
8412
  weakMapTag$1 = '[object WeakMap]';
@@ -7920,7 +8437,7 @@
7920
8437
  (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {
7921
8438
  getTag = function(value) {
7922
8439
  var result = _baseGetTag(value),
7923
- Ctor = result == objectTag$2 ? value.constructor : undefined,
8440
+ Ctor = result == objectTag$3 ? value.constructor : undefined,
7924
8441
  ctorString = Ctor ? _toSource(Ctor) : '';
7925
8442
 
7926
8443
  if (ctorString) {
@@ -7985,13 +8502,13 @@
7985
8502
  var _baseIsArguments = baseIsArguments;
7986
8503
 
7987
8504
  /** Used for built-in method references. */
7988
- var objectProto$7 = Object.prototype;
8505
+ var objectProto$8 = Object.prototype;
7989
8506
 
7990
8507
  /** Used to check objects for own properties. */
7991
- var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
8508
+ var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
7992
8509
 
7993
8510
  /** Built-in value references. */
7994
- var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
8511
+ var propertyIsEnumerable$1 = objectProto$8.propertyIsEnumerable;
7995
8512
 
7996
8513
  /**
7997
8514
  * Checks if `value` is likely an `arguments` object.
@@ -8012,7 +8529,7 @@
8012
8529
  * // => false
8013
8530
  */
8014
8531
  var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {
8015
- return isObjectLike_1(value) && hasOwnProperty$7.call(value, 'callee') &&
8532
+ return isObjectLike_1(value) && hasOwnProperty$8.call(value, 'callee') &&
8016
8533
  !propertyIsEnumerable$1.call(value, 'callee');
8017
8534
  };
8018
8535
 
@@ -8178,10 +8695,10 @@
8178
8695
  funcTag = '[object Function]',
8179
8696
  mapTag$2 = '[object Map]',
8180
8697
  numberTag$1 = '[object Number]',
8181
- objectTag$1 = '[object Object]',
8698
+ objectTag$2 = '[object Object]',
8182
8699
  regexpTag$1 = '[object RegExp]',
8183
8700
  setTag$2 = '[object Set]',
8184
- stringTag$1 = '[object String]',
8701
+ stringTag$2 = '[object String]',
8185
8702
  weakMapTag = '[object WeakMap]';
8186
8703
 
8187
8704
  var arrayBufferTag$1 = '[object ArrayBuffer]',
@@ -8208,8 +8725,8 @@
8208
8725
  typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =
8209
8726
  typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
8210
8727
  typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
8211
- typedArrayTags[objectTag$1] = typedArrayTags[regexpTag$1] =
8212
- typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] =
8728
+ typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
8729
+ typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] =
8213
8730
  typedArrayTags[weakMapTag] = false;
8214
8731
 
8215
8732
  /**
@@ -8301,10 +8818,10 @@
8301
8818
  setTag$1 = '[object Set]';
8302
8819
 
8303
8820
  /** Used for built-in method references. */
8304
- var objectProto$6 = Object.prototype;
8821
+ var objectProto$7 = Object.prototype;
8305
8822
 
8306
8823
  /** Used to check objects for own properties. */
8307
- var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
8824
+ var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
8308
8825
 
8309
8826
  /**
8310
8827
  * Checks if `value` is an empty object, collection, map, or set.
@@ -8356,7 +8873,7 @@
8356
8873
  return !_baseKeys(value).length;
8357
8874
  }
8358
8875
  for (var key in value) {
8359
- if (hasOwnProperty$6.call(value, key)) {
8876
+ if (hasOwnProperty$7.call(value, key)) {
8360
8877
  return false;
8361
8878
  }
8362
8879
  }
@@ -8365,6 +8882,15 @@
8365
8882
 
8366
8883
  var isEmpty_1 = isEmpty$1;
8367
8884
 
8885
+ /**
8886
+ * Levels at which a filter or parameter can be applied.
8887
+ */
8888
+ var ApplicabilityLevel;
8889
+ (function (ApplicabilityLevel) {
8890
+ ApplicabilityLevel["Liveboard"] = "LIVEBOARD";
8891
+ ApplicabilityLevel["Tab"] = "TAB";
8892
+ ApplicabilityLevel["Group"] = "GROUP";
8893
+ })(ApplicabilityLevel || (ApplicabilityLevel = {}));
8368
8894
  var UIPassthroughEvent;
8369
8895
  (function (UIPassthroughEvent) {
8370
8896
  UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
@@ -8382,6 +8908,7 @@
8382
8908
  UIPassthroughEvent["GetParameters"] = "getParameters";
8383
8909
  UIPassthroughEvent["GetTML"] = "getTML";
8384
8910
  UIPassthroughEvent["GetTabs"] = "getTabs";
8911
+ UIPassthroughEvent["GetGroups"] = "getGroups";
8385
8912
  UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
8386
8913
  })(UIPassthroughEvent || (UIPassthroughEvent = {}));
8387
8914
 
@@ -9602,10 +10129,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9602
10129
  var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
9603
10130
 
9604
10131
  /** Used for built-in method references. */
9605
- var objectProto$5 = Object.prototype;
10132
+ var objectProto$6 = Object.prototype;
9606
10133
 
9607
10134
  /** Used to check objects for own properties. */
9608
- var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
10135
+ var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
9609
10136
 
9610
10137
  /**
9611
10138
  * Gets the hash value for `key`.
@@ -9622,16 +10149,16 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9622
10149
  var result = data[key];
9623
10150
  return result === HASH_UNDEFINED$2 ? undefined : result;
9624
10151
  }
9625
- return hasOwnProperty$5.call(data, key) ? data[key] : undefined;
10152
+ return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
9626
10153
  }
9627
10154
 
9628
10155
  var _hashGet = hashGet;
9629
10156
 
9630
10157
  /** Used for built-in method references. */
9631
- var objectProto$4 = Object.prototype;
10158
+ var objectProto$5 = Object.prototype;
9632
10159
 
9633
10160
  /** Used to check objects for own properties. */
9634
- var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
10161
+ var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
9635
10162
 
9636
10163
  /**
9637
10164
  * Checks if a hash value for `key` exists.
@@ -9644,7 +10171,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
9644
10171
  */
9645
10172
  function hashHas(key) {
9646
10173
  var data = this.__data__;
9647
- return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$4.call(data, key);
10174
+ return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
9648
10175
  }
9649
10176
 
9650
10177
  var _hashHas = hashHas;
@@ -10619,7 +11146,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10619
11146
  numberTag = '[object Number]',
10620
11147
  regexpTag = '[object RegExp]',
10621
11148
  setTag = '[object Set]',
10622
- stringTag = '[object String]',
11149
+ stringTag$1 = '[object String]',
10623
11150
  symbolTag = '[object Symbol]';
10624
11151
 
10625
11152
  var arrayBufferTag = '[object ArrayBuffer]',
@@ -10674,7 +11201,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10674
11201
  return object.name == other.name && object.message == other.message;
10675
11202
 
10676
11203
  case regexpTag:
10677
- case stringTag:
11204
+ case stringTag$1:
10678
11205
  // Coerce regexes to strings and treat strings, primitives and objects,
10679
11206
  // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
10680
11207
  // for more details.
@@ -10782,10 +11309,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10782
11309
  var stubArray_1 = stubArray;
10783
11310
 
10784
11311
  /** Used for built-in method references. */
10785
- var objectProto$3 = Object.prototype;
11312
+ var objectProto$4 = Object.prototype;
10786
11313
 
10787
11314
  /** Built-in value references. */
10788
- var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
11315
+ var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
10789
11316
 
10790
11317
  /* Built-in method references for those with the same name as other `lodash` methods. */
10791
11318
  var nativeGetSymbols = Object.getOwnPropertySymbols;
@@ -10857,10 +11384,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10857
11384
  var _isIndex = isIndex;
10858
11385
 
10859
11386
  /** Used for built-in method references. */
10860
- var objectProto$2 = Object.prototype;
11387
+ var objectProto$3 = Object.prototype;
10861
11388
 
10862
11389
  /** Used to check objects for own properties. */
10863
- var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
11390
+ var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
10864
11391
 
10865
11392
  /**
10866
11393
  * Creates an array of the enumerable property names of the array-like `value`.
@@ -10880,7 +11407,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10880
11407
  length = result.length;
10881
11408
 
10882
11409
  for (var key in value) {
10883
- if ((inherited || hasOwnProperty$3.call(value, key)) &&
11410
+ if ((inherited || hasOwnProperty$4.call(value, key)) &&
10884
11411
  !(skipIndexes && (
10885
11412
  // Safari 9 has enumerable `arguments.length` in strict mode.
10886
11413
  key == 'length' ||
@@ -10950,10 +11477,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10950
11477
  var COMPARE_PARTIAL_FLAG$3 = 1;
10951
11478
 
10952
11479
  /** Used for built-in method references. */
10953
- var objectProto$1 = Object.prototype;
11480
+ var objectProto$2 = Object.prototype;
10954
11481
 
10955
11482
  /** Used to check objects for own properties. */
10956
- var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
11483
+ var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
10957
11484
 
10958
11485
  /**
10959
11486
  * A specialized version of `baseIsEqualDeep` for objects with support for
@@ -10981,7 +11508,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
10981
11508
  var index = objLength;
10982
11509
  while (index--) {
10983
11510
  var key = objProps[index];
10984
- if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) {
11511
+ if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
10985
11512
  return false;
10986
11513
  }
10987
11514
  }
@@ -11041,13 +11568,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
11041
11568
  /** `Object#toString` result references. */
11042
11569
  var argsTag = '[object Arguments]',
11043
11570
  arrayTag = '[object Array]',
11044
- objectTag = '[object Object]';
11571
+ objectTag$1 = '[object Object]';
11045
11572
 
11046
11573
  /** Used for built-in method references. */
11047
- var objectProto = Object.prototype;
11574
+ var objectProto$1 = Object.prototype;
11048
11575
 
11049
11576
  /** Used to check objects for own properties. */
11050
- var hasOwnProperty$1 = objectProto.hasOwnProperty;
11577
+ var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
11051
11578
 
11052
11579
  /**
11053
11580
  * A specialized version of `baseIsEqual` for arrays and objects which performs
@@ -11069,11 +11596,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
11069
11596
  objTag = objIsArr ? arrayTag : _getTag(object),
11070
11597
  othTag = othIsArr ? arrayTag : _getTag(other);
11071
11598
 
11072
- objTag = objTag == argsTag ? objectTag : objTag;
11073
- othTag = othTag == argsTag ? objectTag : othTag;
11599
+ objTag = objTag == argsTag ? objectTag$1 : objTag;
11600
+ othTag = othTag == argsTag ? objectTag$1 : othTag;
11074
11601
 
11075
- var objIsObj = objTag == objectTag,
11076
- othIsObj = othTag == objectTag,
11602
+ var objIsObj = objTag == objectTag$1,
11603
+ othIsObj = othTag == objectTag$1,
11077
11604
  isSameTag = objTag == othTag;
11078
11605
 
11079
11606
  if (isSameTag && isBuffer_1(object)) {
@@ -11090,8 +11617,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
11090
11617
  : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
11091
11618
  }
11092
11619
  if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
11093
- var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'),
11094
- othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__');
11620
+ var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
11621
+ othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
11095
11622
 
11096
11623
  if (objIsWrapped || othIsWrapped) {
11097
11624
  var objUnwrapped = objIsWrapped ? object.value() : object,
@@ -12302,7 +12829,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12302
12829
  var ObjProto = Object.prototype;
12303
12830
  var slice = ArrayProto.slice;
12304
12831
  var toString = ObjProto.toString;
12305
- var hasOwnProperty = ObjProto.hasOwnProperty;
12832
+ var hasOwnProperty$1 = ObjProto.hasOwnProperty;
12306
12833
  var windowConsole = window$1.console;
12307
12834
  var navigator = window$1.navigator;
12308
12835
  var document$1 = window$1.document;
@@ -12439,7 +12966,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12439
12966
  }
12440
12967
  } else {
12441
12968
  for (var key in obj) {
12442
- if (hasOwnProperty.call(obj, key)) {
12969
+ if (hasOwnProperty$1.call(obj, key)) {
12443
12970
  if (iterator.call(context, obj[key], key, obj) === breaker) {
12444
12971
  return;
12445
12972
  }
@@ -12475,7 +13002,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12475
13002
  };
12476
13003
 
12477
13004
  _.isArguments = function(obj) {
12478
- return !!(obj && hasOwnProperty.call(obj, 'callee'));
13005
+ return !!(obj && hasOwnProperty$1.call(obj, 'callee'));
12479
13006
  };
12480
13007
 
12481
13008
  _.toArray = function(iterable) {
@@ -12563,7 +13090,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12563
13090
  _.isEmptyObject = function(obj) {
12564
13091
  if (_.isObject(obj)) {
12565
13092
  for (var key in obj) {
12566
- if (hasOwnProperty.call(obj, key)) {
13093
+ if (hasOwnProperty$1.call(obj, key)) {
12567
13094
  return false;
12568
13095
  }
12569
13096
  }
@@ -12755,7 +13282,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
12755
13282
 
12756
13283
  // Iterate through all of the keys in the object.
12757
13284
  for (k in value) {
12758
- if (hasOwnProperty.call(value, k)) {
13285
+ if (hasOwnProperty$1.call(value, k)) {
12759
13286
  v = str(k, value);
12760
13287
  if (v) {
12761
13288
  partial.push(quote(k) + (gap ? ': ' : ':') + v);
@@ -18421,7 +18948,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
18421
18948
  VISUAL_SDK_RENDER_FAILED: 'visual-sdk-render-failed',
18422
18949
  VISUAL_SDK_TRIGGER: 'visual-sdk-trigger',
18423
18950
  VISUAL_SDK_ON: 'visual-sdk-on',
18424
- VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create'};
18951
+ VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
18952
+ VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
18953
+ VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
18954
+ VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
18955
+ VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
18956
+ };
18425
18957
  let isMixpanelInitialized = false;
18426
18958
  let eventQueue = [];
18427
18959
  /**
@@ -19994,6 +20526,154 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
19994
20526
  return eventData;
19995
20527
  }
19996
20528
 
20529
+ /**
20530
+ * Checks if `value` is `null` or `undefined`.
20531
+ *
20532
+ * @static
20533
+ * @memberOf _
20534
+ * @since 4.0.0
20535
+ * @category Lang
20536
+ * @param {*} value The value to check.
20537
+ * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
20538
+ * @example
20539
+ *
20540
+ * _.isNil(null);
20541
+ * // => true
20542
+ *
20543
+ * _.isNil(void 0);
20544
+ * // => true
20545
+ *
20546
+ * _.isNil(NaN);
20547
+ * // => false
20548
+ */
20549
+ function isNil(value) {
20550
+ return value == null;
20551
+ }
20552
+
20553
+ var isNil_1 = isNil;
20554
+
20555
+ /** Built-in value references. */
20556
+ var getPrototype = _overArg(Object.getPrototypeOf, Object);
20557
+
20558
+ var _getPrototype = getPrototype;
20559
+
20560
+ /** `Object#toString` result references. */
20561
+ var objectTag = '[object Object]';
20562
+
20563
+ /** Used for built-in method references. */
20564
+ var funcProto = Function.prototype,
20565
+ objectProto = Object.prototype;
20566
+
20567
+ /** Used to resolve the decompiled source of functions. */
20568
+ var funcToString = funcProto.toString;
20569
+
20570
+ /** Used to check objects for own properties. */
20571
+ var hasOwnProperty = objectProto.hasOwnProperty;
20572
+
20573
+ /** Used to infer the `Object` constructor. */
20574
+ var objectCtorString = funcToString.call(Object);
20575
+
20576
+ /**
20577
+ * Checks if `value` is a plain object, that is, an object created by the
20578
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
20579
+ *
20580
+ * @static
20581
+ * @memberOf _
20582
+ * @since 0.8.0
20583
+ * @category Lang
20584
+ * @param {*} value The value to check.
20585
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
20586
+ * @example
20587
+ *
20588
+ * function Foo() {
20589
+ * this.a = 1;
20590
+ * }
20591
+ *
20592
+ * _.isPlainObject(new Foo);
20593
+ * // => false
20594
+ *
20595
+ * _.isPlainObject([1, 2, 3]);
20596
+ * // => false
20597
+ *
20598
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
20599
+ * // => true
20600
+ *
20601
+ * _.isPlainObject(Object.create(null));
20602
+ * // => true
20603
+ */
20604
+ function isPlainObject(value) {
20605
+ if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag) {
20606
+ return false;
20607
+ }
20608
+ var proto = _getPrototype(value);
20609
+ if (proto === null) {
20610
+ return true;
20611
+ }
20612
+ var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
20613
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
20614
+ funcToString.call(Ctor) == objectCtorString;
20615
+ }
20616
+
20617
+ var isPlainObject_1 = isPlainObject;
20618
+
20619
+ /** `Object#toString` result references. */
20620
+ var stringTag = '[object String]';
20621
+
20622
+ /**
20623
+ * Checks if `value` is classified as a `String` primitive or object.
20624
+ *
20625
+ * @static
20626
+ * @since 0.1.0
20627
+ * @memberOf _
20628
+ * @category Lang
20629
+ * @param {*} value The value to check.
20630
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
20631
+ * @example
20632
+ *
20633
+ * _.isString('abc');
20634
+ * // => true
20635
+ *
20636
+ * _.isString(1);
20637
+ * // => false
20638
+ */
20639
+ function isString(value) {
20640
+ return typeof value == 'string' ||
20641
+ (!isArray_1(value) && isObjectLike_1(value) && _baseGetTag(value) == stringTag);
20642
+ }
20643
+
20644
+ var isString_1 = isString;
20645
+
20646
+ /**
20647
+ * Checks if `value` is `undefined`.
20648
+ *
20649
+ * @static
20650
+ * @since 0.1.0
20651
+ * @memberOf _
20652
+ * @category Lang
20653
+ * @param {*} value The value to check.
20654
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
20655
+ * @example
20656
+ *
20657
+ * _.isUndefined(void 0);
20658
+ * // => true
20659
+ *
20660
+ * _.isUndefined(null);
20661
+ * // => false
20662
+ */
20663
+ function isUndefined(value) {
20664
+ return value === undefined;
20665
+ }
20666
+
20667
+ var isUndefined_1 = isUndefined;
20668
+
20669
+ const isValidApplicability = (a) => {
20670
+ if (isUndefined_1(a))
20671
+ return true;
20672
+ // targetId is not required at LIVEBOARD level, since the filter applies to the whole Liveboard
20673
+ return isPlainObject_1(a)
20674
+ && Object.values(ApplicabilityLevel).includes(a.level)
20675
+ && (a.level === ApplicabilityLevel.Liveboard || (isString_1(a.targetId) && a.targetId.trim().length > 0));
20676
+ };
19997
20677
  function isValidUpdateFiltersPayload(payload) {
19998
20678
  if (!payload)
19999
20679
  return false;
@@ -20002,12 +20682,23 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20002
20682
  const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string';
20003
20683
  const hasValues = Array.isArray(f.values);
20004
20684
  const validType = !f.type || typeof f.type === 'string';
20005
- return hasColumn && hasOperator && hasValues && validType;
20685
+ return hasColumn && hasOperator && hasValues && validType && isValidApplicability(f.applicability);
20006
20686
  };
20007
20687
  const hasValidFilter = payload.filter && isValidFilter(payload.filter);
20008
20688
  const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
20009
20689
  return !!(hasValidFilter || hasValidFilters);
20010
20690
  }
20691
+ function isValidUpdateParametersPayload(payload) {
20692
+ // Only validates the applicability of each parameter (null treated as absent); the rest is forwarded as-is for backward compatibility.
20693
+ if (!Array.isArray(payload))
20694
+ return true;
20695
+ return payload.every((p) => {
20696
+ if (!isPlainObject_1(p))
20697
+ return true;
20698
+ const { applicability } = p;
20699
+ return isNil_1(applicability) || isValidApplicability(applicability);
20700
+ });
20701
+ }
20011
20702
  function isValidDrillDownPayload(payload) {
20012
20703
  if (!payload)
20013
20704
  return false;
@@ -20038,6 +20729,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20038
20729
  }
20039
20730
  function throwDrillDownValidationError() {
20040
20731
  createValidationError(ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD);
20732
+ }
20733
+ function throwUpdateParametersValidationError() {
20734
+ createValidationError(ERROR_MESSAGE.UPDATEPARAMETERS_INVALID_PAYLOAD);
20041
20735
  }
20042
20736
 
20043
20737
  /**
@@ -20058,6 +20752,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20058
20752
  [exports.HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
20059
20753
  [exports.HostEvent.GetTML]: UIPassthroughEvent.GetTML,
20060
20754
  [exports.HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
20755
+ [exports.HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
20061
20756
  [exports.HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
20062
20757
  };
20063
20758
  class HostEventClient {
@@ -20069,6 +20764,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20069
20764
  [exports.HostEvent.Pin]: (p, c) => this.handlePinEvent(p, c),
20070
20765
  [exports.HostEvent.SaveAnswer]: (p, c) => this.handleSaveAnswerEvent(p, c),
20071
20766
  [exports.HostEvent.UpdateFilters]: (p, c) => this.handleUpdateFiltersEvent(p, c),
20767
+ [exports.HostEvent.UpdateParameters]: (p, c) => this.handleUpdateParametersEvent(p, c),
20072
20768
  [exports.HostEvent.DrillDown]: (p, c) => this.handleDrillDownEvent(p, c),
20073
20769
  };
20074
20770
  }
@@ -20193,6 +20889,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20193
20889
  }
20194
20890
  return this.handleHostEventWithParam(UIPassthroughEvent.UpdateFilters, payload, context);
20195
20891
  }
20892
+ handleUpdateParametersEvent(payload, context) {
20893
+ if (!isValidUpdateParametersPayload(payload)) {
20894
+ throwUpdateParametersValidationError();
20895
+ }
20896
+ // UpdateParameters has no UI passthrough contract; dispatch over the legacy channel
20897
+ return this.hostEventFallback(exports.HostEvent.UpdateParameters, payload, context);
20898
+ }
20196
20899
  handleDrillDownEvent(payload, context) {
20197
20900
  if (!isValidDrillDownPayload(payload)) {
20198
20901
  throwDrillDownValidationError();
@@ -20978,7 +21681,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
20978
21681
  if (this.embedConfig.currencyFormat) {
20979
21682
  queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
20980
21683
  }
20981
- const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
21684
+ const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, overrideHistoryState, exposeTranslationIDs, primaryAction, } = this.viewConfig;
20982
21685
  const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
20983
21686
  const additionalFlags = {
20984
21687
  ...additionalFlagsFromInit,
@@ -21066,6 +21769,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21066
21769
  if (overrideOrgId !== undefined) {
21067
21770
  queryParams[Param.OverrideOrgId] = overrideOrgId;
21068
21771
  }
21772
+ if (overrideHistoryState !== undefined) {
21773
+ queryParams[Param.OverrideHistoryState] = overrideHistoryState;
21774
+ }
21069
21775
  if (this.isPreAuthCacheEnabled()) {
21070
21776
  queryParams[Param.preAuthCache] = true;
21071
21777
  }
@@ -21751,6 +22457,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21751
22457
  * @param args
21752
22458
  */
21753
22459
  async render() {
22460
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
22461
+ embedComponentType: this.viewConfig.embedComponentType,
22462
+ });
21754
22463
  if (!getIsInitCalled()) {
21755
22464
  logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
21756
22465
  }
@@ -21822,6 +22531,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21822
22531
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
21823
22532
  */
21824
22533
  async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
22534
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
22535
+ showPreRenderByDefault,
22536
+ replaceExistingPreRender,
22537
+ });
21825
22538
  if (!this.viewConfig.preRenderId) {
21826
22539
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
21827
22540
  return this;
@@ -21998,7 +22711,11 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
21998
22711
  * wrapper to overlay it.
21999
22712
  */
22000
22713
  async showPreRender() {
22001
- var _a;
22714
+ var _a, _b;
22715
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22716
+ preRenderId: this.viewConfig.preRenderId,
22717
+ embedComponentType: this.viewConfig.embedComponentType,
22718
+ });
22002
22719
  if (this.shouldWaitForRenderPromise)
22003
22720
  await this.isReadyForRenderPromise;
22004
22721
  if (!this.viewConfig.preRenderId) {
@@ -22022,10 +22739,14 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22022
22739
  }
22023
22740
  }
22024
22741
  const placeHolderId = this.getPreRenderIds().placeHolder;
22025
- const oldEle = this.hostElement.querySelector(`#${placeHolderId}`);
22026
- if (oldEle) {
22027
- this.hostElement.removeChild(oldEle);
22028
- }
22742
+ // Remove any stale placeholder from a previous cycle. It is located
22743
+ // via a subtree-wide querySelector, so it may be nested deeper than a
22744
+ // direct child (E.g.: with fullHeight the host app can wrap it). Use
22745
+ // Element.remove() — which detaches from whatever the real parent is —
22746
+ // rather than hostElement.removeChild(), which throws NotFoundError
22747
+ // when the match is not a direct child. Mirrors the wrapper/child
22748
+ // cleanup in createPreRenderWrapper()/createPreRenderChild().
22749
+ (_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
22029
22750
  this.hostElement.appendChild(this.insertedDomEl);
22030
22751
  this.syncPreRenderStyle();
22031
22752
  const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
@@ -22036,7 +22757,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22036
22757
  customContainer.addEventListener('scroll', this.containerScrollListener);
22037
22758
  }
22038
22759
  if (!this.viewConfig.doNotTrackPreRenderSize) {
22039
- const observeTarget = (_a = this.insertedDomEl) !== null && _a !== void 0 ? _a : this.hostElement;
22760
+ const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
22040
22761
  this.resizeObserver = new ResizeObserver((entries) => {
22041
22762
  entries.forEach((entry) => {
22042
22763
  if (entry.target === observeTarget) {
@@ -22100,6 +22821,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22100
22821
  * If the component is not preRendered, it issues a warning.
22101
22822
  */
22102
22823
  hidePreRender() {
22824
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
22825
+ preRenderId: this.viewConfig.preRenderId,
22826
+ embedComponentType: this.viewConfig.embedComponentType,
22827
+ });
22103
22828
  logger$3.debug('HidePreRender Called');
22104
22829
  if (!this.isPreRenderConnected()) {
22105
22830
  // if the embed component is not preRendered , nothing to hide
@@ -22579,6 +23304,18 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22579
23304
  ...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
22580
23305
  },
22581
23306
  };
23307
+ }
23308
+ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23309
+ const { spotterShareConversationConfig } = viewConfig;
23310
+ if (!spotterShareConversationConfig)
23311
+ return initData;
23312
+ return {
23313
+ ...initData,
23314
+ embedParams: {
23315
+ ...(initData.embedParams || {}),
23316
+ spotterShareConversationConfig,
23317
+ },
23318
+ };
22582
23319
  }
22583
23320
 
22584
23321
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -22640,6 +23377,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22640
23377
  * Monitor Alerts Page
22641
23378
  */
22642
23379
  Page["Monitor"] = "monitor";
23380
+ /**
23381
+ * Collections listing page
23382
+ */
23383
+ Page["Collections"] = "collections";
22643
23384
  })(exports.Page || (exports.Page = {}));
22644
23385
  /**
22645
23386
  * Define the initial state of column custom group accordions
@@ -22688,6 +23429,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22688
23429
  /**
22689
23430
  * Modular (v2) introduces the updated Modular Home Experience.
22690
23431
  * It serves as the foundational version of the home page.
23432
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
23433
+ * {@link HomePage.Focused} (V4) instead.
23434
+ * @deprecated V1 and V2 home page experiences are deprecated.
22691
23435
  */
22692
23436
  HomePage["Modular"] = "v2";
22693
23437
  /**
@@ -22803,14 +23547,19 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22803
23547
  async getAppInitData() {
22804
23548
  const defaultAppInitData = await super.getAppInitData();
22805
23549
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
22806
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23550
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23551
+ return buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
22807
23552
  }
22808
23553
  /**
22809
23554
  * Constructs a map of parameters to be passed on to the
22810
23555
  * embedded Liveboard or visualization.
22811
23556
  */
22812
23557
  getEmbedParams() {
22813
- const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, enableStopAnswerGenerationEmbed, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
23558
+ const params = this.getEmbedParamsObject();
23559
+ return getQueryParamString(params, true);
23560
+ }
23561
+ getEmbedParamsObject() {
23562
+ 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 = 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;
22814
23563
  let params = {};
22815
23564
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
22816
23565
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -22820,28 +23569,48 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22820
23569
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
22821
23570
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
22822
23571
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
22823
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23572
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
23573
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23574
+ }
22824
23575
  if (newChartsLibrary !== undefined) {
22825
23576
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
22826
23577
  }
22827
23578
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
22828
23579
  params[Param.IsFullAppEmbed] = true;
22829
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
22830
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
23580
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23581
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23582
+ }
23583
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
23584
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
23585
+ isEnhancedFilterInteractivityEnabled;
23586
+ }
22831
23587
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
22832
23588
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
22833
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23589
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
23590
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23591
+ }
22834
23592
  if (isUnifiedSearchExperienceEnabled !== undefined) {
22835
23593
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
22836
23594
  }
22837
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23595
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
23596
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23597
+ }
22838
23598
  params = this.getBaseQueryParams(params);
22839
- if (!isUndefined(updatedSpotterChatPrompt)) {
23599
+ if (!isUndefined$1(updatedSpotterChatPrompt)) {
22840
23600
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
22841
23601
  }
22842
- if (!isUndefined(enableStopAnswerGenerationEmbed)) {
23602
+ if (!isUndefined$1(showSpotterRadiance)) {
23603
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23604
+ }
23605
+ if (!isUndefined$1(defaultQueryMode)) {
23606
+ params[Param.DefaultQueryMode] = defaultQueryMode;
23607
+ }
23608
+ if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
22843
23609
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
22844
23610
  }
23611
+ if (spotterDataSources && spotterDataSources.length) {
23612
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
23613
+ }
22845
23614
  // Handle spotterChatConfig params
22846
23615
  if (spotterChatConfig) {
22847
23616
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -22857,6 +23626,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22857
23626
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
22858
23627
  }
22859
23628
  }
23629
+ if (!isUndefined$1(updatedSpotterExperience)) {
23630
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23631
+ }
22860
23632
  if (hideObjectSearch) {
22861
23633
  params[Param.HideObjectSearch] = !!hideObjectSearch;
22862
23634
  }
@@ -22923,6 +23695,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22923
23695
  if (isCentralizedLiveboardFilterUXEnabled != undefined) {
22924
23696
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
22925
23697
  }
23698
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23699
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23700
+ }
22926
23701
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
22927
23702
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
22928
23703
  }
@@ -22938,7 +23713,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22938
23713
  }
22939
23714
  params[Param.DataPanelV2Enabled] = dataPanelV2;
22940
23715
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
22941
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
22942
23716
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
22943
23717
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
22944
23718
  if (dataPanelCustomGroupsAccordionInitialState
@@ -22953,33 +23727,15 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22953
23727
  if (modularHomeExperience !== undefined) {
22954
23728
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
22955
23729
  }
22956
- // Set navigation to v2 by default to avoid problems like the app
22957
- // switcher (9-dot menu) not showing when v3 navigation is turned on
22958
- // at the cluster level.
22959
- // To use v3 navigation, we must manually set the discoveryExperience
22960
- // settings.
22961
- params[Param.NavigationVersion] = 'v2';
22962
- // Set homePageVersion to v2 by default to reset the LD flag value
22963
- // for the homepageVersion.
22964
- params[Param.HomepageVersion] = 'v2';
23730
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
23731
+ // default experience, Need to send navigationVersion=v3 and
23732
+ // homepageVersion=v3 even when the no discoveryExperience /
23733
+ // modularHomeExperience config is set. Without these
23734
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
23735
+ // home page, so the defaults must be sent explicitly from the SDK.
23736
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
23737
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
22965
23738
  if (discoveryExperience) {
22966
- // primaryNavbarVersion v3 will enabled the new left navigation
22967
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
22968
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
22969
- // Enable the modularHomeExperience when Sliding is enabled.
22970
- params[Param.ModularHomeExperienceEnabled] = true;
22971
- }
22972
- // homePage v2 will enable the modular home page
22973
- // and it will override the modularHomeExperience value
22974
- if (discoveryExperience.homePage === HomePage.Modular) {
22975
- params[Param.ModularHomeExperienceEnabled] = true;
22976
- }
22977
- // ModularWithStylingChanges (v3) introduces the styling changes
22978
- // to the Modular Homepage.
22979
- // v3 will be the base version of homePageVersion.
22980
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
22981
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
22982
- }
22983
23739
  // listPageVersion can be changed to v2 or v3
22984
23740
  if (discoveryExperience.listPageVersion !== undefined) {
22985
23741
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
@@ -22989,13 +23745,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
22989
23745
  // The Focused (V4) homepage experience requires the updated
22990
23746
  // Spotter chat prompt. Enable it automatically unless the
22991
23747
  // developer has explicitly set updatedSpotterChatPrompt.
22992
- if (isUndefined(updatedSpotterChatPrompt)) {
23748
+ if (isUndefined$1(updatedSpotterChatPrompt)) {
22993
23749
  params[Param.UpdatedSpotterChatPrompt] = true;
22994
23750
  }
22995
23751
  }
22996
23752
  }
22997
- const queryParams = getQueryParamString(params, true);
22998
- return queryParams;
23753
+ return params;
22999
23754
  }
23000
23755
  /**
23001
23756
  * Constructs the URL of the ThoughtSpot app page to be rendered.
@@ -23030,6 +23785,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23030
23785
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
23031
23786
  case exports.Page.Monitor:
23032
23787
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
23788
+ case exports.Page.Collections:
23789
+ return 'collections';
23033
23790
  case exports.Page.Home:
23034
23791
  default:
23035
23792
  return 'home';
@@ -23062,11 +23819,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
23062
23819
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
23063
23820
  */
23064
23821
  navigateToPage(path, noReload = false) {
23822
+ var _a;
23065
23823
  if (!this.iFrame) {
23066
23824
  logger$3.log('Please call render before invoking this method');
23067
23825
  return;
23068
23826
  }
23069
- if (noReload) {
23827
+ const overrideHistoryState = (_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.overrideHistoryState;
23828
+ if (noReload || overrideHistoryState) {
23070
23829
  this.trigger(exports.HostEvent.Navigate, path);
23071
23830
  }
23072
23831
  else {
@@ -23335,7 +24094,7 @@ query GetEurekaVizSnapshots(
23335
24094
  getEmbedParamsObject() {
23336
24095
  let params = {};
23337
24096
  params = this.getBaseQueryParams(params);
23338
- 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;
24097
+ 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;
23339
24098
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23340
24099
  || this.viewConfig.preventPinboardFilterRemoval;
23341
24100
  if (fullHeight === true) {
@@ -23354,10 +24113,13 @@ query GetEurekaVizSnapshots(
23354
24113
  if (preventLiveboardFilterRemoval) {
23355
24114
  params[Param.preventLiveboardFilterRemoval] = true;
23356
24115
  }
23357
- if (!isUndefined(updatedSpotterChatPrompt)) {
24116
+ if (!isUndefined$1(updatedSpotterChatPrompt)) {
23358
24117
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23359
24118
  }
23360
- if (!isUndefined(enableStopAnswerGenerationEmbed)) {
24119
+ if (!isUndefined$1(showSpotterRadiance)) {
24120
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
24121
+ }
24122
+ if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23361
24123
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23362
24124
  }
23363
24125
  if (visibleVizs) {
@@ -23412,6 +24174,9 @@ query GetEurekaVizSnapshots(
23412
24174
  if (showSpotterLimitations !== undefined) {
23413
24175
  params[Param.ShowSpotterLimitations] = showSpotterLimitations;
23414
24176
  }
24177
+ if (!isUndefined$1(updatedSpotterExperience)) {
24178
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
24179
+ }
23415
24180
  // Handle spotterChatConfig params
23416
24181
  if (spotterChatConfig) {
23417
24182
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -23433,6 +24198,9 @@ query GetEurekaVizSnapshots(
23433
24198
  if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
23434
24199
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23435
24200
  }
24201
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
24202
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
24203
+ }
23436
24204
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23437
24205
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23438
24206
  }
@@ -23446,16 +24214,27 @@ query GetEurekaVizSnapshots(
23446
24214
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23447
24215
  }
23448
24216
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23449
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24217
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
24218
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24219
+ }
23450
24220
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23451
24221
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23452
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24222
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
24223
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24224
+ }
23453
24225
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23454
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23455
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
24226
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
24227
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
24228
+ }
24229
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
24230
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
24231
+ isEnhancedFilterInteractivityEnabled;
24232
+ }
23456
24233
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23457
24234
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23458
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24235
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
24236
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24237
+ }
23459
24238
  getQueryParamString(params, true);
23460
24239
  return params;
23461
24240
  }
@@ -23558,7 +24337,7 @@ query GetEurekaVizSnapshots(
23558
24337
  });
23559
24338
  }
23560
24339
  async handleRenderForPrerender() {
23561
- if (isUndefined(this.viewConfig.liveboardId)) {
24340
+ if (isUndefined$1(this.viewConfig.liveboardId)) {
23562
24341
  return this.prerenderGeneric();
23563
24342
  }
23564
24343
  return super.handleRenderForPrerender();
@@ -24195,6 +24974,15 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24195
24974
  });
24196
24975
  }
24197
24976
 
24977
+ /**
24978
+ * The query mode Spotter uses when answering a question.
24979
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
24980
+ */
24981
+ var SpotterQueryMode;
24982
+ (function (SpotterQueryMode) {
24983
+ SpotterQueryMode["FAST_SEARCH"] = "fastSearch";
24984
+ SpotterQueryMode["RESEARCH"] = "research";
24985
+ })(SpotterQueryMode || (SpotterQueryMode = {}));
24198
24986
  /**
24199
24987
  * Embed ThoughtSpot AI Conversation.
24200
24988
  * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
@@ -24235,18 +25023,11 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24235
25023
  */
24236
25024
  async getAppInitData() {
24237
25025
  const defaultAppInitData = await super.getAppInitData();
24238
- return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25026
+ const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25027
+ return buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
24239
25028
  }
24240
25029
  getEmbedParamsObject() {
24241
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24242
- if (!worksheetId) {
24243
- this.handleError({
24244
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
24245
- message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24246
- code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
24247
- error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24248
- });
24249
- }
25030
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24250
25031
  const queryParams = this.getBaseQueryParams();
24251
25032
  queryParams[Param.SpotterEnabled] = true;
24252
25033
  // Boolean params
@@ -24256,6 +25037,8 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24256
25037
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
24257
25038
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
24258
25039
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
25040
+ setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
25041
+ setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
24259
25042
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
24260
25043
  // Handle spotterChatConfig params
24261
25044
  if (spotterChatConfig) {
@@ -24268,11 +25051,18 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24268
25051
  queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
24269
25052
  }
24270
25053
  }
25054
+ setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
24271
25055
  return queryParams;
24272
25056
  }
24273
25057
  getIframeSrc() {
24274
- const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
24275
- const path = 'insights/conv-assist';
25058
+ const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
25059
+ // Deep-link into the read-only shared-conversation reader view when a
25060
+ // shared conversation id is supplied (e.g. a recipient landing from a
25061
+ // host-configured CONVERSATION_URL share link); otherwise the normal
25062
+ // Spotter conversation surface.
25063
+ const path = sharedConversationId
25064
+ ? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
25065
+ : 'insights/conv-assist';
24276
25066
  const queryParams = this.getEmbedParamsObject();
24277
25067
  let query = '';
24278
25068
  const queryParamsString = getQueryParamString(queryParams, true);
@@ -24288,8 +25078,12 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
24288
25078
  query += `&${parameterQuery}`;
24289
25079
  }
24290
25080
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
24291
- worksheet: worksheetId,
24292
- query: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) || '',
25081
+ ...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
25082
+ && { worksheet: worksheetId }),
25083
+ ...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
25084
+ ...(Array.isArray(dataSources)
25085
+ && dataSources.length > 0
25086
+ && { dataSources: JSON.stringify(dataSources) }),
24293
25087
  });
24294
25088
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
24295
25089
  }