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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +63 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +148 -25
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +74 -37
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +571 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +375 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +21 -15
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +323 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +45 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +81 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +76 -14
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +50 -9
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +432 -4
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +28 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  49. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.d.ts +16 -8
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +82 -30
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +537 -3
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +3 -3
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js +3 -2
  60. package/cjs/src/index.js.map +1 -1
  61. package/cjs/src/mixpanel-service.d.ts +4 -0
  62. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  63. package/cjs/src/mixpanel-service.js +4 -0
  64. package/cjs/src/mixpanel-service.js.map +1 -1
  65. package/cjs/src/react/all-types-export.d.ts +1 -1
  66. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  67. package/cjs/src/react/all-types-export.js +2 -1
  68. package/cjs/src/react/all-types-export.js.map +1 -1
  69. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  70. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  71. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  72. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  73. package/cjs/src/react/index.d.ts +66 -32
  74. package/cjs/src/react/index.d.ts.map +1 -1
  75. package/cjs/src/react/index.js +5 -3
  76. package/cjs/src/react/index.js.map +1 -1
  77. package/cjs/src/react/index.spec.js +101 -0
  78. package/cjs/src/react/index.spec.js.map +1 -1
  79. package/cjs/src/types.d.ts +789 -32
  80. package/cjs/src/types.d.ts.map +1 -1
  81. package/cjs/src/types.js +610 -20
  82. package/cjs/src/types.js.map +1 -1
  83. package/cjs/src/utils.spec.js +4 -0
  84. package/cjs/src/utils.spec.js.map +1 -1
  85. package/dist/{index-fCne7kmU.js → index-Bivg-mDx.js} +1 -1
  86. package/dist/src/config.d.ts +1 -0
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/css-variables.d.ts +63 -0
  89. package/dist/src/css-variables.d.ts.map +1 -1
  90. package/dist/src/embed/app.d.ts +148 -25
  91. package/dist/src/embed/app.d.ts.map +1 -1
  92. package/dist/src/embed/base.d.ts +1 -1
  93. package/dist/src/embed/conversation.d.ts +375 -2
  94. package/dist/src/embed/conversation.d.ts.map +1 -1
  95. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  96. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  97. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  98. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  99. package/dist/src/embed/liveboard.d.ts +76 -14
  100. package/dist/src/embed/liveboard.d.ts.map +1 -1
  101. package/dist/src/embed/spotter-utils.d.ts +15 -1
  102. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  103. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  104. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  105. package/dist/src/embed/ts-embed.d.ts +16 -8
  106. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  107. package/dist/src/index.d.ts +3 -3
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/mixpanel-service.d.ts +4 -0
  110. package/dist/src/mixpanel-service.d.ts.map +1 -1
  111. package/dist/src/react/all-types-export.d.ts +1 -1
  112. package/dist/src/react/all-types-export.d.ts.map +1 -1
  113. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  114. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  115. package/dist/src/react/index.d.ts +66 -32
  116. package/dist/src/react/index.d.ts.map +1 -1
  117. package/dist/src/types.d.ts +789 -32
  118. package/dist/src/types.d.ts.map +1 -1
  119. package/dist/tsembed-react.es.js +878 -120
  120. package/dist/tsembed-react.js +877 -119
  121. package/dist/tsembed.es.js +936 -181
  122. package/dist/tsembed.js +938 -183
  123. package/dist/visual-embed-sdk-react-full.d.ts +1553 -128
  124. package/dist/visual-embed-sdk-react.d.ts +1555 -129
  125. package/dist/visual-embed-sdk.d.ts +1499 -100
  126. package/lib/package.json +1 -1
  127. package/lib/src/config.d.ts +1 -0
  128. package/lib/src/config.d.ts.map +1 -1
  129. package/lib/src/config.js +1 -0
  130. package/lib/src/config.js.map +1 -1
  131. package/lib/src/css-variables.d.ts +63 -0
  132. package/lib/src/css-variables.d.ts.map +1 -1
  133. package/lib/src/embed/app.d.ts +148 -25
  134. package/lib/src/embed/app.d.ts.map +1 -1
  135. package/lib/src/embed/app.js +75 -38
  136. package/lib/src/embed/app.js.map +1 -1
  137. package/lib/src/embed/app.spec.js +572 -151
  138. package/lib/src/embed/app.spec.js.map +1 -1
  139. package/lib/src/embed/base.d.ts +1 -1
  140. package/lib/src/embed/base.js +1 -1
  141. package/lib/src/embed/conversation.d.ts +375 -2
  142. package/lib/src/embed/conversation.d.ts.map +1 -1
  143. package/lib/src/embed/conversation.js +23 -17
  144. package/lib/src/embed/conversation.js.map +1 -1
  145. package/lib/src/embed/conversation.spec.js +323 -17
  146. package/lib/src/embed/conversation.spec.js.map +1 -1
  147. package/lib/src/embed/events.spec.js +45 -0
  148. package/lib/src/embed/events.spec.js.map +1 -1
  149. package/lib/src/embed/host-events.spec.js +81 -0
  150. package/lib/src/embed/host-events.spec.js.map +1 -1
  151. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  152. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  153. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  154. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  155. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  156. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  157. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  158. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  159. package/lib/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  160. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  161. package/lib/src/embed/liveboard.d.ts +76 -14
  162. package/lib/src/embed/liveboard.d.ts.map +1 -1
  163. package/lib/src/embed/liveboard.js +50 -9
  164. package/lib/src/embed/liveboard.js.map +1 -1
  165. package/lib/src/embed/liveboard.spec.js +432 -4
  166. package/lib/src/embed/liveboard.spec.js.map +1 -1
  167. package/lib/src/embed/spotter-utils.d.ts +15 -1
  168. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  169. package/lib/src/embed/spotter-utils.js +25 -0
  170. package/lib/src/embed/spotter-utils.js.map +1 -1
  171. package/lib/src/embed/spotter-utils.spec.js +130 -1
  172. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  173. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  174. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  175. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  176. package/lib/src/embed/ts-embed.d.ts +16 -8
  177. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  178. package/lib/src/embed/ts-embed.js +82 -30
  179. package/lib/src/embed/ts-embed.js.map +1 -1
  180. package/lib/src/embed/ts-embed.spec.js +537 -3
  181. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  182. package/lib/src/index.d.ts +3 -3
  183. package/lib/src/index.d.ts.map +1 -1
  184. package/lib/src/index.js +2 -2
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/mixpanel-service.d.ts +4 -0
  187. package/lib/src/mixpanel-service.d.ts.map +1 -1
  188. package/lib/src/mixpanel-service.js +4 -0
  189. package/lib/src/mixpanel-service.js.map +1 -1
  190. package/lib/src/react/all-types-export.d.ts +1 -1
  191. package/lib/src/react/all-types-export.d.ts.map +1 -1
  192. package/lib/src/react/all-types-export.js +1 -1
  193. package/lib/src/react/all-types-export.js.map +1 -1
  194. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  195. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  196. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  197. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  198. package/lib/src/react/index.d.ts +66 -32
  199. package/lib/src/react/index.d.ts.map +1 -1
  200. package/lib/src/react/index.js +5 -3
  201. package/lib/src/react/index.js.map +1 -1
  202. package/lib/src/react/index.spec.js +102 -1
  203. package/lib/src/react/index.spec.js.map +1 -1
  204. package/lib/src/types.d.ts +789 -32
  205. package/lib/src/types.d.ts.map +1 -1
  206. package/lib/src/types.js +610 -20
  207. package/lib/src/types.js.map +1 -1
  208. package/lib/src/utils.spec.js +4 -0
  209. package/lib/src/utils.spec.js.map +1 -1
  210. package/lib/src/visual-embed-sdk.d.ts +1499 -100
  211. package/package.json +1 -1
  212. package/src/config.ts +1 -0
  213. package/src/css-variables.ts +77 -0
  214. package/src/embed/app.spec.ts +729 -188
  215. package/src/embed/app.ts +240 -75
  216. package/src/embed/base.ts +1 -1
  217. package/src/embed/conversation.spec.ts +379 -20
  218. package/src/embed/conversation.ts +412 -18
  219. package/src/embed/events.spec.ts +56 -0
  220. package/src/embed/host-events.spec.ts +118 -0
  221. package/src/embed/hostEventClient/contracts.ts +16 -0
  222. package/src/embed/hostEventClient/host-event-client.spec.ts +46 -0
  223. package/src/embed/hostEventClient/host-event-client.ts +3 -2
  224. package/src/embed/liveboard.spec.ts +565 -4
  225. package/src/embed/liveboard.ts +150 -29
  226. package/src/embed/spotter-utils.spec.ts +140 -1
  227. package/src/embed/spotter-utils.ts +36 -1
  228. package/src/embed/spotter-viz-utils.ts +9 -10
  229. package/src/embed/ts-embed.spec.ts +699 -3
  230. package/src/embed/ts-embed.ts +99 -35
  231. package/src/index.ts +44 -2
  232. package/src/mixpanel-service.ts +4 -0
  233. package/src/react/all-types-export.parity.spec.ts +208 -0
  234. package/src/react/all-types-export.ts +22 -0
  235. package/src/react/index.spec.tsx +158 -0
  236. package/src/react/index.tsx +70 -33
  237. package/src/types.ts +791 -30
  238. package/src/utils.spec.ts +5 -0
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, SpotterQueryMode } 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
  /**
@@ -67,6 +68,10 @@ export enum Page {
67
68
  * Collections listing page
68
69
  */
