@thoughtspot/visual-embed-sdk 1.50.1 → 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 (156) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/css-variables.d.ts +36 -0
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +106 -14
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +47 -36
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +318 -149
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/conversation.d.ts +204 -1
  11. package/cjs/src/embed/conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/conversation.js +19 -15
  13. package/cjs/src/embed/conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.spec.js +198 -17
  15. package/cjs/src/embed/conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/events.spec.js +42 -0
  17. package/cjs/src/embed/events.spec.js.map +1 -1
  18. package/cjs/src/embed/host-events.spec.js +45 -0
  19. package/cjs/src/embed/host-events.spec.js.map +1 -1
  20. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  21. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  22. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  23. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  24. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  25. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  26. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  27. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +9 -0
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  29. package/cjs/src/embed/liveboard.d.ts +36 -1
  30. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  31. package/cjs/src/embed/liveboard.js +26 -6
  32. package/cjs/src/embed/liveboard.js.map +1 -1
  33. package/cjs/src/embed/liveboard.spec.js +83 -2
  34. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  35. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  36. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  37. package/cjs/src/embed/spotter-utils.js +14 -1
  38. package/cjs/src/embed/spotter-utils.js.map +1 -1
  39. package/cjs/src/embed/spotter-utils.spec.js +61 -0
  40. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  41. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  42. package/cjs/src/embed/ts-embed.js +15 -0
  43. package/cjs/src/embed/ts-embed.js.map +1 -1
  44. package/cjs/src/index.d.ts +2 -2
  45. package/cjs/src/index.d.ts.map +1 -1
  46. package/cjs/src/index.js.map +1 -1
  47. package/cjs/src/mixpanel-service.d.ts +4 -0
  48. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  49. package/cjs/src/mixpanel-service.js +4 -0
  50. package/cjs/src/mixpanel-service.js.map +1 -1
  51. package/cjs/src/types.d.ts +460 -15
  52. package/cjs/src/types.d.ts.map +1 -1
  53. package/cjs/src/types.js +428 -8
  54. package/cjs/src/types.js.map +1 -1
  55. package/dist/{index-fCne7kmU.js → index-aBzH5ZwF.js} +1 -1
  56. package/dist/src/css-variables.d.ts +36 -0
  57. package/dist/src/css-variables.d.ts.map +1 -1
  58. package/dist/src/embed/app.d.ts +106 -14
  59. package/dist/src/embed/app.d.ts.map +1 -1
  60. package/dist/src/embed/conversation.d.ts +204 -1
  61. package/dist/src/embed/conversation.d.ts.map +1 -1
  62. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  63. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  64. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  65. package/dist/src/embed/liveboard.d.ts +36 -1
  66. package/dist/src/embed/liveboard.d.ts.map +1 -1
  67. package/dist/src/embed/spotter-utils.d.ts +8 -1
  68. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  69. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  70. package/dist/src/index.d.ts +2 -2
  71. package/dist/src/index.d.ts.map +1 -1
  72. package/dist/src/mixpanel-service.d.ts +4 -0
  73. package/dist/src/mixpanel-service.d.ts.map +1 -1
  74. package/dist/src/types.d.ts +460 -15
  75. package/dist/src/types.d.ts.map +1 -1
  76. package/dist/tsembed-react.es.js +558 -69
  77. package/dist/tsembed-react.js +557 -68
  78. package/dist/tsembed.es.js +556 -68
  79. package/dist/tsembed.js +555 -67
  80. package/dist/visual-embed-sdk-react-full.d.ts +845 -27
  81. package/dist/visual-embed-sdk-react.d.ts +851 -29
  82. package/dist/visual-embed-sdk.d.ts +855 -29
  83. package/lib/package.json +1 -1
  84. package/lib/src/css-variables.d.ts +36 -0
  85. package/lib/src/css-variables.d.ts.map +1 -1
  86. package/lib/src/embed/app.d.ts +106 -14
  87. package/lib/src/embed/app.d.ts.map +1 -1
  88. package/lib/src/embed/app.js +48 -37
  89. package/lib/src/embed/app.js.map +1 -1
  90. package/lib/src/embed/app.spec.js +319 -150
  91. package/lib/src/embed/app.spec.js.map +1 -1
  92. package/lib/src/embed/conversation.d.ts +204 -1
  93. package/lib/src/embed/conversation.d.ts.map +1 -1
  94. package/lib/src/embed/conversation.js +21 -17
  95. package/lib/src/embed/conversation.js.map +1 -1
  96. package/lib/src/embed/conversation.spec.js +198 -17
  97. package/lib/src/embed/conversation.spec.js.map +1 -1
  98. package/lib/src/embed/events.spec.js +42 -0
  99. package/lib/src/embed/events.spec.js.map +1 -1
  100. package/lib/src/embed/host-events.spec.js +45 -0
  101. package/lib/src/embed/host-events.spec.js.map +1 -1
  102. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  103. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  104. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  105. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  106. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  107. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  108. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  109. package/lib/src/embed/hostEventClient/host-event-client.spec.js +9 -0
  110. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  111. package/lib/src/embed/liveboard.d.ts +36 -1
  112. package/lib/src/embed/liveboard.d.ts.map +1 -1
  113. package/lib/src/embed/liveboard.js +26 -6
  114. package/lib/src/embed/liveboard.js.map +1 -1
  115. package/lib/src/embed/liveboard.spec.js +83 -2
  116. package/lib/src/embed/liveboard.spec.js.map +1 -1
  117. package/lib/src/embed/spotter-utils.d.ts +8 -1
  118. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  119. package/lib/src/embed/spotter-utils.js +12 -0
  120. package/lib/src/embed/spotter-utils.js.map +1 -1
  121. package/lib/src/embed/spotter-utils.spec.js +62 -1
  122. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  123. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  124. package/lib/src/embed/ts-embed.js +15 -0
  125. package/lib/src/embed/ts-embed.js.map +1 -1
  126. package/lib/src/index.d.ts +2 -2
  127. package/lib/src/index.d.ts.map +1 -1
  128. package/lib/src/index.js.map +1 -1
  129. package/lib/src/mixpanel-service.d.ts +4 -0
  130. package/lib/src/mixpanel-service.d.ts.map +1 -1
  131. package/lib/src/mixpanel-service.js +4 -0
  132. package/lib/src/mixpanel-service.js.map +1 -1
  133. package/lib/src/types.d.ts +460 -15
  134. package/lib/src/types.d.ts.map +1 -1
  135. package/lib/src/types.js +428 -8
  136. package/lib/src/types.js.map +1 -1
  137. package/lib/src/visual-embed-sdk.d.ts +855 -29
  138. package/package.json +1 -1
  139. package/src/css-variables.ts +45 -0
  140. package/src/embed/app.spec.ts +390 -183
  141. package/src/embed/app.ts +172 -65
  142. package/src/embed/conversation.spec.ts +243 -20
  143. package/src/embed/conversation.ts +233 -17
  144. package/src/embed/events.spec.ts +52 -0
  145. package/src/embed/host-events.spec.ts +70 -0
  146. package/src/embed/hostEventClient/contracts.ts +16 -0
  147. package/src/embed/hostEventClient/host-event-client.spec.ts +12 -0
  148. package/src/embed/hostEventClient/host-event-client.ts +1 -0
  149. package/src/embed/liveboard.spec.ts +108 -2
  150. package/src/embed/liveboard.ts +76 -14
  151. package/src/embed/spotter-utils.spec.ts +68 -1
  152. package/src/embed/spotter-utils.ts +16 -1
  153. package/src/embed/ts-embed.ts +18 -0
  154. package/src/index.ts +2 -1
  155. package/src/mixpanel-service.ts +4 -0
  156. package/src/types.ts +462 -14
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.50.1 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.51.0 */
2
2
  'use client';
