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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +122 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +176 -24
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +86 -38
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +672 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +401 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +32 -16
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +346 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +638 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +187 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +11 -1
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +236 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
  37. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  38. package/cjs/src/embed/hostEventClient/utils.js +32 -2
  39. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  40. package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
  41. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  42. package/cjs/src/embed/liveboard.d.ts +81 -13
  43. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  44. package/cjs/src/embed/liveboard.js +50 -9
  45. package/cjs/src/embed/liveboard.js.map +1 -1
  46. package/cjs/src/embed/liveboard.spec.js +432 -4
  47. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  49. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-utils.js +28 -1
  51. package/cjs/src/embed/spotter-utils.js.map +1 -1
  52. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  53. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  54. package/cjs/src/embed/spotter-viz-utils.d.ts +37 -4
  55. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  56. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  57. package/cjs/src/embed/spotter-viz-utils.spec.js +17 -0
  58. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
  59. package/cjs/src/embed/ts-embed.d.ts +16 -8
  60. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  61. package/cjs/src/embed/ts-embed.js +96 -37
  62. package/cjs/src/embed/ts-embed.js.map +1 -1
  63. package/cjs/src/embed/ts-embed.spec.js +683 -3
  64. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  65. package/cjs/src/errors.d.ts +1 -0
  66. package/cjs/src/errors.d.ts.map +1 -1
  67. package/cjs/src/errors.js +1 -0
  68. package/cjs/src/errors.js.map +1 -1
  69. package/cjs/src/index.d.ts +3 -3
  70. package/cjs/src/index.d.ts.map +1 -1
  71. package/cjs/src/index.js +4 -2
  72. package/cjs/src/index.js.map +1 -1
  73. package/cjs/src/mixpanel-service.d.ts +4 -0
  74. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  75. package/cjs/src/mixpanel-service.js +4 -0
  76. package/cjs/src/mixpanel-service.js.map +1 -1
  77. package/cjs/src/react/all-types-export.d.ts +1 -1
  78. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  79. package/cjs/src/react/all-types-export.js +2 -1
  80. package/cjs/src/react/all-types-export.js.map +1 -1
  81. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  82. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  83. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  84. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  85. package/cjs/src/react/index.d.ts +66 -32
  86. package/cjs/src/react/index.d.ts.map +1 -1
  87. package/cjs/src/react/index.js +5 -3
  88. package/cjs/src/react/index.js.map +1 -1
  89. package/cjs/src/react/index.spec.js +101 -0
  90. package/cjs/src/react/index.spec.js.map +1 -1
  91. package/cjs/src/react/util.spec.js +251 -0
  92. package/cjs/src/react/util.spec.js.map +1 -1
  93. package/cjs/src/types.d.ts +902 -28
  94. package/cjs/src/types.d.ts.map +1 -1
  95. package/cjs/src/types.js +701 -14
  96. package/cjs/src/types.js.map +1 -1
  97. package/cjs/src/utils/processData.spec.js +93 -0
  98. package/cjs/src/utils/processData.spec.js.map +1 -1
  99. package/cjs/src/utils/processTrigger.spec.js +61 -0
  100. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  101. package/cjs/src/utils.spec.js +4 -0
  102. package/cjs/src/utils.spec.js.map +1 -1
  103. package/dist/{index-B5xoN6Cp.js → index-Bivg-mDx.js} +1 -1
  104. package/dist/src/config.d.ts +1 -0
  105. package/dist/src/config.d.ts.map +1 -1
  106. package/dist/src/css-variables.d.ts +122 -0
  107. package/dist/src/css-variables.d.ts.map +1 -1
  108. package/dist/src/embed/app.d.ts +176 -24
  109. package/dist/src/embed/app.d.ts.map +1 -1
  110. package/dist/src/embed/base.d.ts +1 -1
  111. package/dist/src/embed/conversation.d.ts +401 -2
  112. package/dist/src/embed/conversation.d.ts.map +1 -1
  113. package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
  114. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  115. package/dist/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  116. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  117. package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
  118. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  119. package/dist/src/embed/liveboard.d.ts +81 -13
  120. package/dist/src/embed/liveboard.d.ts.map +1 -1
  121. package/dist/src/embed/spotter-utils.d.ts +15 -1
  122. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  123. package/dist/src/embed/spotter-viz-utils.d.ts +37 -4
  124. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  125. package/dist/src/embed/ts-embed.d.ts +16 -8
  126. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  127. package/dist/src/errors.d.ts +1 -0
  128. package/dist/src/errors.d.ts.map +1 -1
  129. package/dist/src/index.d.ts +3 -3
  130. package/dist/src/index.d.ts.map +1 -1
  131. package/dist/src/mixpanel-service.d.ts +4 -0
  132. package/dist/src/mixpanel-service.d.ts.map +1 -1
  133. package/dist/src/react/all-types-export.d.ts +1 -1
  134. package/dist/src/react/all-types-export.d.ts.map +1 -1
  135. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  136. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  137. package/dist/src/react/index.d.ts +66 -32
  138. package/dist/src/react/index.d.ts.map +1 -1
  139. package/dist/src/types.d.ts +902 -28
  140. package/dist/src/types.d.ts.map +1 -1
  141. package/dist/tsembed-react.es.js +1269 -206
  142. package/dist/tsembed-react.js +1268 -205
  143. package/dist/tsembed.es.js +1364 -304
  144. package/dist/tsembed.js +1362 -302
  145. package/dist/visual-embed-sdk-react-full.d.ts +1867 -157
  146. package/dist/visual-embed-sdk-react.d.ts +1872 -161
  147. package/dist/visual-embed-sdk.d.ts +1815 -127
  148. package/lib/package.json +1 -1
  149. package/lib/src/config.d.ts +1 -0
  150. package/lib/src/config.d.ts.map +1 -1
  151. package/lib/src/config.js +1 -0
  152. package/lib/src/config.js.map +1 -1
  153. package/lib/src/css-variables.d.ts +122 -0
  154. package/lib/src/css-variables.d.ts.map +1 -1
  155. package/lib/src/embed/app.d.ts +176 -24
  156. package/lib/src/embed/app.d.ts.map +1 -1
  157. package/lib/src/embed/app.js +87 -39
  158. package/lib/src/embed/app.js.map +1 -1
  159. package/lib/src/embed/app.spec.js +673 -151
  160. package/lib/src/embed/app.spec.js.map +1 -1
  161. package/lib/src/embed/base.d.ts +1 -1
  162. package/lib/src/embed/base.js +1 -1
  163. package/lib/src/embed/conversation.d.ts +401 -2
  164. package/lib/src/embed/conversation.d.ts.map +1 -1
  165. package/lib/src/embed/conversation.js +33 -17
  166. package/lib/src/embed/conversation.js.map +1 -1
  167. package/lib/src/embed/conversation.spec.js +347 -18
  168. package/lib/src/embed/conversation.spec.js.map +1 -1
  169. package/lib/src/embed/events.spec.js +638 -0
  170. package/lib/src/embed/events.spec.js.map +1 -1
  171. package/lib/src/embed/host-events.spec.js +188 -1
  172. package/lib/src/embed/host-events.spec.js.map +1 -1
  173. package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
  174. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  175. package/lib/src/embed/hostEventClient/contracts.js +10 -0
  176. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  177. package/lib/src/embed/hostEventClient/host-event-client.d.ts +2 -1
  178. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  179. package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
  180. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  181. package/lib/src/embed/hostEventClient/host-event-client.spec.js +236 -0
  182. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  183. package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
  184. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  185. package/lib/src/embed/hostEventClient/utils.js +28 -1
  186. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  187. package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
  188. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  189. package/lib/src/embed/liveboard.d.ts +81 -13
  190. package/lib/src/embed/liveboard.d.ts.map +1 -1
  191. package/lib/src/embed/liveboard.js +50 -9
  192. package/lib/src/embed/liveboard.js.map +1 -1
  193. package/lib/src/embed/liveboard.spec.js +432 -4
  194. package/lib/src/embed/liveboard.spec.js.map +1 -1
  195. package/lib/src/embed/spotter-utils.d.ts +15 -1
  196. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  197. package/lib/src/embed/spotter-utils.js +25 -0
  198. package/lib/src/embed/spotter-utils.js.map +1 -1
  199. package/lib/src/embed/spotter-utils.spec.js +130 -1
  200. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  201. package/lib/src/embed/spotter-viz-utils.d.ts +37 -4
  202. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  203. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  204. package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
  205. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
  206. package/lib/src/embed/ts-embed.d.ts +16 -8
  207. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  208. package/lib/src/embed/ts-embed.js +96 -37
  209. package/lib/src/embed/ts-embed.js.map +1 -1
  210. package/lib/src/embed/ts-embed.spec.js +683 -3
  211. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  212. package/lib/src/errors.d.ts +1 -0
  213. package/lib/src/errors.d.ts.map +1 -1
  214. package/lib/src/errors.js +1 -0
  215. package/lib/src/errors.js.map +1 -1
  216. package/lib/src/index.d.ts +3 -3
  217. package/lib/src/index.d.ts.map +1 -1
  218. package/lib/src/index.js +3 -3
  219. package/lib/src/index.js.map +1 -1
  220. package/lib/src/mixpanel-service.d.ts +4 -0
  221. package/lib/src/mixpanel-service.d.ts.map +1 -1
  222. package/lib/src/mixpanel-service.js +4 -0
  223. package/lib/src/mixpanel-service.js.map +1 -1
  224. package/lib/src/react/all-types-export.d.ts +1 -1
  225. package/lib/src/react/all-types-export.d.ts.map +1 -1
  226. package/lib/src/react/all-types-export.js +1 -1
  227. package/lib/src/react/all-types-export.js.map +1 -1
  228. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  229. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  230. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  231. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  232. package/lib/src/react/index.d.ts +66 -32
  233. package/lib/src/react/index.d.ts.map +1 -1
  234. package/lib/src/react/index.js +5 -3
  235. package/lib/src/react/index.js.map +1 -1
  236. package/lib/src/react/index.spec.js +102 -1
  237. package/lib/src/react/index.spec.js.map +1 -1
  238. package/lib/src/react/util.spec.js +251 -0
  239. package/lib/src/react/util.spec.js.map +1 -1
  240. package/lib/src/types.d.ts +902 -28
  241. package/lib/src/types.d.ts.map +1 -1
  242. package/lib/src/types.js +701 -14
  243. package/lib/src/types.js.map +1 -1
  244. package/lib/src/utils/processData.spec.js +93 -0
  245. package/lib/src/utils/processData.spec.js.map +1 -1
  246. package/lib/src/utils/processTrigger.spec.js +61 -0
  247. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  248. package/lib/src/utils.spec.js +4 -0
  249. package/lib/src/utils.spec.js.map +1 -1
  250. package/lib/src/visual-embed-sdk.d.ts +1815 -127
  251. package/package.json +1 -1
  252. package/src/config.ts +1 -0
  253. package/src/css-variables.ts +150 -0
  254. package/src/embed/app.spec.ts +877 -196
  255. package/src/embed/app.ts +276 -75
  256. package/src/embed/base.ts +1 -1
  257. package/src/embed/conversation.spec.ts +411 -21
  258. package/src/embed/conversation.ts +441 -18
  259. package/src/embed/events.spec.ts +761 -1
  260. package/src/embed/host-events.spec.ts +242 -0
  261. package/src/embed/hostEventClient/contracts.ts +57 -14
  262. package/src/embed/hostEventClient/host-event-client.spec.ts +372 -0
  263. package/src/embed/hostEventClient/host-event-client.ts +18 -2
  264. package/src/embed/hostEventClient/utils.spec.ts +204 -0
  265. package/src/embed/hostEventClient/utils.ts +37 -10
  266. package/src/embed/liveboard.spec.ts +565 -4
  267. package/src/embed/liveboard.ts +155 -28
  268. package/src/embed/spotter-utils.spec.ts +140 -1
  269. package/src/embed/spotter-utils.ts +36 -1
  270. package/src/embed/spotter-viz-utils.spec.ts +17 -0
  271. package/src/embed/spotter-viz-utils.ts +37 -4
  272. package/src/embed/ts-embed.spec.ts +885 -3
  273. package/src/embed/ts-embed.ts +111 -39
  274. package/src/errors.ts +1 -0
  275. package/src/index.ts +45 -2
  276. package/src/mixpanel-service.ts +4 -0
  277. package/src/react/all-types-export.parity.spec.ts +208 -0
  278. package/src/react/all-types-export.ts +22 -0
  279. package/src/react/index.spec.tsx +158 -0
  280. package/src/react/index.tsx +70 -33
  281. package/src/react/util.spec.tsx +255 -0
  282. package/src/types.ts +904 -24
  283. package/src/utils/processData.spec.ts +97 -0
  284. package/src/utils/processTrigger.spec.ts +91 -0
  285. package/src/utils.spec.ts +5 -0