69
70
  Collections = 'collections',
71
+ /**
72
+ * Liveboard schedules listing page
73
+ */
74
+ LiveboardSchedules = 'liveboard-schedules',
70
75
  }
71
76
 
72
77
  /**
@@ -115,6 +120,9 @@ export enum HomePage {
115
120
  /**
116
121
  * Modular (v2) introduces the updated Modular Home Experience.
117
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.
118
126
  */
119
127
  Modular = 'v2',
120
128
  /**
@@ -124,7 +132,7 @@ export enum HomePage {
124
132
  ModularWithStylingChanges = 'v3',
125
133
  /**
126
134
  * Focused (v4) introduces the V4 homepage experience
127
- * in which Watchlist and recents and incorporated together
135
+ * in which Watchlist and recents and incorporated together
128
136
  * to form a more focused homepage.
129
137
  * Pre-requisite : spotter enablement
130
138
  * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
@@ -191,13 +199,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
191
199
  showPrimaryNavbar?: boolean;
192
200
  /**
193
201
  * Control the visibility of the left navigation panel on the home page
194
- * in the V2 and V3 navigation and home page experience.
202
+ * in the V3 and V4 navigation and home page experience.
195
203
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
196
204
  * navigation bars are visible, this flag will only hide the left navigation bar
197
205
  * on the home page.
198
206
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
199
207
  *
200
- * **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.
201
210
  *
202
211
  * Supported embed types: `AppEmbed`
203
212
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -263,11 +272,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
263
272
  hideHamburger?: boolean;
264
273
  /**
265
274
  * Control the visibility of the object search
266
- * on the top navigation bar in the
267
- * V2 and V3 navigation experience.
275
+ * on the top navigation bar in the V3 navigation experience.
268
276
  *
269
- * **Note**: This attribute is not supported
270
- * 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.
271
279
  *
272
280
  * Supported embed types: `AppEmbed`
273
281
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -285,8 +293,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
285
293
  * Control the visibility of the notification icon
286
294
  * on the top navigation bar in V3 navigation experience.
287
295
  *
288
- * **Note**: This attribute is not supported
289
- * 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.
290
298
  *
291
299
  * Supported embed types: `AppEmbed`
292
300
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -301,14 +309,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
301
309
  */