3
3
  import * as React from 'react';
4
4
  import React__default, { useRef, useCallback } from 'react';
@@ -374,7 +374,9 @@ var AuthType;
374
374
  })(AuthType || (AuthType = {}));
375
375
  /**
376
376
  *
377
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
377
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
378
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
379
+ * V4 (Focused) home page experiences.
378
380
  *
379
381
  */
380
382
  var HomeLeftNavItem;
@@ -521,7 +523,9 @@ var RuntimeFilterOp;
521
523
  * via `hiddenHomepageModules` and reordered via
522
524
  * `reorderedHomepageModules`.
523
525
  *
524
- * **Note**: This option is not supported in the classic (v1) experience.
526
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
527
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
528
+ * V4 (Focused) home page experiences.
525
529
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
526
530
  */
527
531
  var HomepageModule;
@@ -1479,11 +1483,19 @@ var EmbedEvent;
1479
1483
  * Emitted when a user changes any filter on a Liveboard.
1480
1484
  * Returns filter type and name, column name and ID, and runtime
1481
1485
  * filter details.
1486
+ * The payload includes an optional `applicability` attribute indicating the
1487
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
1488
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1489
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1490
+ * is no `targetId`, since the filter applies to the whole Liveboard.
1491
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1492
+ * ThoughtSpot: 26.10.0.cl.
1482
1493
  * @example
1483
1494
  *
1484
1495
  * ```js
1485
1496
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
1486
1497
  * console.log('payload', payload);
1498
+ * // payload.data optionally includes applicability: { level, targetId }
1487
1499
  * })
1488
1500
  * ```
1489
1501
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -1675,9 +1687,17 @@ var EmbedEvent;
1675
1687
  /**
1676
1688
  * Emitted when parameter changes in an Answer
1677
1689
  * or Liveboard.
1690
+ * The payload includes an optional `applicability` attribute indicating the
1691
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
1692
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
1693
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
1694
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
1695
+ * The `applicability` attribute is available from SDK: 1.53.0 |
1696
+ * ThoughtSpot: 26.10.0.cl.
1678
1697
  * ```js
1679
1698
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
1680
1699
  * console.log('payload', payload);
1700
+ * // payload.data optionally includes applicability: { level, targetId }
1681
1701
  * })
1682
1702
  * ```
1683
1703
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -1979,6 +1999,158 @@ var EmbedEvent;
1979
1999
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
1980
2000
  */
1981
2001
  EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