package/src/embed/app.ts CHANGED
@@ -10,6 +10,7 @@
10
10
 
11
11
  import { logger } from '../utils/logger';
12
12
  import { calculateVisibleElementData, getEffectiveClippingAncestors, getQueryParamString, getScrollableAncestors, isUndefined, isValidCssMargin, setParamIfDefined } from '../utils';
13
+ import { DEFAULT_LAZY_LOADING_MARGIN } from '../config';
13
14
  import {
14
15
  Param,
15
16
  DOMSelector,
@@ -22,8 +23,8 @@ import {
22
23
  SpotterFileUploadFileTypes,
23
24
  } from '../types';
24
25
  import { V1Embed } from './ts-embed';
25
- import { SpotterChatViewConfig, SpotterSidebarViewConfig } from './conversation';
26
- import { buildSpotterSidebarAppInitData } from './spotter-utils';
26
+ import { SpotterChatViewConfig, SpotterSidebarViewConfig, SpotterQueryMode, SpotterShareConversationConfig, StarterPromptsConfig } from './conversation';
27
+ import { buildSpotterSidebarAppInitData, buildSpotterShareConversationAppInitData, buildStarterPromptsAppInitData } from './spotter-utils';
27
28
  import { SpotterVizConfig, buildSpotterVizAppInitData } from './spotter-viz-utils';
28
29
 
29
30
  /**
@@ -63,6 +64,14 @@ export enum Page {
63
64
  * Monitor Alerts Page
64
65
  */
65
66
  Monitor = 'monitor',
67
+ /**
68
+ * Collections listing page
69
+ */
70
+ Collections = 'collections',
71
+ /**
72
+ * Liveboard schedules listing page
73
+ */
74
+ LiveboardSchedules = 'liveboard-schedules',
66
75
  }