302
310
  hideNotification?: boolean;
303
311
  /**
304
- * Control the visibility of the application selection menu
305
- * in the top navigation bar in the V2 experience.
312
+ * Control the visibility of the application selection menu.
306
313
  * In the V3 experience, it shows or hides application selection
307
314
  * icons on the left navigation panel.
308
315
  * By default, the application selection menu and icons are
309
316
  * shown in the UI.
310
317
  *
311
- * **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.
312
320
  *
313
321
  * Supported embed types: `AppEmbed`
314
322
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -326,7 +334,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
326
334
  * Control the visibility of the Org switcher button on the nav-bar.
327
335
  * By default, the Org switcher button is shown.
328
336
  *
329
- * **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.
330
339
  *
331
340
  * Supported embed types: `AppEmbed`
332
341
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -467,6 +476,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
467
476
  * `false` fetches visualizations incrementally as
468
477
  * users scroll the page to view the charts and tables.
469
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
+ *
470
484
  * Supported embed types: `AppEmbed`
471
485
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
472
486
  * @example
@@ -485,6 +499,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
485
499
  * Supported embed types: `AppEmbed`
486
500
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
487
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.
488
506
  * @example
489
507
  * ```js
490
508
  * const embed = new AppEmbed('#tsEmbed', {
@@ -620,11 +638,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
620
638
  /**
621
639
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
622
640
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
623
- * 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.
624
642
  *
625
643
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
626
644
  * @type {boolean}
627
645
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
646
+ * @default true
628
647
  * @example
629
648
  * ```js
630
649
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -638,10 +657,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
638
657
 
639
658
  /**
640
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
641
661
  *
642
662
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
643
663
  * @type {boolean}
644
664
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
665
+ * @default true
645
666
  * @example
646
667
  * ```js
647
668
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -655,10 +676,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
655
676
 
656
677
  /**
657
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
658
680
  *
659
681
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
660
682
  * @type {boolean}
661
683
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
684
+ * @default true
662
685
  * @example
663
686
  * ```js
664
687
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -671,11 +694,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
671
694
  isGranularXLSXCSVSchedulesEnabled?: boolean;
672
695
 
673
696
  /**
674
- * 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.
675
704
  *
676
705
  * @type {boolean}
677
706
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
678
- * @default false
707
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
679
708
  * @example
680
709
  * ```js
681
710
  * const embed = new AppEmbed('#embed-container', {
@@ -687,28 +716,44 @@ export interface AppViewConfig extends AllEmbedViewConfig {
687
716
  */