2002
+ /**
2003
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
2004
+ * to bracket the interaction. App→host counterpart of the
2005
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
2006
+ * @example
2007
+ * ```js
2008
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
2009
+ * // payload: { convId: string }
2010
+ * })
2011
+ * ```
2012
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2013
+ */
2014
+ EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
2015
+ /**
2016
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
2017
+ * to bracket the interaction.
2018
+ * @example
2019
+ * ```js
2020
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
2021
+ * // payload: { convId: string }
2022
+ * })
2023
+ * ```
2024
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2025
+ */
2026
+ EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
2027
+ /**
2028
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
2029
+ * share created). The host builds its own link from shareId/convId + its
2030
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
2031
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
2032
+ * the save resolves.
2033
+ * @example
2034
+ * ```js
2035
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
2036
+ * // payload: { convId: string, shareId: string,
2037
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
2038
+ * })
2039
+ * ```
2040
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2041
+ */
2042
+ EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
2043
+ /**
2044
+ * Emitted when access to a shared Spotter conversation is revoked
2045
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
2046
+ * and the share is deleted entirely.
2047
+ * @example
2048
+ * ```js
2049
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
2050
+ * // payload: { convId: string, shareId: string,
2051
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
2052
+ * })
2053
+ * ```
2054
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2055
+ */
2056
+ EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
2057
+ /**
2058
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
2059
+ * view). No shareId available viewer-side.
2060
+ * @example
2061
+ * ```js
2062
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
2063
+ * // payload: { convId: string, sourceConvId: string }
2064
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
2065
+ * })
2066
+ * ```
2067
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2068
+ */
2069
+ EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
2070
+ /**
2071
+ * Emitted when the user toggles the share-modal "include new messages since
2072
+ * last shared version" checkbox.
2073
+ * @example
2074
+ * ```js
2075
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
2076
+ * // payload: { convId: string, includeNewMessages: boolean }
2077
+ * })
2078
+ * ```
2079
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2080
+ */
2081
+ EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
2082
+ /**
2083
+ * Emitted when the user dismisses the stale-snapshot info banner via its
2084
+ * cross (distinct from the include-new-messages checkbox toggle).
2085
+ * @example
2086
+ * ```js
2087
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
2088
+ * // payload: { convId: string }
2089
+ * })
2090
+ * ```
2091
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2092
+ */
2093
+ EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
2094
+ /**
2095
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
2096
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
2097
+ * / `SpotterConversationShareRevoked` result events.
2098
+ * @example
2099
+ * ```js
2100
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
2101
+ * // payload: { convId: string }
2102
+ * })
2103
+ * ```
2104
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2105
+ */
2106
+ EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
2107
+ /**
2108
+ * Emitted when the share modal is dismissed via the Cancel button.
2109
+ * @example
2110
+ * ```js
2111
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
2112
+ * // payload: { convId: string }
2113
+ * })
2114
+ * ```
2115
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2116
+ */
2117
+ EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
2118
+ /**
2119
+ * Emitted when a recipient leaves the read-only shared view via the Exit
2120
+ * button.
2121
+ * @example
2122
+ * ```js
2123
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
2124
+ * // payload: { convId: string }
2125
+ * })
2126
+ * ```
2127
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
2128
+ */
2129
+ EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
2130
+ /**
2131
+ * Emitted when a Spotter conversation is pinned.
2132
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2133
+ * @example
2134
+ * ```js
2135
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
2136
+ * console.log('Conversation pinned', payload);
2137
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
2138
+ * })
2139
+ * ```
2140
+ */
2141
+ EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
2142
+ /**
2143
+ * Emitted when a Spotter conversation is unpinned.
2144
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2145
+ * @example
2146
+ * ```js
2147
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
2148
+ * console.log('Conversation unpinned', payload);
2149
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
2150
+ * })
2151
+ * ```
2152
+ */
2153
+ EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
1982
2154
  /**
1983
2155
  * Emitted when a Spotter conversation is selected/clicked.
1984
2156
  * @example
@@ -2495,6 +2667,17 @@ var HostEvent;
2495
2667
  * name: string,
2496
2668
  * type: ATTRIBUTE/MEASURE,
2497
2669
  * dataType: INT64/CHAR/DATE }
2670
+ *
2671
+ * `applicability` - Optional. Scopes the filter to a specific target,
2672
+ * for example, a single Liveboard tab, so the panel for the correct
2673
+ * scoped filter is opened. Available from SDK: 1.53.0 |
2674
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
2675
+ *
2676
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
2677
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2678
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2679
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
2680
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2498
2681
  * @example
2499
2682
  * ```js
2500
2683
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -2507,6 +2690,14 @@ var HostEvent;
2507
2690
  * ```
2508
2691
  * @example
2509
2692
  * ```js
2693
+ * // Open a filter scoped to a specific Liveboard tab
2694
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
2695
+ * column: { columnId: '<column-GUID>' },
2696
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
2697
+ * });
2698
+ * ```
2699
+ * @example
2700
+ * ```js
2510
2701
  * // Open filter from search context
2511
2702
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2512
2703
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -2516,6 +2707,38 @@ var HostEvent;
2516
2707
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2517
2708
  */
2518
2709
  HostEvent["OpenFilter"] = "openFilter";