67
76
 
68
77
  /**
@@ -111,6 +120,9 @@ export enum HomePage {
111
120
  /**
112
121
  * Modular (v2) introduces the updated Modular Home Experience.
113
122
  * It serves as the foundational version of the home page.
123
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
124
+ * {@link HomePage.Focused} (V4) instead.
125
+ * @deprecated V1 and V2 home page experiences are deprecated.
114
126
  */
115
127
  Modular = 'v2',
116
128
  /**
@@ -120,7 +132,7 @@ export enum HomePage {
120
132
  ModularWithStylingChanges = 'v3',
121
133
  /**
122
134
  * Focused (v4) introduces the V4 homepage experience
123
- * in which Watchlist and recents and incorporated together
135
+ * in which Watchlist and recents and incorporated together
124
136
  * to form a more focused homepage.
125
137
  * Pre-requisite : spotter enablement
126
138
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
@@ -187,13 +199,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
187
199
  showPrimaryNavbar?: boolean;
188
200
  /**
189
201
  * Control the visibility of the left navigation panel on the home page
190
- * in the V2 and V3 navigation and home page experience.
202
+ * in the V3 and V4 navigation and home page experience.
191
203
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
192
204
  * navigation bars are visible, this flag will only hide the left navigation bar
193
205
  * on the home page.
194
206
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
195
207
  *
196
- * **Note**: This attribute is not supported in the classic (V1) experience.
208
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
209
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
197
210
  *
198
211
  * Supported embed types: `AppEmbed`
199
212
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -259,11 +272,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
259
272
  hideHamburger?: boolean;
260
273
  /**
261
274
  * Control the visibility of the object search
262
- * on the top navigation bar in the
263
- * V2 and V3 navigation experience.
275
+ * on the top navigation bar in the V3 navigation experience.
264
276
  *
265
- * **Note**: This attribute is not supported
266
- * in the classic (V1) experience.
277
+ * **Note**: The classic (V1) and V2 navigation experiences are
278
+ * deprecated. This attribute applies to the V3 navigation experience.
267
279
  *
268
280
  * Supported embed types: `AppEmbed`
269
281
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -281,8 +293,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
281
293
  * Control the visibility of the notification icon
282
294
  * on the top navigation bar in V3 navigation experience.
283
295
  *
284
- * **Note**: This attribute is not supported
285
- * in the classic (V1) and V2 experience modes.
296
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
297
+ * This attribute applies to the V3 experience.
286
298
  *
287
299
  * Supported embed types: `AppEmbed`
288
300
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -297,14 +309,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
297
309
  */