688
717
  lazyLoadingForFullHeight?: boolean;
689
718
  /**
690
- * 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.
691
722
  *
692
- * Use this when the embed is rendered inside a scrollable or clipping
693
- * 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.
694
728
  *
695
729
  * @type {boolean}
696
- * @default false
730
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
697
731
  * @hidden
698
732
  */
699
733
  enableScrollableContainerLazyLoading?: boolean;
700
734
 
701
735
  /**
702
- * The margin to be used for lazy loading.
736
+ * How far outside the viewport a visualization starts loading, when
737
+ * {@link lazyLoadingForFullHeight} is enabled.
703
738
  *
704
739
  * For example, if the margin is set to '10px',
705
740
  * the visualization will be loaded 10px before its top edge is visible in the
706
741
  * viewport.
707
742
  *
708
- * 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.
709
753
  *
710
754
  * @type {string}
711
755
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
756
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
712
757
  * @example
713
758
  * ```js
714
759
  * const embed = new AppEmbed('#embed-container', {
@@ -737,6 +782,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
737
782
  * ```
738
783
  */
739
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;
740
800
  /**
741
801
  * Sets the default query mode when Spotter loads — Fast Search or
742
802
  * Research Mode. Applies fresh on every new session for this embed
@@ -781,6 +841,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
781
841
  * spotterSidebarConfig: {
782
842
  * enablePastConversationsSidebar: true,
783
843
  * spotterSidebarTitle: 'My Conversations',
844
+ * // Opt in to pin/unpin conversations in embedded Spotter
845
+ * spotterChatPinConfig: {
846
+ * enabled: true,
847
+ * },
784
848
  * },
785
849
  * })
786
850
  * ```
@@ -804,6 +868,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
804
868
  * ```
805
869
  */
806
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[];
807
914
  /**
808
915
  * Configuration for the SpotterViz interface shown on the Liveboard.
809
916
  * Customize the brand name, description, chat input placeholder,
@@ -822,13 +929,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
822
929
  * inputChatPlaceholder: 'Ask a question...',
823
930
  * hideStarterPrompts: false,
824
931
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
825
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
932
+ * // The options below require SDK: 1.51.0
826
933
  * loaderHeadline: 'Crunching the numbers...',
827
934
  * loaderTips: [
828
935
  * { label: 'Tip', text: 'try asking about revenue by region' },
829
936
  * { label: 'Tip', text: 'use natural language' },
830
937
  * ],
831
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
832
938
  * liveboardBrandName: 'Reports',
833
939
  * spotterBrandName: 'Analyst',
834
940
  * insightTileBrandName: 'Insight card',
@@ -900,6 +1006,22 @@ export interface AppViewConfig extends AllEmbedViewConfig {
900
1006
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
901
1007
  */