2710
+ /**
2711
+ * Open the parameter panel for a particular parameter on a Liveboard.
2712
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
2713
+ * @param - Includes the following keys:
2714
+ * - `parameter`: An object identifying the parameter to open, for
2715
+ * example, `{ parameterId: '<parameter-GUID>' }`.
2716
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
2717
+ * for example, a single Liveboard tab, so the panel for the correct
2718
+ * scoped parameter is opened. Includes the following attributes:
2719
+ *
2720
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
2721
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
2722
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
2723
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
2724
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
2725
+ * @example
2726
+ * ```js
2727
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2728
+ * parameter: { parameterId: '<parameter-GUID>' }
2729
+ * });
2730
+ * ```
2731
+ * @example
2732
+ * ```js
2733
+ * // Open a parameter scoped to a specific group
2734
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
2735
+ * parameter: { parameterId: '<parameter-GUID>' },
2736
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
2737
+ * });
2738
+ * ```
2739
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
2740
+ */
2741
+ HostEvent["OpenParameter"] = "openParameter";
2519
2742
  /**
2520
2743
  * Add columns to the current search query.
2521
2744
  * @param - { columnIds: string[] }
@@ -3580,13 +3803,13 @@ var HostEvent;
3580
3803
  /**
3581
3804
  * Get details of filters applied on the Liveboard.
3582
3805
  * Returns arrays containing Liveboard filter and runtime filter elements.
3583
- * Each Liveboard filter may include an `applicability` attribute
3806
+ * Each Liveboard filter includes an optional `applicability` attribute
3584
3807
  * indicating the scope of the filter. It contains a `level`
3585
3808
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3586
3809
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3587
3810
  * level there is no `targetId`, since the filter applies to the
3588
3811
  * whole Liveboard.
3589
- * The `applicability` attribute is available from SDK: 1.51.0 |
3812
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3590
3813
  * ThoughtSpot: 26.10.0.cl.
3591
3814
  * @example
3592
3815
  * ```js
@@ -3629,7 +3852,7 @@ var HostEvent;
3629
3852
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
3630
3853
  *
3631
3854
  * `applicability` - Optional. Scopes the filter to a specific target,
3632
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
3855
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3633
3856
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3634
3857
  *
3635
3858
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3752,6 +3975,28 @@ var HostEvent;
3752
3975
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3753
3976
  */
3754
3977
  HostEvent["GetTabs"] = "getTabs";
3978
+ /**
3979
+ * Get group details for the current Liveboard.
3980
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
3981
+ * @example
3982
+ * ```js
3983
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
3984
+ * console.log(
3985
+ * groupDetails // GroupDetails of current Liveboard
3986
+ * );
3987
+ * })
3988
+ * ```
3989
+ * @example
3990
+ * ```js
3991
+ * // Get groups from liveboard context
3992
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
3993
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
3994
+ * console.log('groups', groupDetails);
3995
+ * });
3996
+ * ```
3997
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3998
+ */
3999
+ HostEvent["GetGroups"] = "getGroups";
3755
4000
  /**
3756
4001
  * Set the visible tabs on a Liveboard.
3757
4002
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -3880,7 +4125,7 @@ var HostEvent;
3880
4125
  * - `value`: The value to set for the parameter.
3881
4126
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
3882
4127
  * - `applicability`: Optional. Scopes the parameter to a specific target,
3883
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
4128
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
3884
4129
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
3885
4130
  *
3886
4131
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -3924,13 +4169,13 @@ var HostEvent;
3924
4169
  HostEvent["UpdateParameters"] = "UpdateParameters";
3925
4170
  /**
3926
4171
  * Triggers GetParameters to fetch the runtime Parameters.
3927
- * Each parameter may include an `applicability` attribute
4172
+ * Each parameter includes an optional `applicability` attribute
3928
4173
  * indicating the scope of the parameter. It contains a `level`
3929
4174
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
3930
4175
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
3931
4176
  * level there is no `targetId`, since the parameter applies to the
3932
4177
  * whole Liveboard.
3933
- * The `applicability` attribute is available from SDK: 1.51.0 |
4178
+ * The `applicability` attribute is available from SDK: 1.53.0 |
3934
4179
  * ThoughtSpot: 26.10.0.cl.
3935
4180
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
3936
4181
  * ```js
@@ -4198,6 +4443,36 @@ var HostEvent;
4198
4443
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
4199
4444
  */
4200
4445
  HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
4446
+ /**
4447
+ * Opens the Spotter share-conversation modal for the given conversation.
4448
+ * `conversationId` is **mandatory** — you must pass the id of the
4449
+ * conversation to share. Also no-op when sharing is disabled
4450
+ * (enableShareConversation off) or when already in the read-only shared view.
4451
+ * @example
4452
+ * ```js
4453
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
4454
+ * ```
4455
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4456
+ */
4457
+ HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
4458
+ /**
4459
+ * Closes the Spotter share-conversation modal. No-op if none is open.
4460
+ * @example
4461
+ * ```js
4462
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
4463
+ * ```
4464
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4465
+ */
4466
+ HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
4467
+ /**
4468
+ * Exits the read-only shared-conversation view.
4469
+ * @example
4470
+ * ```js
4471
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
4472
+ * ```
4473
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
4474
+ */
4475
+ HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
4201
4476
  /**
4202
4477
  * Deletes the last prompt in spotter embed.
4203
4478
  * @example
@@ -4293,6 +4568,41 @@ var HostEvent;
4293
4568
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
4294
4569
  */
4295
4570
  HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