298
310
  hideNotification?: boolean;
299
311
  /**
300
- * Control the visibility of the application selection menu
301
- * in the top navigation bar in the V2 experience.
312
+ * Control the visibility of the application selection menu.
302
313
  * In the V3 experience, it shows or hides application selection
303
314
  * icons on the left navigation panel.
304
315
  * By default, the application selection menu and icons are
305
316
  * shown in the UI.
306
317
  *
307
- * **Note**: This attribute is not supported in the classic (V1) experience.
318
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
319
+ * This attribute applies to the V3 experience.
308
320
  *
309
321
  * Supported embed types: `AppEmbed`
310
322
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -322,7 +334,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
322
334
  * Control the visibility of the Org switcher button on the nav-bar.
323
335
  * By default, the Org switcher button is shown.
324
336
  *
325
- * **Note**: This attribute is not supported in the classic (V1) experience.
337
+ * **Note**: The classic (V1) experience is deprecated. This attribute
338
+ * applies to V2 (deprecated), V3 and V4 experiences.
326
339
  *
327
340
  * Supported embed types: `AppEmbed`
328
341
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -463,6 +476,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
463
476
  * `false` fetches visualizations incrementally as
464
477
  * users scroll the page to view the charts and tables.
465
478
  *
479
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
480
+ * {@link lazyLoadingForFullHeight} and
481
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
482
+ * they scroll into view. Set either flag to `false` to opt out.
483
+ *
466
484
  * Supported embed types: `AppEmbed`
467
485
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
468
486
  * @example
@@ -481,6 +499,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
481
499
  * Supported embed types: `AppEmbed`
482
500
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
483
501
  * @default false
502
+ * Use the discoveryExperience.homePage option with
503
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
504
+ * {@link HomePage.Focused} (V4) instead.
505
+ * @deprecated The V1 and V2 home page experiences are deprecated.
484
506
  * @example
485
507
  * ```js
486
508
  * const embed = new AppEmbed('#tsEmbed', {
@@ -616,11 +638,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
616
638
  /**
617
639
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
618
640
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
619
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
641
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
620
642
  *
621
643
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
622
644
  * @type {boolean}
623
645
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
646
+ * @default true
624
647
  * @example
625
648
  * ```js
626
649
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -634,10 +657,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
634
657
 
635
658
  /**
636
659
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
660
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
637
661
  *
638
662
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
639
663
  * @type {boolean}
640
664
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
665
+ * @default true
641
666
  * @example
642
667
  * ```js
643
668
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -651,10 +676,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
651
676
 
652
677
  /**
653
678
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
679
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
654
680
  *
655
681
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
656
682
  * @type {boolean}
657
683
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
684
+ * @default true
658
685
  * @example
659
686
  * ```js
660
687
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -667,11 +694,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
667
694
  isGranularXLSXCSVSchedulesEnabled?: boolean;
668
695
 
669
696
  /**
670
- * This flag is used to enable the full height lazy load data.
697
+ * Loads visualizations only as they scroll into the viewport, instead of
698
+ * loading the whole full-height Liveboard at once.
699
+ *
700
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
701
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
702
+ * set explicitly. Set it to `false` to load every visualization upfront.
703
+ * The flag has no effect unless `fullHeight` is enabled.
671
704
  *
672
705
  * @type {boolean}
673
706
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
674
- * @default false
707
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
675
708
  * @example
676
709
  * ```js
677
710
  * const embed = new AppEmbed('#embed-container', {
@@ -683,28 +716,44 @@ export interface AppViewConfig extends AllEmbedViewConfig {
683
716
  */