902
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;
903
1025
  }
904
1026
 
905
1027
  /**
@@ -910,6 +1032,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
910
1032
  embedParams?: {
911
1033
  spotterSidebarConfig?: SpotterSidebarViewConfig;
912
1034
  spotterVizConfig?: SpotterVizConfig;
1035
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
1036
+ starterPrompts?: StarterPromptsConfig;
913
1037
  };
914
1038
  }
915
1039
 
@@ -930,6 +1054,16 @@ export class AppEmbed extends V1Embed {
930
1054
  viewConfig.embedComponentType = 'AppEmbed';
931
1055
  super(domSelector, viewConfig);
932
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
+
933
1067
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
934
1068
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
935
1069
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -959,7 +1093,9 @@ export class AppEmbed extends V1Embed {
959
1093
  this.viewConfig,
960
1094
  this.handleError.bind(this),
961
1095
  );
962
- 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);
963
1099
  }
964
1100
 
965
1101
  /**
@@ -967,6 +1103,11 @@ export class AppEmbed extends V1Embed {
967
1103
  * embedded Liveboard or visualization.
968
1104
  */
969
1105
  protected getEmbedParams() {
1106
+ const params = this.getEmbedParamsObject();
1107
+ return getQueryParamString(params, true);
1108
+ }
1109
+
1110
+ protected getEmbedParamsObject() {
970
1111
  const {
971
1112
  tag,
972
1113
  hideTagFilterChips,
@@ -983,45 +1124,51 @@ export class AppEmbed extends V1Embed {
983
1124
  newConnectionsExperience,
984
1125
  fullHeight,
985
1126
  dataPanelV2 = true,
1127
+ updatedSpotterExperience,
986
1128
  hideLiveboardHeader = false,
987
1129
  showLiveboardTitle = true,
988
1130
  showLiveboardDescription = true,
989
1131
  showMaskedFilterChip = false,
990
- isLiveboardMasterpiecesEnabled = false,
1132
+ isLiveboardMasterpiecesEnabled,
991
1133
  newChartsLibrary,
992
1134
  hideHomepageLeftNav = false,
993
- modularHomeExperience = false,
1135
+ modularHomeExperience,
994
1136
  isLiveboardHeaderSticky = true,
995
1137
  enableAskSage,
996
1138
  collapseSearchBarInitially = false,
997
1139
  enable2ColumnLayout,
1140
+ isLiveboardAlwaysOn12ColLayout,
998
1141
  enableCustomColumnGroups = false,
999
1142
  dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
1000
1143
  collapseSearchBar = true,
1001
- isLiveboardCompactHeaderEnabled = false,
1144
+ isLiveboardCompactHeaderEnabled,
1002
1145
  showLiveboardVerifiedBadge = true,
1003
1146
  showLiveboardReverifyBanner = true,
1004
- hideIrrelevantChipsInLiveboardTabs = false,
1005
- isEnhancedFilterInteractivityEnabled = false,
1147
+ hideIrrelevantChipsInLiveboardTabs,
1148
+ isEnhancedFilterInteractivityEnabled,
1006
1149
  homePageSearchBarMode,
1007
1150
  isUnifiedSearchExperienceEnabled = true,
1008
1151
  enablePendoHelp = true,
1009
1152
  discoveryExperience,
1010
- coverAndFilterOptionInPDF = false,
1153
+ coverAndFilterOptionInPDF,
1011
1154
  isLiveboardStylingAndGroupingEnabled,
1155
+ liveboardGutter,
1012
1156
  isPNGInScheduledEmailsEnabled = false,
1013
- isLiveboardXLSXCSVDownloadEnabled = false,
1014
- isGranularXLSXCSVSchedulesEnabled = false,
1157
+ isLiveboardXLSXCSVDownloadEnabled,
1158
+ isGranularXLSXCSVSchedulesEnabled,
1015
1159
  isCentralizedLiveboardFilterUXEnabled = false,
1160
+ isScopedLiveboardFilteringEnabled,
1016
1161
  isLinkParametersEnabled,
1017
1162
  updatedSpotterChatPrompt,
1163
+ showSpotterRadiance,
1018
1164
  defaultQueryMode,
1019
1165
  enableStopAnswerGenerationEmbed,
1020
1166
  spotterChatConfig,
1167
+ spotterDataSources,
1021
1168
  minimumHeight,
1022
1169
  isThisPeriodInDateFiltersEnabled,
1023
1170
  enableHomepageAnnouncement = false,
1024
- isContinuousLiveboardPDFEnabled = false,
1171
+ isContinuousLiveboardPDFEnabled,
1025
1172
  enableLiveboardDataCache,
1026
1173
  } = this.viewConfig;
1027
1174
 
@@ -1034,27 +1181,41 @@ export class AppEmbed extends V1Embed {
1034
1181
  params[Param.ShowLiveboardTitle] = showLiveboardTitle;
1035
1182
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
1036
1183
  params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
1037
- params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1184
+ if (!isUndefined(isLiveboardMasterpiecesEnabled)) {
1185
+ params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
1186
+ }
1038
1187
  if (newChartsLibrary !== undefined) {
1039
1188
  params[Param.EnableNewChartLibrary] = newChartsLibrary;
1040
1189
  }
1041
1190
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
1042
1191
  params[Param.IsFullAppEmbed] = true;
1043
- params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
1044
- 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
+ }
1045
1199
  params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
1046
1200
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
1047
- params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1201
+ if (!isUndefined(hideIrrelevantChipsInLiveboardTabs)) {
1202
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
1203
+ }
1048
1204
  if (isUnifiedSearchExperienceEnabled !== undefined) {
1049
1205
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
1050
1206
  }
1051
- params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1207
+ if (!isUndefined(coverAndFilterOptionInPDF)) {
1208
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
1209
+ }
1052
1210
 
1053
1211
  params = this.getBaseQueryParams(params);
1054
1212
 
1055
1213
  if (!isUndefined(updatedSpotterChatPrompt)) {
1056
1214
  params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
1057
1215
  }
1216
+ if (!isUndefined(showSpotterRadiance)) {
1217
+ params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
1218
+ }
1058
1219
  if (!isUndefined(defaultQueryMode)) {
1059
1220
  params[Param.DefaultQueryMode] = defaultQueryMode;
1060
1221
  }
@@ -1062,6 +1223,10 @@ export class AppEmbed extends V1Embed {
1062
1223
  params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
1063
1224
  }
1064
1225
 
1226
+ if (spotterDataSources && spotterDataSources.length) {
1227
+ params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
1228
+ }
1229
+
1065
1230
  // Handle spotterChatConfig params
1066
1231
  if (spotterChatConfig) {
1067
1232
  const {
@@ -1070,6 +1235,7 @@ export class AppEmbed extends V1Embed {
1070
1235
  spotterFileUploadEnabled,
1071
1236
  spotterFileUploadFileTypes,
1072
1237
  enableStarterPrompts,
1238
+ openSpotterOnLiveboardByDefault,
1073
1239
  } = spotterChatConfig;
1074
1240
 
1075
1241
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
@@ -1080,11 +1246,18 @@ export class AppEmbed extends V1Embed {
1080
1246
  if (enableStarterPrompts !== undefined) {
1081
1247
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
1082
1248
  }
1249
+ if (openSpotterOnLiveboardByDefault !== undefined) {
1250
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
1251
+ }
1083
1252
  if (spotterFileUploadFileTypes !== undefined) {
1084
1253
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
1085
1254
  }
1086
1255
  }
1087
1256
 
1257
+ if (!isUndefined(updatedSpotterExperience)) {
1258
+ params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
1259
+ }
1260
+
1088
1261
  if (hideObjectSearch) {
1089
1262
  params[Param.HideObjectSearch] = !!hideObjectSearch;
1090
1263
  }
@@ -1128,6 +1301,9 @@ export class AppEmbed extends V1Embed {
1128
1301
  if (enable2ColumnLayout !== undefined) {
1129
1302
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
1130
1303
  }
1304
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
1305
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
1306
+ }
1131
1307
 
1132
1308
  if (enableAskSage) {
1133
1309
  params[Param.enableAskSage] = enableAskSage;
@@ -1147,6 +1323,10 @@ export class AppEmbed extends V1Embed {
1147
1323
  ] = isLiveboardStylingAndGroupingEnabled;
1148
1324
  }
1149
1325
 
1326
+ if (liveboardGutter !== undefined) {
1327
+ params[Param.LiveboardGutter] = liveboardGutter;
1328
+ }
1329
+
1150
1330
  if (isPNGInScheduledEmailsEnabled !== undefined) {
1151
1331
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
1152
1332
  }
@@ -1173,6 +1353,12 @@ export class AppEmbed extends V1Embed {
1173
1353
  ] = isCentralizedLiveboardFilterUXEnabled;
1174
1354
  }
1175
1355
 
1356
+ if (isScopedLiveboardFilteringEnabled !== undefined) {
1357
+ params[
1358
+ Param.isScopedLiveboardFilteringEnabled
1359
+ ] = isScopedLiveboardFilteringEnabled;
1360
+ }
1361
+
1176
1362
  if (isThisPeriodInDateFiltersEnabled !== undefined) {
1177
1363
  params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
1178
1364
  }
@@ -1193,7 +1379,6 @@ export class AppEmbed extends V1Embed {
1193
1379
 
1194
1380
  params[Param.DataPanelV2Enabled] = dataPanelV2;
1195
1381
  params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
1196
- params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1197
1382
  params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
1198
1383
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
1199
1384
  if (dataPanelCustomGroupsAccordionInitialState
@@ -1214,41 +1399,21 @@ export class AppEmbed extends V1Embed {
1214
1399
  params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
1215
1400
  }
1216
1401
 
1217
- // Set navigation to v2 by default to avoid problems like the app
1218
- // switcher (9-dot menu) not showing when v3 navigation is turned on
1219
- // at the cluster level.
1220
- // To use v3 navigation, we must manually set the discoveryExperience
1221
- // settings.
1222
- params[Param.NavigationVersion] = 'v2';
1223
- // Set homePageVersion to v2 by default to reset the LD flag value
1224
- // for the homepageVersion.
1225
- params[Param.HomepageVersion] = 'v2';
1226
- if (discoveryExperience) {
1227
- // primaryNavbarVersion v3 will enabled the new left navigation
1228
- if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
1229
- params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
1230
- // Enable the modularHomeExperience when Sliding is enabled.
1231
- params[Param.ModularHomeExperienceEnabled] = true;
1232
- }
1233
-
1234
- // homePage v2 will enable the modular home page
1235
- // and it will override the modularHomeExperience value
1236
- if (discoveryExperience.homePage === HomePage.Modular) {
1237
- params[Param.ModularHomeExperienceEnabled] = true;
1238
- }
1239
-
1240
- // ModularWithStylingChanges (v3) introduces the styling changes
1241
- // to the Modular Homepage.
1242
- // v3 will be the base version of homePageVersion.
1243
- if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
1244
- params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
1245
- }
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;
1246
1410
 
1411
+ if (discoveryExperience) {
1247
1412
  // listPageVersion can be changed to v2 or v3
1248
1413
  if (discoveryExperience.listPageVersion !== undefined) {
1249
1414
  params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
1250
1415
  }
1251
-
1416
+
1252
1417
  if (discoveryExperience.homePage === HomePage.Focused) {
1253
1418
  params[Param.HomepageVersion] = HomePage.Focused;
1254
1419
  // The Focused (V4) homepage experience requires the updated
@@ -1260,9 +1425,7 @@ export class AppEmbed extends V1Embed {
1260
1425
  }
1261
1426
  }
1262
1427
 
1263
- const queryParams = getQueryParamString(params, true);
1264
-
1265
- return queryParams;
1428
+ return params;
1266
1429
  }
1267
1430
 
1268
1431
  private sendFullHeightLazyLoadData = () => {
@@ -1367,6 +1530,8 @@ export class AppEmbed extends V1Embed {
1367
1530
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
1368
1531
  case Page.Collections:
1369
1532
  return 'collections';
1533
+ case Page.LiveboardSchedules:
1534
+ return 'home/liveboard-schedules';
1370
1535
  case Page.Home:
1371
1536
  default:
1372
1537
  return 'home';