4571
+ /**
4572
+ * Pins a saved Spotter conversation so it floats to the top of the past
4573
+ * conversations sidebar. The `conversationId` of the conversation to pin is
4574
+ * required.
4575
+ *
4576
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4577
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4578
+ * instance.
4579
+ *
4580
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4581
+ * @example
4582
+ * ```js
4583
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
4584
+ * conversationId: '<conversation-id>',
4585
+ * });
4586
+ * ```
4587
+ */
4588
+ HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
4589
+ /**
4590
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
4591
+ * conversation to unpin is required.
4592
+ *
4593
+ * This feature is available only when chat history is enabled on your ThoughtSpot
4594
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
4595
+ * instance.
4596
+ *
4597
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4598
+ * @example
4599
+ * ```js
4600
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
4601
+ * conversationId: '<conversation-id>',
4602
+ * });
4603
+ * ```
4604
+ */
4605
+ HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
4296
4606
  /**
4297
4607
  * @hidden
4298
4608
  * Get the current context of the embedded page.
@@ -4532,9 +4842,11 @@ var Param;
4532
4842
  Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
4533
4843
  Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
4534
4844
  Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
4845
+ Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
4535
4846
  Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
4536
4847
  Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
4537
4848
  Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
4849
+ Param["ShowSpotterRadiance"] = "showSpotterRadiance";
4538
4850
  Param["DefaultQueryMode"] = "defaultQueryMode";
4539
4851
  Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
4540
4852
  Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
@@ -4555,6 +4867,8 @@ var Param;
4555
4867
  Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
4556
4868
  Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
4557
4869
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4870
+ Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4871
+ Param["SpotterDataSources"] = "spotterDataSources";
4558
4872
  })(Param || (Param = {}));
4559
4873
  /**
4560
4874
  * ThoughtSpot application pages include actions and menu commands
@@ -5819,6 +6133,19 @@ var Action;
5819
6133
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
5820
6134
  */
5821
6135
  Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
6136
+ /**
6137
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
6138
+ * including filter, parameter, and cross-filter chips at the liveboard,
6139
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
6140
+ *
6141
+ * @example
6142
+ * ```js
6143
+ * hiddenActions: [Action.AllLiveboardFilters]
6144
+ * disabledActions: [Action.AllLiveboardFilters]
6145
+ * ```
6146
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6147
+ */
6148
+ Action["AllLiveboardFilters"] = "allLiveboardFilters";
5822
6149
  /**
5823
6150
  * The **Data model instructions** button on the Spotter interface.
5824
6151
  * Allows opening the data model instructions modal.
@@ -6154,6 +6481,89 @@ var Action;
6154
6481
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6155
6482
  */
6156
6483
  Action["SpotterChatRename"] = "spotterChatRename";
6484
+ /**
6485
+ * Controls visibility and disable state of the Spotter conversation Share
6486
+ * button in the chat header. Only takes effect once sharing is enabled
6487
+ * (enableShareConversation on).
6488
+ * @example
6489
+ * ```js
6490
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
6491
+ * ```
6492
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6493
+ */
6494
+ Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
6495
+ /**
6496
+ * Controls visibility and disable state of the Share item in the Spotter
6497
+ * conversation history (sidebar) edit menu. Independent of the header button
6498
+ * above, so a host can show Share in one entry point and hide it in the other.
6499
+ * @example
6500
+ * ```js
6501
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
6502
+ * ```
6503
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6504
+ */
6505
+ Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
6506
+ /**
6507
+ * Controls visibility of the entire read-only shared-conversation data-access
6508
+ * banner shown when a recipient opens a shared view. Hide-only.
6509
+ * @example
6510
+ * ```js
6511
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
6512
+ * ```
6513
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6514
+ */
6515
+ Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
6516
+ /**
6517
+ * Controls visibility and disable state of the cross/close button on the
6518
+ * read-only shared-conversation data-access banner (keeps the banner itself).
6519
+ * @example
6520
+ * ```js
6521
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
6522
+ * ```
6523
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6524
+ */
6525
+ Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
6526
+ /**
6527
+ * Controls visibility and disable state of the Exit button in the read-only
6528
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
6529
+ * host event.
6530
+ * @example
6531
+ * ```js
6532
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
6533
+ * ```
6534
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6535
+ */
6536
+ Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
6537
+ /**
6538
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
6539
+ * to the current moment…"). Hide-only.
6540
+ * @example
6541
+ * ```js
6542
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
6543
+ * ```
6544
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6545
+ */
6546
+ Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
6547
+ /**
6548
+ * Controls visibility and disable state of the share-modal "include new
6549
+ * messages since last shared version" checkbox.
6550
+ * @example
6551
+ * ```js
6552
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
6553
+ * ```
6554
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6555
+ */
6556
+ Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
6557
+ /**
6558
+ * Controls visibility and disable state of the cross on the share-modal
6559
+ * stale-snapshot info banner.
6560
+ * @example
6561
+ * ```js
6562
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
6563
+ * ```
6564
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6565
+ */
6566
+ Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
6157
6567
  /**
6158
6568
  * Controls visibility and disable state of the delete action
6159
6569
  * in the Spotter conversation edit menu.
@@ -6164,6 +6574,16 @@ var Action;
6164
6574
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
6165
6575
  */
6166
6576
  Action["SpotterChatDelete"] = "spotterChatDelete";