684
717
  lazyLoadingForFullHeight?: boolean;
685
718
  /**
686
- * This flag is used to enable container-aware full height lazy loading.
719
+ * Computes the visible region of the embed against its scrollable and
720
+ * clipping ancestors, instead of treating the browser window as the only
721
+ * viewport, and tracks scroll and resize on those ancestors.
687
722
  *
688
- * Use this when the embed is rendered inside a scrollable or clipping
689
- * container instead of relying on the browser window as the only viewport.
723
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
724
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
725
+ * set explicitly. Set it to `false` when the page scrolls with the window
726
+ * and the embed has no clipping ancestor, to skip the extra ancestor
727
+ * tracking.
690
728
  *
691
729
  * @type {boolean}
692
- * @default false
730
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
693
731
  * @hidden
694
732
  */
695
733
  enableScrollableContainerLazyLoading?: boolean;
696
734
 
697
735
  /**
698
- * The margin to be used for lazy loading.
736
+ * How far outside the viewport a visualization starts loading, when
737
+ * {@link lazyLoadingForFullHeight} is enabled.
699
738
  *
700
739
  * For example, if the margin is set to '10px',
701
740
  * the visualization will be loaded 10px before its top edge is visible in the
702
741
  * viewport.
703
742
  *
704
- * The format is similar to CSS margin.
743
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
744
+ * prefetch 500px above and below the viewport and not sideways. Accepted
745
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
746
+ * `auto`; an invalid value is logged and ignored.
747
+ *
748
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
749
+ * visualization ahead of the scroll position, so a chart has usually
750
+ * finished loading by the time it scrolls into view. Use a smaller margin
751
+ * to cut warehouse queries further, or `'0px'` to load a visualization
752
+ * only once it is actually visible.
705
753
  *
706
754
  * @type {string}
707
755
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
756
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
708
757
  * @example
709
758
  * ```js
710
759
  * const embed = new AppEmbed('#embed-container', {
@@ -733,6 +782,40 @@ export interface AppViewConfig extends AllEmbedViewConfig {
733
782
  * ```
734
783
  */
735
784
  updatedSpotterChatPrompt?: boolean;
785
+ /**
786
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
787
+ *
788
+ * Supported embed types: `AppEmbed`
789
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
790
+ * @default false
791
+ * @example
792
+ * ```js
793
+ * const embed = new AppEmbed('#tsEmbed', {
794
+ * ... //other embed view config
795
+ * showSpotterRadiance : true,
796
+ * })
797
+ * ```
798
+ */
799
+ showSpotterRadiance?: boolean;
800
+ /**
801
+ * Sets the default query mode when Spotter loads — Fast Search or
802
+ * Research Mode. Applies fresh on every new session for this embed
803
+ * instance only; it does not persist as a user preference and does
804
+ * not affect other embeds or native ThoughtSpot usage.
805
+ * Only applicable when navigating to Spotter within the app.
806
+ *
807
+ * Supported embed types: `AppEmbed`
808
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
809
+ * @default SpotterQueryMode.FAST_SEARCH
810
+ * @example
811
+ * ```js
812
+ * const embed = new AppEmbed('#tsEmbed', {
813
+ * ... //other embed view config
814
+ * defaultQueryMode: SpotterQueryMode.RESEARCH,
815
+ * })
816
+ * ```
817
+ */
818
+ defaultQueryMode?: SpotterQueryMode;
736
819
  /**
737
820
  * Controls the visibility of the past conversations sidebar.
738
821
  *
@@ -758,6 +841,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
758
841
  * spotterSidebarConfig: {
759
842
  * enablePastConversationsSidebar: true,
760
843
  * spotterSidebarTitle: 'My Conversations',
844
+ * // Opt in to pin/unpin conversations in embedded Spotter
845
+ * spotterChatPinConfig: {
846
+ * enabled: true,
847
+ * },
761
848
  * },
762
849
  * })
763
850
  * ```
@@ -781,6 +868,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
781
868
  * ```
782
869
  */
783
870
  spotterChatConfig?: SpotterChatViewConfig;