6577
+ /**
6578
+ * Controls visibility and disable state of the pin/unpin action
6579
+ * in the Spotter conversation edit menu.
6580
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6581
+ * @example
6582
+ * ```js
6583
+ * disabledActions: [Action.SpotterChatPin]
6584
+ * ```
6585
+ */
6586
+ Action["SpotterChatPin"] = "spotterChatPin";
6167
6587
  /**
6168
6588
  * Controls visibility and disable state of the documentation/best practices
6169
6589
  * link in the Spotter sidebar footer.
@@ -6822,7 +7242,7 @@ var TableContentDensity;
6822
7242
  TableContentDensity["Compact"] = "COMPACT";
6823
7243
  })(TableContentDensity || (TableContentDensity = {}));
6824
7244
 
6825
- var version$1="1.50.1";var pkg = {version:version$1};
7245
+ var version$1="1.51.0";var pkg = {version:version$1};
6826
7246
 
6827
7247
  const { version } = pkg;
6828
7248
 
@@ -6898,7 +7318,6 @@ const logger$3 = new Logger();
6898
7318
 
6899
7319
  const ERROR_MESSAGE = {
6900
7320
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
6901
- SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
6902
7321
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
6903
7322
  TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
6904
7323
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
@@ -8467,6 +8886,7 @@ var UIPassthroughEvent;
8467
8886
  UIPassthroughEvent["GetParameters"] = "getParameters";
8468
8887
  UIPassthroughEvent["GetTML"] = "getTML";
8469
8888
  UIPassthroughEvent["GetTabs"] = "getTabs";
8889
+ UIPassthroughEvent["GetGroups"] = "getGroups";
8470
8890
  UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
8471
8891
  })(UIPassthroughEvent || (UIPassthroughEvent = {}));
8472
8892
 
@@ -9402,7 +9822,7 @@ class AnswerService {
9402
9822
  async getTML() {
9403
9823
  const { object } = await this.executeQuery(getAnswerTML, {});
9404
9824
  const edoc = object[0].edoc;
9405
- const YAML = await import('./index-fCne7kmU.js');
9825
+ const YAML = await import('./index-aBzH5ZwF.js');
9406
9826
  const parsedDoc = YAML.parse(edoc);
9407
9827
  return {
9408
9828
  answer: {
@@ -18506,7 +18926,12 @@ const MIXPANEL_EVENT = {
18506
18926
  VISUAL_SDK_RENDER_FAILED: 'visual-sdk-render-failed',
18507
18927
  VISUAL_SDK_TRIGGER: 'visual-sdk-trigger',
18508
18928
  VISUAL_SDK_ON: 'visual-sdk-on',
18509
- VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create'};
18929
+ VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
18930
+ VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
18931
+ VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
18932
+ VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
18933
+ VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
18934
+ };
18510
18935
  let isMixpanelInitialized = false;
18511
18936
  let eventQueue = [];
18512
18937
  /**
@@ -20305,6 +20730,7 @@ const PASSTHROUGH_MAP = {
20305
20730
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
20306
20731
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML,
20307
20732
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
20733
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
20308
20734
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
20309
20735
  };
20310
20736
  class HostEventClient {
@@ -22009,6 +22435,9 @@ class TsEmbed {
22009
22435
  * @param args
22010
22436
  */
22011
22437
  async render() {
22438
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
22439
+ embedComponentType: this.viewConfig.embedComponentType,
22440
+ });
22012
22441
  if (!getIsInitCalled()) {
22013
22442
  logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
22014
22443
  }
@@ -22080,6 +22509,10 @@ class TsEmbed {
22080
22509
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
22081
22510
  */
22082
22511
  async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
22512
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
22513
+ showPreRenderByDefault,
22514
+ replaceExistingPreRender,
22515
+ });
22083
22516
  if (!this.viewConfig.preRenderId) {
22084
22517
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22085
22518
  return this;
@@ -22257,6 +22690,10 @@ class TsEmbed {
22257
22690
  */
22258
22691
  async showPreRender() {
22259
22692
  var _a, _b;
22693
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22694
+ preRenderId: this.viewConfig.preRenderId,
22695
+ embedComponentType: this.viewConfig.embedComponentType,
22696
+ });
22260
22697
  if (this.shouldWaitForRenderPromise)
22261
22698
  await this.isReadyForRenderPromise;
22262
22699
  if (!this.viewConfig.preRenderId) {
@@ -22362,6 +22799,10 @@ class TsEmbed {
22362
22799
  * If the component is not preRendered, it issues a warning.
22363
22800
  */
22364
22801
  hidePreRender() {
22802
+ uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
22803
+ preRenderId: this.viewConfig.preRenderId,
22804
+ embedComponentType: this.viewConfig.embedComponentType,
22805
+ });
22365
22806
  logger$3.debug('HidePreRender Called');
22366
22807
  if (!this.isPreRenderConnected()) {
22367
22808
  // if the embed component is not preRendered , nothing to hide
@@ -22841,6 +23282,18 @@ function buildSpotterSidebarAppInitData(defaultAppInitData, viewConfig, handleEr
22841
23282
  ...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
22842
23283
  },
22843
23284
  };
23285
+ }
23286
+ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23287
+ const { spotterShareConversationConfig } = viewConfig;
23288
+ if (!spotterShareConversationConfig)
23289
+ return initData;
23290
+ return {
23291
+ ...initData,
23292
+ embedParams: {
23293
+ ...(initData.embedParams || {}),
23294
+ spotterShareConversationConfig,
23295
+ },
23296
+ };
22844
23297
  }