871
+ /**
872
+ * Configuration for the Spotter conversation sharing feature.
873
+ *
874
+ * Supported embed types: `AppEmbed`
875
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
876
+ * @example
877
+ * ```js
878
+ * const embed = new AppEmbed('#tsEmbed', {
879
+ * ... //other embed view config
880
+ * spotterShareConversationConfig: {
881
+ * enableShareConversation: true,
882
+ * },
883
+ * })
884
+ * ```
885
+ */
886
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
887
+ /**
888
+ * Sets the default data sources (Models) for the Spotter experience shown on
889
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
890
+ * preselect the data sources available to Spotter, or the literal
891
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
892
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
893
+ * Auto mode in `SpotterEmbed`.
894
+ *
895
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
896
+ * `'auto_mode'` takes precedence and is selected by default.
897
+ *
898
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
899
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
900
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
901
+ *
902
+ * Supported embed types: `AppEmbed`
903
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
904
+ * @example
905
+ * ```js
906
+ * const embed = new AppEmbed('#tsEmbed', {
907
+ * ... // other embed view config
908
+ * discoveryExperience: { homePage: HomePage.Focused },
909
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
910
+ * })
911
+ * ```
912
+ */
913
+ spotterDataSources?: string[];
784
914
  /**
785
915
  * Configuration for the SpotterViz interface shown on the Liveboard.
786
916
  * Customize the brand name, description, chat input placeholder,
@@ -799,12 +929,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
799
929
  * inputChatPlaceholder: 'Ask a question...',
800
930
  * hideStarterPrompts: false,
801
931
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
802
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
932
+ * // The options below require SDK: 1.51.0
803
933
  * loaderHeadline: 'Crunching the numbers...',
804
934
  * loaderTips: [
805
935
  * { label: 'Tip', text: 'try asking about revenue by region' },
806
936
  * { label: 'Tip', text: 'use natural language' },
807
937
  * ],
938
+ * liveboardBrandName: 'Reports',
939
+ * spotterBrandName: 'Analyst',
940
+ * insightTileBrandName: 'Insight card',
941
+ * insightTileViewPlanLabel: 'View plan',
942
+ * insightTileLoaderText: 'Generating insight',
808
943
  * },
809
944
  * })
810
945
  * ```
@@ -871,6 +1006,22 @@ export interface AppViewConfig extends AllEmbedViewConfig {
871
1006
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
872
1007
  */
873
1008
  visualOverrides?: VisualizationOverrides;
1009
+
1010
+ /**
1011
+ * updatedSpotterExperience : Controls the updated Spotter experience.
1012
+ *
1013
+ * Supported embed types: `AppEmbed`
1014
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
1015
+ * @default false
1016
+ * @example
1017
+ * ```js
1018
+ * const embed = new AppEmbed('#tsEmbed', {
1019
+ * ... //other embed view config
1020
+ * updatedSpotterExperience : true,
1021
+ * })
1022
+ * ```
1023
+ */
1024
+ updatedSpotterExperience?: boolean;
874
1025
  }
875
1026
 
876
1027
  /**
@@ -881,6 +1032,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
881
1032
  embedParams?: {
882
1033
  spotterSidebarConfig?: SpotterSidebarViewConfig;
883
1034
  spotterVizConfig?: SpotterVizConfig;
1035
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
1036
+ starterPrompts?: StarterPromptsConfig;
884
1037
  };
885
1038
  }
886
1039
 
@@ -901,6 +1054,16 @@ export class AppEmbed extends V1Embed {
901
1054
  viewConfig.embedComponentType = 'AppEmbed';
902
1055
  super(domSelector, viewConfig);
903
1056
  if (this.viewConfig.fullHeight === true) {
1057
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
1058
+ this.viewConfig.lazyLoadingForFullHeight = true;
1059
+ }
1060
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
1061
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
1062
+ }
1063
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
1064
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
1065
+ }
1066
+
904
1067
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
905
1068
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
906
1069
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -930,7 +1093,9 @@ export class AppEmbed extends V1Embed {
930
1093
  this.viewConfig,
931
1094
  this.handleError.bind(this),
932
1095
  );
933
- return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
1096
+ const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
1097
+ const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
1098
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
934
1099
  }
935
1100
 
936
1101
  /**
@@ -938,6 +1103,11 @@ export class AppEmbed extends V1Embed {
938
1103
  * embedded Liveboard or visualization.
939
1104
  */