22845
23298
 
22846
23299
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -22954,6 +23407,9 @@ var HomePage;
22954
23407
  /**
22955
23408
  * Modular (v2) introduces the updated Modular Home Experience.
22956
23409
  * It serves as the foundational version of the home page.
23410
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
23411
+ * {@link HomePage.Focused} (V4) instead.
23412
+ * @deprecated V1 and V2 home page experiences are deprecated.
22957
23413
  */
22958
23414
  HomePage["Modular"] = "v2";
22959
23415
  /**
@@ -23069,14 +23525,19 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23069
23525
  async getAppInitData() {
23070
23526
  const defaultAppInitData = await super.getAppInitData();
23071
23527
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
23072
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23528
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23529
+ return buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
23073
23530
  }
23074
23531
  /**
23075
23532
  * Constructs a map of parameters to be passed on to the
23076
23533
  * embedded Liveboard or visualization.
23077
23534
  */
23078
23535
  getEmbedParams() {
23079
- const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
23536
+ const params = this.getEmbedParamsObject();
23537
+ return getQueryParamString(params, true);
23538
+ }
23539
+ getEmbedParamsObject() {
23540
+ 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;
23080
23541
  let params = {};
23081
23542
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
23082
23543
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -23086,31 +23547,48 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23086
23547
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
23087
23548
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
23088
23549
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23089
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23550
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
23551
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23552
+ }
23090
23553
  if (newChartsLibrary !== undefined) {
23091
23554
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23092
23555
  }
23093
23556
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23094
23557
  params[Param.IsFullAppEmbed] = true;
23095
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23096
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
23558
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
23559
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
23560
+ }
23561
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
23562
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
23563
+ isEnhancedFilterInteractivityEnabled;
23564
+ }
23097
23565
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23098
23566
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23099
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23567
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
23568
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
23569
+ }
23100
23570
  if (isUnifiedSearchExperienceEnabled !== undefined) {
23101
23571
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
23102
23572
  }
23103
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23573
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
23574
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
23575
+ }
23104
23576
  params = this.getBaseQueryParams(params);
23105
23577
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23106
23578
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23107
23579
  }
23580
+ if (!isUndefined$1(showSpotterRadiance)) {
23581
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
23582
+ }
23108
23583
  if (!isUndefined$1(defaultQueryMode)) {
23109
23584
  params[Param.DefaultQueryMode] = defaultQueryMode;
23110
23585
  }
23111
23586
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23112
23587
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23113
23588
  }
23589
+ if (spotterDataSources && spotterDataSources.length) {
23590
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
23591
+ }
23114
23592
  // Handle spotterChatConfig params
23115
23593
  if (spotterChatConfig) {
23116
23594
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -23126,6 +23604,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23126
23604
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23127
23605
  }
23128
23606
  }
23607
+ if (!isUndefined$1(updatedSpotterExperience)) {
23608
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
23609
+ }
23129
23610
  if (hideObjectSearch) {
23130
23611
  params[Param.HideObjectSearch] = !!hideObjectSearch;
23131
23612
  }
@@ -23192,6 +23673,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23192
23673
  if (isCentralizedLiveboardFilterUXEnabled != undefined) {
23193
23674
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23194
23675
  }
23676
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
23677
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
23678
+ }
23195
23679
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23196
23680
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23197
23681
  }
@@ -23207,7 +23691,6 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23207
23691
  }
23208
23692
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23209
23693
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
23210
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23211
23694
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
23212
23695
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23213
23696
  if (dataPanelCustomGroupsAccordionInitialState
@@ -23222,33 +23705,15 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23222
23705
  if (modularHomeExperience !== undefined) {
23223
23706
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
23224
23707
  }
23225
- // Set navigation to v2 by default to avoid problems like the app
23226
- // switcher (9-dot menu) not showing when v3 navigation is turned on
23227
- // at the cluster level.
23228
- // To use v3 navigation, we must manually set the discoveryExperience
23229
- // settings.
23230
- params[Param.NavigationVersion] = 'v2';
23231
- // Set homePageVersion to v2 by default to reset the LD flag value
23232
- // for the homepageVersion.
23233
- params[Param.HomepageVersion] = 'v2';
23708
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
23709
+ // default experience, Need to send navigationVersion=v3 and
23710
+ // homepageVersion=v3 even when the no discoveryExperience /
23711
+ // modularHomeExperience config is set. Without these
23712
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
23713
+ // home page, so the defaults must be sent explicitly from the SDK.
23714
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
23715
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23234
23716
  if (discoveryExperience) {
23235
- // primaryNavbarVersion v3 will enabled the new left navigation
23236
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
23237
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
23238
- // Enable the modularHomeExperience when Sliding is enabled.
23239
- params[Param.ModularHomeExperienceEnabled] = true;
23240
- }
23241
- // homePage v2 will enable the modular home page
23242
- // and it will override the modularHomeExperience value
23243
- if (discoveryExperience.homePage === HomePage.Modular) {
23244
- params[Param.ModularHomeExperienceEnabled] = true;
23245
- }
23246
- // ModularWithStylingChanges (v3) introduces the styling changes
23247
- // to the Modular Homepage.
23248
- // v3 will be the base version of homePageVersion.
23249
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
23250
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
23251
- }
23252
23717
  // listPageVersion can be changed to v2 or v3