940
1105
  protected getEmbedParams() {
1106
+ const params = this.getEmbedParamsObject();
1107
+ return getQueryParamString(params, true);
1108
+ }
1109
+
1110
+ protected getEmbedParamsObject() {
941
1111
  const {
942
1112
  tag,
943
1113
  hideTagFilterChips,
@@ -954,44 +1124,51 @@ export class AppEmbed extends V1Embed {
954
1124
  newConnectionsExperience,
955
1125
  fullHeight,
956
1126
  dataPanelV2 = true,
1127
+ updatedSpotterExperience,
957
1128
  hideLiveboardHeader = false,
958
1129
  showLiveboardTitle = true,
959
1130
  showLiveboardDescription = true,
960
1131
  showMaskedFilterChip = false,
961
- isLiveboardMasterpiecesEnabled = false,
1132
+ isLiveboardMasterpiecesEnabled,
962
1133
  newChartsLibrary,
963
1134
  hideHomepageLeftNav = false,
964
- modularHomeExperience = false,
1135
+ modularHomeExperience,
965
1136
  isLiveboardHeaderSticky = true,
966
1137
  enableAskSage,
967
1138
  collapseSearchBarInitially = false,
968
1139
  enable2ColumnLayout,
1140
+ isLiveboardAlwaysOn12ColLayout,
969
1141
  enableCustomColumnGroups = false,
970
1142
  dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
971
1143
  collapseSearchBar = true,
972
- isLiveboardCompactHeaderEnabled = false,
1144
+ isLiveboardCompactHeaderEnabled,
973
1145
  showLiveboardVerifiedBadge = true,
974
1146
  showLiveboardReverifyBanner = true,
975
- hideIrrelevantChipsInLiveboardTabs = false,
976
- isEnhancedFilterInteractivityEnabled = false,
1147
+ hideIrrelevantChipsInLiveboardTabs,
1148
+ isEnhancedFilterInteractivityEnabled,
977
1149
  homePageSearchBarMode,
978
1150
  isUnifiedSearchExperienceEnabled = true,
979
1151
  enablePendoHelp = true,
980
1152
  discoveryExperience,
981
- coverAndFilterOptionInPDF = false,
1153
+ coverAndFilterOptionInPDF,
982
1154
  isLiveboardStylingAndGroupingEnabled,
1155
+ liveboardGutter,
983
1156
  isPNGInScheduledEmailsEnabled = false,
984
- isLiveboardXLSXCSVDownloadEnabled = false,
985
- isGranularXLSXCSVSchedulesEnabled = false,
1157
+ isLiveboardXLSXCSVDownloadEnabled,
1158
+ isGranularXLSXCSVSchedulesEnabled,
986
1159
  isCentralizedLiveboardFilterUXEnabled = false,
1160
+ isScopedLiveboardFilteringEnabled,
987
1161
  isLinkParametersEnabled,
988
1162
  updatedSpotterChatPrompt,
1163
+ showSpotterRadiance,
1164
+ defaultQueryMode,
989
1165
  enableStopAnswerGenerationEmbed,
990
1166
  spotterChatConfig,
1167
+ spotterDataSources,
991
1168
  minimumHeight,
992
1169
  isThisPeriodInDateFiltersEnabled,
993
1170
  enableHomepageAnnouncement = false,
994
- isContinuousLiveboardPDFEnabled = false,
1171
+ isContinuousLiveboardPDFEnabled,
995
1172
  enableLiveboardDataCache,
996
1173
  } = this.viewConfig;
997
1174
 
@@ -1004,31 +1181,52 @@ export class AppEmbed extends V1Embed {
1004
1181
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
1005
1182
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
1006
1183
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
1007
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1184
+ if (!isUndefined(isLiveboardMasterpiecesEnabled)) {
1185
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1186
+ }
1008
1187
  if (newChartsLibrary !== undefined) {
1009
1188
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
1010
1189
  }
1011
1190
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
1012
1191
  params[Param.IsFullAppEmbed] = true;
1013
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
1014
- params[Param.IsEnhancedFilterInteractivityEnabled] = isEnhancedFilterInteractivityEnabled;
1192
+ if (!isUndefined(isLiveboardCompactHeaderEnabled)) {
1193
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
1194
+ }
1195
+ if (!isUndefined(isEnhancedFilterInteractivityEnabled)) {
1196
+ params[Param.IsEnhancedFilterInteractivityEnabled] =
1197
+ isEnhancedFilterInteractivityEnabled;
1198
+ }
1015
1199
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
1016
1200
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
1017
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1201
+ if (!isUndefined(hideIrrelevantChipsInLiveboardTabs)) {
1202
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1203
+ }
1018
1204
  if (isUnifiedSearchExperienceEnabled !== undefined) {
1019
1205
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
1020
1206
  }
1021
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1207
+ if (!isUndefined(coverAndFilterOptionInPDF)) {
1208
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1209
+ }
1022
1210
 
1023
1211
  params = this.getBaseQueryParams(params);
1024
1212
 
1025
1213
  if (!isUndefined(updatedSpotterChatPrompt)) {
1026
1214
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
1027
1215
  }
1216
+ if (!isUndefined(showSpotterRadiance)) {
1217
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
1218
+ }
1219
+ if (!isUndefined(defaultQueryMode)) {
1220
+ params[Param.DefaultQueryMode] = defaultQueryMode;
1221
+ }
1028
1222
  if (!isUndefined(enableStopAnswerGenerationEmbed)) {
1029
1223
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
1030
1224
  }
1031
1225
 
1226
+ if (spotterDataSources && spotterDataSources.length) {
1227
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
1228
+ }
1229
+
1032
1230
  // Handle spotterChatConfig params
1033
1231
  if (spotterChatConfig) {
1034
1232
  const {
@@ -1037,6 +1235,7 @@ export class AppEmbed extends V1Embed {
1037
1235
  spotterFileUploadEnabled,
1038
1236
  spotterFileUploadFileTypes,
1039
1237
  enableStarterPrompts,
1238
+ openSpotterOnLiveboardByDefault,
1040
1239
  } = spotterChatConfig;
1041
1240
 
1042
1241
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
@@ -1047,11 +1246,18 @@ export class AppEmbed extends V1Embed {
1047
1246
  if (enableStarterPrompts !== undefined) {
1048
1247
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
1049
1248
  }
1249
+ if (openSpotterOnLiveboardByDefault !== undefined) {
1250
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
1251
+ }
1050
1252
  if (spotterFileUploadFileTypes !== undefined) {
1051
1253
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
1052
1254
  }
1053
1255
  }
1054
1256
 
1257
+ if (!isUndefined(updatedSpotterExperience)) {
1258
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
1259
+ }
1260
+
1055
1261
  if (hideObjectSearch) {
1056
1262
  params[Param.HideObjectSearch] = !!hideObjectSearch;
1057
1263
  }
@@ -1095,6 +1301,9 @@ export class AppEmbed extends V1Embed {
1095
1301
  if (enable2ColumnLayout !== undefined) {
1096
1302
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
1097
1303
  }
1304
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
1305
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
1306
+ }
1098
1307
 
1099
1308
  if (enableAskSage) {
1100
1309
  params[Param.enableAskSage] = enableAskSage;
@@ -1114,6 +1323,10 @@ export class AppEmbed extends V1Embed {
1114
1323
  ] = isLiveboardStylingAndGroupingEnabled;
1115
1324
  }
1116
1325
 
1326
+ if (liveboardGutter !== undefined) {
1327
+ params[Param.LiveboardGutter] = liveboardGutter;
1328
+ }
1329
+
1117
1330
  if (isPNGInScheduledEmailsEnabled !== undefined) {
1118
1331
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
1119
1332
  }
@@ -1140,6 +1353,12 @@ export class AppEmbed extends V1Embed {
1140
1353
  ] = isCentralizedLiveboardFilterUXEnabled;
1141
1354
  }
1142
1355
 
1356
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
1357
+ params[
1358
+ Param.isScopedLiveboardFilteringEnabled
1359
+ ] = isScopedLiveboardFilteringEnabled;
1360
+ }
1361
+
1143
1362
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
1144
1363
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
1145
1364
  }
@@ -1160,7 +1379,6 @@ export class AppEmbed extends V1Embed {
1160
1379
 
1161
1380
  params[Param.DataPanelV2Enabled] = dataPanelV2;
1162
1381
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
1163
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1164
1382
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
1165
1383
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
1166
1384
  if (dataPanelCustomGroupsAccordionInitialState
@@ -1181,41 +1399,21 @@ export class AppEmbed extends V1Embed {
1181
1399
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1182
1400
  }
1183
1401
 
1184
- // Set navigation to v2 by default to avoid problems like the app
1185
- // switcher (9-dot menu) not showing when v3 navigation is turned on
1186
- // at the cluster level.
1187
- // To use v3 navigation, we must manually set the discoveryExperience
1188
- // settings.
1189
- params[Param.NavigationVersion] = 'v2';
1190
- // Set homePageVersion to v2 by default to reset the LD flag value
1191
- // for the homepageVersion.
1192
- params[Param.HomepageVersion] = 'v2';
1193
- if (discoveryExperience) {
1194
- // primaryNavbarVersion v3 will enabled the new left navigation
1195
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
1196
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
1197
- // Enable the modularHomeExperience when Sliding is enabled.
1198
- params[Param.ModularHomeExperienceEnabled] = true;
1199
- }
1200
-
1201
- // homePage v2 will enable the modular home page
1202
- // and it will override the modularHomeExperience value
1203
- if (discoveryExperience.homePage === HomePage.Modular) {
1204
- params[Param.ModularHomeExperienceEnabled] = true;
1205
- }
1206
-
1207
- // ModularWithStylingChanges (v3) introduces the styling changes
1208
- // to the Modular Homepage.
1209
- // v3 will be the base version of homePageVersion.
1210
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
1211
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
1212
- }
1402
+ // Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
1403
+ // default experience, Need to send navigationVersion=v3 and
1404
+ // homepageVersion=v3 even when the no discoveryExperience /
1405
+ // modularHomeExperience config is set. Without these
1406
+ // params, older TSA versions (< 26.7) fall back to V2 for nav and
1407
+ // home page, so the defaults must be sent explicitly from the SDK.
1408
+ params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
1409
+ params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
1213
1410
 
1411
+ if (discoveryExperience) {
1214
1412
  // listPageVersion can be changed to v2 or v3
1215
1413
  if (discoveryExperience.listPageVersion !== undefined) {
1216
1414
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
1217
1415
  }
1218
-
1416
+
1219
1417
  if (discoveryExperience.homePage === HomePage.Focused) {
1220
1418
  params[Param.HomepageVersion] = HomePage.Focused;
1221
1419
  // The Focused (V4) homepage experience requires the updated
@@ -1227,9 +1425,7 @@ export class AppEmbed extends V1Embed {
1227
1425
  }
1228
1426
  }
1229
1427
 
1230
- const queryParams = getQueryParamString(params, true);
1231
-
1232
- return queryParams;
1428
+ return params;
1233
1429
  }
1234
1430
 
1235
1431
  private sendFullHeightLazyLoadData = () => {
@@ -1332,6 +1528,10 @@ export class AppEmbed extends V1Embed {
1332
1528
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
1333
1529
  case Page.Monitor:
1334
1530
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
1531
+ case Page.Collections:
1532
+ return 'collections';
1533
+ case Page.LiveboardSchedules:
1534
+ return 'home/liveboard-schedules';
1335
1535
  case Page.Home:
1336
1536
  default:
1337
1537
  return 'home';
@@ -1372,7 +1572,8 @@ export class AppEmbed extends V1Embed {
1372
1572
  logger.log('Please call render before invoking this method');
1373
1573
  return;
1374
1574
  }
1375
- if (noReload) {
1575
+ const overrideHistoryState = this.viewConfig?.overrideHistoryState;
1576
+ if (noReload || overrideHistoryState) {
1376
1577
  this.trigger(HostEvent.Navigate, path);
1377
1578
  } else {
1378
1579
  if (typeof path !== 'string') {