23253
23718
  if (discoveryExperience.listPageVersion !== undefined) {
23254
23719
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
@@ -23263,8 +23728,7 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
23263
23728
  }
23264
23729
  }
23265
23730
  }
23266
- const queryParams = getQueryParamString(params, true);
23267
- return queryParams;
23731
+ return params;
23268
23732
  }
23269
23733
  /**
23270
23734
  * Constructs the URL of the ThoughtSpot app page to be rendered.
@@ -23608,7 +24072,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23608
24072
  getEmbedParamsObject() {
23609
24073
  let params = {};
23610
24074
  params = this.getBaseQueryParams(params);
23611
- const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, newChartsLibrary, isEnhancedFilterInteractivityEnabled = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled = false, enableLiveboardDataCache, } = this.viewConfig;
24075
+ 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;
23612
24076
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23613
24077
  || this.viewConfig.preventPinboardFilterRemoval;
23614
24078
  if (fullHeight === true) {
@@ -23630,6 +24094,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23630
24094
  if (!isUndefined$1(updatedSpotterChatPrompt)) {
23631
24095
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
23632
24096
  }
24097
+ if (!isUndefined$1(showSpotterRadiance)) {
24098
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
24099
+ }
23633
24100
  if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
23634
24101
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
23635
24102
  }
@@ -23685,6 +24152,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23685
24152
  if (showSpotterLimitations !== undefined) {
23686
24153
  params[Param.ShowSpotterLimitations] = showSpotterLimitations;
23687
24154
  }
24155
+ if (!isUndefined$1(updatedSpotterExperience)) {
24156
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
24157
+ }
23688
24158
  // Handle spotterChatConfig params
23689
24159
  if (spotterChatConfig) {
23690
24160
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -23706,6 +24176,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23706
24176
  if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
23707
24177
  params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
23708
24178
  }
24179
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
24180
+ params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
24181
+ }
23709
24182
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
23710
24183
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
23711
24184
  }
@@ -23719,16 +24192,27 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
23719
24192
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
23720
24193
  }
23721
24194
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
23722
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24195
+ if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
24196
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
24197
+ }
23723
24198
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
23724
24199
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
23725
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24200
+ if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
24201
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
24202
+ }
23726
24203
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
23727
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
23728
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
24204
+ if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
24205
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
24206
+ }
24207
+ if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
24208
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
24209
+ isEnhancedFilterInteractivityEnabled;
24210
+ }
23729
24211
  params[Param.DataPanelV2Enabled] = dataPanelV2;
23730
24212
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
23731
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24213
+ if (!isUndefined$1(coverAndFilterOptionInPDF)) {
24214
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
24215
+ }
23732
24216
  getQueryParamString(params, true);
23733
24217
  return params;
23734
24218
  }
@@ -24517,18 +25001,11 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24517
25001
  */
24518
25002
  async getAppInitData() {
24519
25003
  const defaultAppInitData = await super.getAppInitData();
24520
- return buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25004
+ const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25005
+ return buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
24521
25006
  }
24522
25007
  getEmbedParamsObject() {
24523
- const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24524
- if (!worksheetId) {
24525
- this.handleError({
24526
- errorType: ErrorDetailsTypes.VALIDATION_ERROR,
24527
- message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24528
- code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
24529
- error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
24530
- });
24531
- }
25008
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
24532
25009
  const queryParams = this.getBaseQueryParams();
24533
25010
  queryParams[Param.SpotterEnabled] = true;
24534
25011
  // Boolean params
@@ -24538,6 +25015,7 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24538
25015
  setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
24539
25016
  setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
24540
25017
  setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
25018
+ setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
24541
25019
  setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
24542
25020
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
24543
25021
  // Handle spotterChatConfig params
@@ -24551,11 +25029,18 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24551
25029
  queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
24552
25030
  }
24553
25031
  }
25032
+ setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
24554
25033
  return queryParams;
24555
25034
  }
24556
25035
  getIframeSrc() {
24557
- const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
24558
- const path = 'insights/conv-assist';
25036
+ const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
25037
+ // Deep-link into the read-only shared-conversation reader view when a
25038
+ // shared conversation id is supplied (e.g. a recipient landing from a
25039
+ // host-configured CONVERSATION_URL share link); otherwise the normal
25040
+ // Spotter conversation surface.
25041
+ const path = sharedConversationId
25042
+ ? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
25043
+ : 'insights/conv-assist';
24559
25044
  const queryParams = this.getEmbedParamsObject();
24560
25045
  let query = '';
24561
25046
  const queryParamsString = getQueryParamString(queryParams, true);
@@ -24571,8 +25056,12 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
24571
25056
  query += `&${parameterQuery}`;
24572
25057
  }
24573
25058
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
24574
- worksheet: worksheetId,
24575
- query: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) || '',
25059
+ ...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
25060
+ && { worksheet: worksheetId }),
25061
+ ...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
25062
+ ...(Array.isArray(dataSources)
25063
+ && dataSources.length > 0
25064
+ && { dataSources: JSON.stringify(dataSources) }),
24576
25065
  });
24577
25066
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
24578
25067
  }