@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.2

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 (228) 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 +27 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +43 -12
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +29 -3
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +253 -1
  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 +171 -1
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +4 -2
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +125 -0
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +3 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +36 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  27. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/liveboard.d.ts +40 -13
  31. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  32. package/cjs/src/embed/liveboard.js +25 -4
  33. package/cjs/src/embed/liveboard.js.map +1 -1
  34. package/cjs/src/embed/liveboard.spec.js +349 -2
  35. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  36. package/cjs/src/embed/search.spec.js +28 -0
  37. package/cjs/src/embed/search.spec.js.map +1 -1
  38. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  39. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  40. package/cjs/src/embed/spotter-utils.js +15 -1
  41. package/cjs/src/embed/spotter-utils.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.spec.js +68 -0
  43. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  44. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  45. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  46. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  47. package/cjs/src/embed/ts-embed.d.ts +97 -9
  48. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  49. package/cjs/src/embed/ts-embed.js +76 -35
  50. package/cjs/src/embed/ts-embed.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.spec.js +537 -3
  52. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  53. package/cjs/src/index.d.ts +3 -3
  54. package/cjs/src/index.d.ts.map +1 -1
  55. package/cjs/src/index.js +3 -2
  56. package/cjs/src/index.js.map +1 -1
  57. package/cjs/src/react/all-types-export.d.ts +1 -1
  58. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  59. package/cjs/src/react/all-types-export.js +2 -1
  60. package/cjs/src/react/all-types-export.js.map +1 -1
  61. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  62. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  63. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  64. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  65. package/cjs/src/react/index.d.ts +66 -32
  66. package/cjs/src/react/index.d.ts.map +1 -1
  67. package/cjs/src/react/index.js +5 -3
  68. package/cjs/src/react/index.js.map +1 -1
  69. package/cjs/src/react/index.spec.js +101 -0
  70. package/cjs/src/react/index.spec.js.map +1 -1
  71. package/cjs/src/types.d.ts +330 -18
  72. package/cjs/src/types.d.ts.map +1 -1
  73. package/cjs/src/types.js +182 -12
  74. package/cjs/src/types.js.map +1 -1
  75. package/cjs/src/utils.d.ts +5 -0
  76. package/cjs/src/utils.d.ts.map +1 -1
  77. package/cjs/src/utils.js +19 -1
  78. package/cjs/src/utils.js.map +1 -1
  79. package/cjs/src/utils.spec.js +37 -0
  80. package/cjs/src/utils.spec.js.map +1 -1
  81. package/dist/{index-aBzH5ZwF.js → index-D8_Zs-Nr.js} +1 -1
  82. package/dist/src/config.d.ts +1 -0
  83. package/dist/src/config.d.ts.map +1 -1
  84. package/dist/src/css-variables.d.ts +27 -0
  85. package/dist/src/css-variables.d.ts.map +1 -1
  86. package/dist/src/embed/app.d.ts +43 -12
  87. package/dist/src/embed/app.d.ts.map +1 -1
  88. package/dist/src/embed/base.d.ts +1 -1
  89. package/dist/src/embed/conversation.d.ts +171 -1
  90. package/dist/src/embed/conversation.d.ts.map +1 -1
  91. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  92. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +40 -13
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/spotter-utils.d.ts +8 -1
  96. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  97. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  98. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  99. package/dist/src/embed/ts-embed.d.ts +97 -9
  100. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  101. package/dist/src/index.d.ts +3 -3
  102. package/dist/src/index.d.ts.map +1 -1
  103. package/dist/src/react/all-types-export.d.ts +1 -1
  104. package/dist/src/react/all-types-export.d.ts.map +1 -1
  105. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  106. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  107. package/dist/src/react/index.d.ts +66 -32
  108. package/dist/src/react/index.d.ts.map +1 -1
  109. package/dist/src/types.d.ts +330 -18
  110. package/dist/src/types.d.ts.map +1 -1
  111. package/dist/src/utils.d.ts +5 -0
  112. package/dist/src/utils.d.ts.map +1 -1
  113. package/dist/tsembed-react.es.js +354 -64
  114. package/dist/tsembed-react.js +353 -63
  115. package/dist/tsembed.es.js +414 -126
  116. package/dist/tsembed.js +416 -128
  117. package/dist/visual-embed-sdk-react-full.d.ts +777 -90
  118. package/dist/visual-embed-sdk-react.d.ts +773 -89
  119. package/dist/visual-embed-sdk.d.ts +713 -60
  120. package/lib/package.json +1 -1
  121. package/lib/src/config.d.ts +1 -0
  122. package/lib/src/config.d.ts.map +1 -1
  123. package/lib/src/config.js +1 -0
  124. package/lib/src/config.js.map +1 -1
  125. package/lib/src/css-variables.d.ts +27 -0
  126. package/lib/src/css-variables.d.ts.map +1 -1
  127. package/lib/src/embed/app.d.ts +43 -12
  128. package/lib/src/embed/app.d.ts.map +1 -1
  129. package/lib/src/embed/app.js +30 -4
  130. package/lib/src/embed/app.js.map +1 -1
  131. package/lib/src/embed/app.spec.js +253 -1
  132. package/lib/src/embed/app.spec.js.map +1 -1
  133. package/lib/src/embed/base.d.ts +1 -1
  134. package/lib/src/embed/base.js +1 -1
  135. package/lib/src/embed/conversation.d.ts +171 -1
  136. package/lib/src/embed/conversation.d.ts.map +1 -1
  137. package/lib/src/embed/conversation.js +5 -3
  138. package/lib/src/embed/conversation.js.map +1 -1
  139. package/lib/src/embed/conversation.spec.js +125 -0
  140. package/lib/src/embed/conversation.spec.js.map +1 -1
  141. package/lib/src/embed/events.spec.js +3 -0
  142. package/lib/src/embed/events.spec.js.map +1 -1
  143. package/lib/src/embed/host-events.spec.js +36 -0
  144. package/lib/src/embed/host-events.spec.js.map +1 -1
  145. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  146. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  147. package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  148. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  149. package/lib/src/embed/liveboard.d.ts +40 -13
  150. package/lib/src/embed/liveboard.d.ts.map +1 -1
  151. package/lib/src/embed/liveboard.js +25 -4
  152. package/lib/src/embed/liveboard.js.map +1 -1
  153. package/lib/src/embed/liveboard.spec.js +349 -2
  154. package/lib/src/embed/liveboard.spec.js.map +1 -1
  155. package/lib/src/embed/search.spec.js +28 -0
  156. package/lib/src/embed/search.spec.js.map +1 -1
  157. package/lib/src/embed/spotter-utils.d.ts +8 -1
  158. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  159. package/lib/src/embed/spotter-utils.js +13 -0
  160. package/lib/src/embed/spotter-utils.js.map +1 -1
  161. package/lib/src/embed/spotter-utils.spec.js +69 -1
  162. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  163. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  164. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  165. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  166. package/lib/src/embed/ts-embed.d.ts +97 -9
  167. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  168. package/lib/src/embed/ts-embed.js +77 -36
  169. package/lib/src/embed/ts-embed.js.map +1 -1
  170. package/lib/src/embed/ts-embed.spec.js +537 -3
  171. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  172. package/lib/src/index.d.ts +3 -3
  173. package/lib/src/index.d.ts.map +1 -1
  174. package/lib/src/index.js +2 -2
  175. package/lib/src/index.js.map +1 -1
  176. package/lib/src/react/all-types-export.d.ts +1 -1
  177. package/lib/src/react/all-types-export.d.ts.map +1 -1
  178. package/lib/src/react/all-types-export.js +1 -1
  179. package/lib/src/react/all-types-export.js.map +1 -1
  180. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  181. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  182. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  183. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  184. package/lib/src/react/index.d.ts +66 -32
  185. package/lib/src/react/index.d.ts.map +1 -1
  186. package/lib/src/react/index.js +5 -3
  187. package/lib/src/react/index.js.map +1 -1
  188. package/lib/src/react/index.spec.js +102 -1
  189. package/lib/src/react/index.spec.js.map +1 -1
  190. package/lib/src/types.d.ts +330 -18
  191. package/lib/src/types.d.ts.map +1 -1
  192. package/lib/src/types.js +182 -12
  193. package/lib/src/types.js.map +1 -1
  194. package/lib/src/utils.d.ts +5 -0
  195. package/lib/src/utils.d.ts.map +1 -1
  196. package/lib/src/utils.js +17 -0
  197. package/lib/src/utils.js.map +1 -1
  198. package/lib/src/utils.spec.js +38 -1
  199. package/lib/src/utils.spec.js.map +1 -1
  200. package/lib/src/visual-embed-sdk.d.ts +713 -60
  201. package/package.json +1 -1
  202. package/src/config.ts +1 -0
  203. package/src/css-variables.ts +32 -0
  204. package/src/embed/app.spec.ts +335 -1
  205. package/src/embed/app.ts +71 -13
  206. package/src/embed/base.ts +1 -1
  207. package/src/embed/conversation.spec.ts +136 -0
  208. package/src/embed/conversation.ts +181 -3
  209. package/src/embed/events.spec.ts +4 -0
  210. package/src/embed/host-events.spec.ts +48 -0
  211. package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
  212. package/src/embed/hostEventClient/host-event-client.ts +2 -2
  213. package/src/embed/liveboard.spec.ts +457 -2
  214. package/src/embed/liveboard.ts +74 -15
  215. package/src/embed/search.spec.ts +31 -0
  216. package/src/embed/spotter-utils.spec.ts +72 -0
  217. package/src/embed/spotter-utils.ts +21 -1
  218. package/src/embed/spotter-viz-utils.ts +9 -10
  219. package/src/embed/ts-embed.spec.ts +699 -3
  220. package/src/embed/ts-embed.ts +91 -41
  221. package/src/index.ts +43 -2
  222. package/src/react/all-types-export.parity.spec.ts +208 -0
  223. package/src/react/all-types-export.ts +22 -0
  224. package/src/react/index.spec.tsx +158 -0
  225. package/src/react/index.tsx +70 -33
  226. package/src/types.ts +329 -16
  227. package/src/utils.spec.ts +49 -0
  228. package/src/utils.ts +16 -0
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.51.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.51.2 */
2
2
  'use client';
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -518,7 +518,7 @@ var EmbedEvent;
518
518
  * @returns nonFilteredColumns - The columns that were not filtered
519
519
  * @example
520
520
  * ```js
521
- * searchEmbed.on(EmbedEvent.DrillDown, {
521
+ * searchEmbed.on(EmbedEvent.Drilldown, {
522
522
  * points: {
523
523
  * clickedPoint,
524
524
  * selectedPoints: selectedPoint
@@ -579,7 +579,7 @@ var EmbedEvent;
579
579
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
580
580
  * @example
581
581
  * ```js
582
- * appEmbed.on(EmbedEvent.customAction, payload => {
582
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
583
583
  * const data = payload.data;
584
584
  * if (data.id === 'insert Custom Action ID here') {
585
585
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -845,8 +845,8 @@ var EmbedEvent;
845
845
  *
846
846
  * **Note**: This event is deprecated in v1.21.0.
847
847
  * To fire an event when a download action is initiated on a chart or table,
848
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
849
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
848
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
849
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
850
850
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
851
851
  * @example
852
852
  * ```js
@@ -896,10 +896,10 @@ var EmbedEvent;
896
896
  * @example
897
897
  * ```js
898
898
  * //emit when action starts
899
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
899
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
900
900
  * console.log('download CSV', payload)}, {start: true })
901
901
  * //emit when action ends
902
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
902
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
903
903
  * console.log('download CSV', payload)})
904
904
  * ```
905
905
  */
@@ -2356,6 +2356,7 @@ var HostEvent;
2356
2356
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
2357
2357
  * console.log("iFrameURL", url);
2358
2358
  * ```
2359
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
2359
2360
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
2360
2361
  */
2361
2362
  HostEvent["GetIframeUrl"] = "GetIframeUrl";
@@ -2522,6 +2523,41 @@ var HostEvent;
2522
2523
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2523
2524
  */
2524
2525
  HostEvent["OpenFilter"] = "openFilter";
2526
+ /**
2527
+ * Open the add-filter modal of a Liveboard, the same dialog that the
2528
+ * *Add filter* button in the Liveboard edit header opens, so the host
2529
+ * app can start the add-filter flow from its own UI.
2530
+ *
2531
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2532
+ * Hiding the *Add filter* button with `hiddenActions:
2533
+ * [Action.AddFilter]` does not block this event, but disabling it with
2534
+ * `disabledActions` does.
2535
+ *
2536
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
2537
+ * existing filter, this event starts the creation of a new filter.
2538
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2539
+ * @example
2540
+ * ```js
2541
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
2542
+ * ```
2543
+ */
2544
+ HostEvent["OpenAddFilterModal"] = "openAddFilterModal";
2545
+ /**
2546
+ * Open the add-parameter panel of a Liveboard, the same panel that the
2547
+ * *Add parameter* button in the Liveboard edit header opens.
2548
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
2549
+ *
2550
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
2551
+ * Hiding the *Add parameter* button with `hiddenActions:
2552
+ * [Action.AddParameter]` does not block this event, but disabling it
2553
+ * with `disabledActions` does.
2554
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
2555
+ * @example
2556
+ * ```js
2557
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
2558
+ * ```
2559
+ */
2560
+ HostEvent["OpenAddParameterModal"] = "openAddParameterModal";
2525
2561
  /**
2526
2562
  * Open the parameter panel for a particular parameter on a Liveboard.
2527
2563
  * Mirrors {@link HostEvent.OpenFilter} for parameters.
@@ -2603,6 +2639,10 @@ var HostEvent;
2603
2639
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
2604
2640
  * data=>console.log(data))
2605
2641
  * ```
2642
+ * @returns data - Object with a `v2Content` string: the export request
2643
+ * payload for the current Liveboard.
2644
+ * @returns type - The passthrough event name,
2645
+ * `getExportRequestForCurrentPinboard`.
2606
2646
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
2607
2647
  */
2608
2648
  HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
@@ -2705,6 +2745,9 @@ var HostEvent;
2705
2745
  * }, ContextType.Spotter);
2706
2746
  * ```
2707
2747
  *
2748
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
2749
+ * @returns tabId - GUID of the tab within that Liveboard.
2750
+ * @returns vizId - GUID of the newly created visualization.
2708
2751
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2709
2752
  */
2710
2753
  HostEvent["Pin"] = "pin";
@@ -2743,13 +2786,13 @@ var HostEvent;
2743
2786
  * Trigger the **Manage schedule** action on an embedded Liveboard
2744
2787
  * @example
2745
2788
  * ```js
2746
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
2789
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
2747
2790
  * ```
2748
2791
  * @example
2749
2792
  * ```js
2750
2793
  * // Manage schedules from liveboard context
2751
2794
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
2752
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
2795
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
2753
2796
  * ```
2754
2797
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2755
2798
  */
@@ -3194,6 +3237,7 @@ var HostEvent;
3194
3237
  * console.log(tml.answer);
3195
3238
  * });
3196
3239
  * ```
3240
+ * @returns The TML representation of the current Answer, as an object.
3197
3241
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
3198
3242
  * @important
3199
3243
  */
@@ -3638,6 +3682,8 @@ var HostEvent;
3638
3682
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
3639
3683
  * console.log('filters', data);
3640
3684
  * ```
3685
+ * @returns liveboardFilters - Filters applied on the Liveboard.
3686
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
3641
3687
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3642
3688
  */
3643
3689
  HostEvent["GetFilters"] = "getFilters";
@@ -3787,6 +3833,9 @@ var HostEvent;
3787
3833
  * console.log('tabs', tabDetails);
3788
3834
  * });
3789
3835
  * ```
3836
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
3837
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
3838
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
3790
3839
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
3791
3840
  */
3792
3841
  HostEvent["GetTabs"] = "getTabs";
@@ -3809,6 +3858,9 @@ var HostEvent;
3809
3858
  * console.log('groups', groupDetails);
3810
3859
  * });
3811
3860
  * ```
3861
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
3862
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
3863
+ * @returns Groups - Group details, each with at least `id` and `name`.
3812
3864
  * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3813
3865
  */
3814
3866
  HostEvent["GetGroups"] = "getGroups";
@@ -3883,6 +3935,9 @@ var HostEvent;
3883
3935
  * // Alternative direct usage (not recommended)
3884
3936
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
3885
3937
  * ```
3938
+ * @returns session - Session identifier for the Answer, for use with the
3939
+ * `AnswerService`.
3940
+ * @returns embedAnswerData - Data backing the Answer, when available.
3886
3941
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
3887
3942
  */
3888
3943
  HostEvent["GetAnswerSession"] = "getAnswerSession";
@@ -4016,12 +4071,16 @@ var HostEvent;
4016
4071
  * console.log('parameters', parameters);
4017
4072
  * });
4018
4073
  * ```
4074
+ * @returns parameters - Parameters currently applied on the Liveboard.
4019
4075
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
4020
4076
  */
4021
4077
  HostEvent["GetParameters"] = "GetParameters";
4022
4078
  /**
4023
4079
  * Triggers an event to update a personalized view of a Liveboard.
4024
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
4080
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4081
+ * which additionally accepts a `viewName`, resets to the original view when
4082
+ * called with an empty payload, and reports an error when a named view
4083
+ * cannot be found.
4025
4084
  * ```js
4026
4085
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
4027
4086
  * ```
@@ -4039,10 +4098,15 @@ var HostEvent;
4039
4098
  HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
4040
4099
  /**
4041
4100
  * Triggers an event to update a personalized view of a Liveboard.
4101
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
4102
+ * which additionally accepts a `viewName`, resets to the original view when
4103
+ * called with an empty payload, and reports an error when a named view
4104
+ * cannot be found.
4042
4105
  * ```js
4043
4106
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
4044
4107
  * ```
4045
4108
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
4109
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
4046
4110
  */
4047
4111
  HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
4048
4112
  /**
@@ -4145,6 +4209,10 @@ var HostEvent;
4145
4209
  * description: "Generated from Spotter"
4146
4210
  * }, ContextType.Spotter);
4147
4211
  * ```
4212
+ * @returns answerId - GUID of the saved Answer.
4213
+ * @returns saveResponse - Raw response from the save operation.
4214
+ * @returns shareResponse - Raw response from the share operation, when the
4215
+ * Answer was also made discoverable.
4148
4216
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
4149
4217
  */
4150
4218
  HostEvent["SaveAnswer"] = "saveAnswer";
@@ -4626,6 +4694,7 @@ var Param;
4626
4694
  Param["NumberFormatLocale"] = "numberFormatLocale";
4627
4695
  Param["CurrencyFormat"] = "currencyFormat";
4628
4696
  Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
4697
+ Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
4629
4698
  Param["IsFullAppEmbed"] = "isFullAppEmbed";
4630
4699
  Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
4631
4700
  Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
@@ -4649,6 +4718,7 @@ var Param;
4649
4718
  Param["PrimaryAction"] = "primaryAction";
4650
4719
  Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
4651
4720
  Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
4721
+ Param["LiveboardGutter"] = "liveboardGutter";
4652
4722
  Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
4653
4723
  Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
4654
4724
  Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
@@ -4684,14 +4754,17 @@ var Param;
4684
4754
  Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
4685
4755
  Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
4686
4756
  Param["SpotterDataSources"] = "spotterDataSources";
4757
+ Param["AnalystId"] = "analystId";
4758
+ Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
4687
4759
  })(Param || (Param = {}));
4688
4760
  /**
4689
4761
  * ThoughtSpot application pages include actions and menu commands
4690
4762
  * for various user-initiated operations. These actions are represented
4691
4763
  * as enumeration members in the SDK. To control actions in the embedded view:
4692
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
4693
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
4694
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
4764
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
4765
+ * (user can see but not click). - hiddenActions — the action is completely removed from
4766
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
4767
+ * are shown; all others are hidden.
4695
4768
  *
4696
4769
  * Use disabledActions to disable (gray out) an action.
4697
4770
  * Use hiddenActions to hide (fully remove) an action.
@@ -4745,6 +4818,17 @@ var Action;
4745
4818
  * ```
4746
4819
  */
4747
4820
  Action["SaveAsView"] = "saveAsView";
4821
+ /**
4822
+ * The **EditInputTable** action on a Liveboard
4823
+ * page. Allows users to edit an input table used in an Answer directly from
4824
+ * a Liveboard.
4825
+ * @example
4826
+ * ```js
4827
+ * disabledActions: [Action.EditInputTable]
4828
+ * ```
4829
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
4830
+ */
4831
+ Action["EditInputTable"] = "editInputTable";
4748
4832
  /**
4749
4833
  * The **Make a copy** action on a Liveboard or Answer
4750
4834
  * page. Creates a copy of the Liveboard.
@@ -6062,6 +6146,10 @@ var Action;
6062
6146
  * The **Add to Coaching** feature allows adding reference questions and
6063
6147
  * business terms to improve Spotter’s responses. This feature is generally available
6064
6148
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
6149
+ *
6150
+ * This action governs both the answer-card **Add to memory** CTA and its
6151
+ * Spotter 3 successor, the response-footer **Remember this** CTA
6152
+ * (they are mutually exclusive).
6065
6153
  * @example
6066
6154
  * ```js
6067
6155
  * hiddenAction: [Action.InConversationTraining]
@@ -6442,6 +6530,56 @@ var Action;
6442
6530
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
6443
6531
  */
6444
6532
  Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
6533
+ /**
6534
+ * The **Basic Search** starter prompt pill.
6535
+ *
6536
+ * Starter prompt pills are the row of category buttons shown above the
6537
+ * Spotter chat input before a conversation starts. They give a new user
6538
+ * ready-made questions to click instead of typing one from scratch, and
6539
+ * disappear once the conversation begins. There are three, one per action
6540
+ * below.
6541
+ *
6542
+ * Clicking this pill opens a card of suggested simple questions; picking one
6543
+ * submits it to Spotter right away. Visible by default, and hidden along
6544
+ * with the other pills when the surface itself is off (see
6545
+ * {@link SpotterChatViewConfig.starterPrompts}).
6546
+ * @example
6547
+ * ```js
6548
+ * hiddenActions: [Action.QuickSearchPill]
6549
+ * ```
6550
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6551
+ */
6552
+ Action["QuickSearchPill"] = "quickSearchPill";
6553
+ /**
6554
+ * The **Deep Analysis** starter prompt pill, next to
6555
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6556
+ *
6557
+ * Clicking it opens a card of suggested investigative questions ("why did
6558
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
6559
+ * rather than submitting immediately, so the user can edit it first.
6560
+ * Visible by default.
6561
+ * @example
6562
+ * ```js
6563
+ * hiddenActions: [Action.DeepAnalysisPill]
6564
+ * ```
6565
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6566
+ */
6567
+ Action["DeepAnalysisPill"] = "deepAnalysisPill";
6568
+ /**
6569
+ * The **Data Literacy** starter prompt pill, next to
6570
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
6571
+ *
6572
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
6573
+ * that describes the data the model can answer over, helping a user who does
6574
+ * not yet know what is in the data source. The prompt text always comes from
6575
+ * ThoughtSpot, so only its label is customizable. Visible by default.
6576
+ * @example
6577
+ * ```js
6578
+ * hiddenActions: [Action.DataLiteracyPill]
6579
+ * ```
6580
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
6581
+ */
6582
+ Action["DataLiteracyPill"] = "dataLiteracyPill";
6445
6583
  /**
6446
6584
  * The **Include current period** checkbox for date filters.
6447
6585
  * Controls the visibility and availability of the option to include
@@ -6590,6 +6728,38 @@ var Action;
6590
6728
  * ```
6591
6729
  */
6592
6730
  Action["SpotterAnalystSidebar"] = "spotterAnalystSidebar";
6731
+ /**
6732
+ * Controls visibility and disable state of the analyst list
6733
+ * ("Show all") in the Spotter Analyst interface.
6734
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6735
+ * @example
6736
+ * ```js
6737
+ * hiddenActions: [Action.SpotterAnalystList]
6738
+ * disabledActions: [Action.SpotterAnalystList]
6739
+ * ```
6740
+ */
6741
+ Action["SpotterAnalystList"] = "spotterAnalystList";
6742
+ /**
6743
+ * Controls visibility and disable state of the default Spotter analyst
6744
+ * entry in the Spotter Analyst interface.
6745
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6746
+ * @example
6747
+ * ```js
6748
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
6749
+ * disabledActions: [Action.SpotterDefaultAnalyst]
6750
+ * ```
6751
+ */
6752
+ Action["SpotterDefaultAnalyst"] = "spotterDefaultAnalyst";
6753
+ /**
6754
+ * The **Spotter** button in the Liveboard header.
6755
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
6756
+ * @example
6757
+ * ```js
6758
+ * hiddenActions: [Action.SpotterOnLiveboard]
6759
+ * disabledActions: [Action.SpotterOnLiveboard]
6760
+ * ```
6761
+ */
6762
+ Action["SpotterOnLiveboard"] = "spotterOnLiveboard";
6593
6763
  })(Action || (Action = {}));
6594
6764
  var PrefetchFeatures;
6595
6765
  (function (PrefetchFeatures) {
@@ -7057,7 +7227,7 @@ var TableContentDensity;
7057
7227
  TableContentDensity["Compact"] = "COMPACT";
7058
7228
  })(TableContentDensity || (TableContentDensity = {}));
7059
7229
 
7060
- var version$1="1.51.0";var pkg = {version:version$1};
7230
+ var version$1="1.51.2";var pkg = {version:version$1};
7061
7231
 
7062
7232
  const { version } = pkg;
7063
7233
 
@@ -7305,6 +7475,23 @@ const serializeParam = (value) => {
7305
7475
  }
7306
7476
  return JSON.stringify(value);
7307
7477
  };
7478
+ /**
7479
+ * Inverse of serializeParam: JSON.parse with fallback to the raw string,
7480
+ * matching how the app parses the same values from the iframe URL.
7481
+ */
7482
+ const deserializeParam = (value) => {
7483
+ if (typeof value !== 'string')
7484
+ return value;
7485
+ try {
7486
+ const parsed = JSON.parse(value);
7487
+ // Numeric strings stay strings ('123' !== 123), same as the app's
7488
+ // URL parser — param consumers expect string ids/versions.
7489
+ return typeof parsed === 'number' ? value : parsed;
7490
+ }
7491
+ catch (e) {
7492
+ return value;
7493
+ }
7494
+ };
7308
7495
  /**
7309
7496
  * Convert a value to a string:
7310
7497
  * in case of an array, we convert it to CSV.
@@ -7864,6 +8051,72 @@ const setParamIfDefined = (queryParams, param, value, asBoolean = false) => {
7864
8051
  }
7865
8052
  };
7866
8053
 
8054
+ /**
8055
+ * Copyright (c) 2023
8056
+ *
8057
+ * Utilities related to reading configuration objects
8058
+ * @summary Config-related utils
8059
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8060
+ */
8061
+ const urlRegex = new RegExp([
8062
+ '(^(https?:)//)?',
8063
+ '(([^:/?#]*)(?::([0-9]+))?)',
8064
+ '(/{0,1}[^?#]*)',
8065
+ '(\\?[^#]*|)',
8066
+ '(#.*|)$', // hash
8067
+ ].join(''));
8068
+ /**
8069
+ * Parse and construct the ThoughtSpot hostname or IP address
8070
+ * from the embed configuration object.
8071
+ * @param config
8072
+ */
8073
+ const getThoughtSpotHost = (config) => {
8074
+ if (!config.thoughtSpotHost) {
8075
+ throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
8076
+ }
8077
+ const urlParts = config.thoughtSpotHost.match(urlRegex);
8078
+ if (!urlParts) {
8079
+ throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
8080
+ }
8081
+ const protocol = urlParts[2] || window.location.protocol;
8082
+ const host = urlParts[3];
8083
+ let path = urlParts[6];
8084
+ // Lose the trailing / if any
8085
+ if (path.charAt(path.length - 1) === '/') {
8086
+ path = path.substring(0, path.length - 1);
8087
+ }
8088
+ // const urlParams = urlParts[7];
8089
+ // const hash = urlParts[8];
8090
+ return `${protocol}//${host}${path}`;
8091
+ };
8092
+ const getV2BasePath = (config) => {
8093
+ if (config.basepath) {
8094
+ return config.basepath;
8095
+ }
8096
+ const tsHost = getThoughtSpotHost(config);
8097
+ // This is to handle when e2e's. Search is run on pods for
8098
+ // comp-blink-test-pipeline with baseUrl=https://localhost:8443.
8099
+ // This is to handle when the developer is developing in their local
8100
+ // environment.
8101
+ if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
8102
+ return '';
8103
+ }
8104
+ return 'v2';
8105
+ };
8106
+ /**
8107
+ * It is a good idea to keep URLs under 2000 chars.
8108
+ * If this is ever breached, since we pass view configuration through
8109
+ * URL params, we would like to log a warning.
8110
+ * Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
8111
+ */
8112
+ const URL_MAX_LENGTH = 2000;
8113
+ /**
8114
+ * The default CSS dimensions of the embedded app
8115
+ */
8116
+ const DEFAULT_EMBED_WIDTH = '100%';
8117
+ const DEFAULT_EMBED_HEIGHT = '100%';
8118
+ const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
8119
+
7867
8120
  /** Used for built-in method references. */
7868
8121
  var objectProto$d = Object.prototype;
7869
8122
 
@@ -9706,7 +9959,7 @@ class AnswerService {
9706
9959
  async getTML() {
9707
9960
  const { object } = await this.executeQuery(getAnswerTML, {});
9708
9961
  const edoc = object[0].edoc;
9709
- const YAML = await import('./index-aBzH5ZwF.js');
9962
+ const YAML = await import('./index-D8_Zs-Nr.js');
9710
9963
  const parsedDoc = YAML.parse(edoc);
9711
9964
  return {
9712
9965
  answer: {
@@ -12592,71 +12845,6 @@ const getCustomActions = (customActions) => {
12592
12845
  };
12593
12846
  };
12594
12847
 
12595
- /**
12596
- * Copyright (c) 2023
12597
- *
12598
- * Utilities related to reading configuration objects
12599
- * @summary Config-related utils
12600
- * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
12601
- */
12602
- const urlRegex = new RegExp([
12603
- '(^(https?:)//)?',
12604
- '(([^:/?#]*)(?::([0-9]+))?)',
12605
- '(/{0,1}[^?#]*)',
12606
- '(\\?[^#]*|)',
12607
- '(#.*|)$', // hash
12608
- ].join(''));
12609
- /**
12610
- * Parse and construct the ThoughtSpot hostname or IP address
12611
- * from the embed configuration object.
12612
- * @param config
12613
- */
12614
- const getThoughtSpotHost = (config) => {
12615
- if (!config.thoughtSpotHost) {
12616
- throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
12617
- }
12618
- const urlParts = config.thoughtSpotHost.match(urlRegex);
12619
- if (!urlParts) {
12620
- throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
12621
- }
12622
- const protocol = urlParts[2] || window.location.protocol;
12623
- const host = urlParts[3];
12624
- let path = urlParts[6];
12625
- // Lose the trailing / if any
12626
- if (path.charAt(path.length - 1) === '/') {
12627
- path = path.substring(0, path.length - 1);
12628
- }
12629
- // const urlParams = urlParts[7];
12630
- // const hash = urlParts[8];
12631
- return `${protocol}//${host}${path}`;
12632
- };
12633
- const getV2BasePath = (config) => {
12634
- if (config.basepath) {
12635
- return config.basepath;
12636
- }
12637
- const tsHost = getThoughtSpotHost(config);
12638
- // This is to handle when e2e's. Search is run on pods for
12639
- // comp-blink-test-pipeline with baseUrl=https://localhost:8443.
12640
- // This is to handle when the developer is developing in their local
12641
- // environment.
12642
- if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
12643
- return '';
12644
- }
12645
- return 'v2';
12646
- };
12647
- /**
12648
- * It is a good idea to keep URLs under 2000 chars.
12649
- * If this is ever breached, since we pass view configuration through
12650
- * URL params, we would like to log a warning.
12651
- * Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
12652
- */
12653
- const URL_MAX_LENGTH = 2000;
12654
- /**
12655
- * The default CSS dimensions of the embedded app
12656
- */
12657
- const DEFAULT_EMBED_WIDTH = '100%';
12658
- const DEFAULT_EMBED_HEIGHT = '100%';
12659
-
12660
12848
  var Config = {
12661
12849
  DEBUG: false,
12662
12850
  LIB_VERSION: '2.47.0'
@@ -20218,7 +20406,7 @@ const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initF
20218
20406
  /**
20219
20407
  * Initializes the Visual Embed SDK globally and perform
20220
20408
  * authentication if applicable. This function needs to be called before any ThoughtSpot
20221
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
20409
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
20222
20410
  * to actually embed. That is handled internally.
20223
20411
  * @param embedConfig The configuration object containing ThoughtSpot host,
20224
20412
  * authentication mechanism and so on.
@@ -21198,7 +21386,7 @@ class TsEmbed {
21198
21386
  */
21199
21387
  this.shouldEncodeUrlQueryParams = false;
21200
21388
  this.defaultHiddenActions = [Action.ReportError];
21201
- this.preRenderContainerEl = null;
21389
+ this.preRenderContainerEl = document.body;
21202
21390
  this.containerScrollListener = null;
21203
21391
  /**
21204
21392
  * Handler for fullscreen change events
@@ -21676,10 +21864,14 @@ class TsEmbed {
21676
21864
  return `${basePath}#`;
21677
21865
  }
21678
21866
  async getUpdateEmbedParamsObject() {
21679
- let queryParams = this.getEmbedParamsObject();
21867
+ const queryParams = this.getEmbedParamsObject();
21868
+ // Values are URL-serialized (e.g. dataSources as '["guid"]'); parse
21869
+ // them back so the event payload matches a URL load (SCAL-334713).
21870
+ Object.keys(queryParams).forEach((key) => {
21871
+ queryParams[key] = deserializeParam(queryParams[key]);
21872
+ });
21680
21873
  const appInitData = await this.getAppInitData();
21681
- queryParams = { ...this.viewConfig, ...queryParams, ...appInitData };
21682
- return queryParams;
21874
+ return { ...this.viewConfig, ...queryParams, ...appInitData };
21683
21875
  }
21684
21876
  /**
21685
21877
  * Common query params set for all the embed modes.
@@ -21886,11 +22078,27 @@ class TsEmbed {
21886
22078
  iFrame.name = 'ThoughtSpot Embedded Analytics';
21887
22079
  return iFrame;
21888
22080
  }
22081
+ /**
22082
+ * Returns a merged {@link PreRenderConfig} object where each shared key
22083
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
22084
+ * backward compatibility.
22085
+ */
22086
+ getPreRenderConfig() {
22087
+ var _a, _b, _c, _d;
22088
+ const viewCfg = this.viewConfig;
22089
+ const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
22090
+ return {
22091
+ ...preRenderCfg,
22092
+ preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
22093
+ preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
22094
+ doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
22095
+ };
22096
+ }
21889
22097
  /**
21890
22098
  * Returns true if this embed instance is configured for pre-rendering.
21891
22099
  */
21892
22100
  isPreRenderEmbed() {
21893
- return !!this.viewConfig.preRenderId;
22101
+ return !!this.getPreRenderConfig().preRenderId;
21894
22102
  }
21895
22103
  handleInsertionIntoDOM(child) {
21896
22104
  if (this.isPreRenderEmbed()) {
@@ -22026,6 +22234,7 @@ class TsEmbed {
22026
22234
  this.setIframeElement(this.preRenderChild);
22027
22235
  }
22028
22236
  this.isRendered = true;
22237
+ this.inheritPreRenderContainer();
22029
22238
  }
22030
22239
  return this.isPreRenderConnected();
22031
22240
  }
@@ -22076,7 +22285,7 @@ class TsEmbed {
22076
22285
  */
22077
22286
  resolvePreRenderContainerTarget() {
22078
22287
  var _a;
22079
- const containerConfig = this.viewConfig.preRenderContainer;
22288
+ const containerConfig = this.getPreRenderConfig().preRenderContainer;
22080
22289
  let container = null;
22081
22290
  if (typeof containerConfig === 'string') {
22082
22291
  try {
@@ -22094,15 +22303,35 @@ class TsEmbed {
22094
22303
  }
22095
22304
  return (_a = container) !== null && _a !== void 0 ? _a : document.body;
22096
22305
  }
22306
+ inheritPreRenderContainer() {
22307
+ var _a;
22308
+ const preRenderedObject = this.getPreRenderObj();
22309
+ if (!preRenderedObject || preRenderedObject === this) {
22310
+ return;
22311
+ }
22312
+ const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
22313
+ if (this.getPreRenderConfig().preRenderContainer
22314
+ && this.resolvePreRenderContainerTarget() !== ownerContainer) {
22315
+ logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
22316
+ + 'the one passed here is ignored. Set it on the PreRender component instead.');
22317
+ }
22318
+ this.preRenderContainerEl = ownerContainer;
22319
+ this.applyPreRenderContainerPositioning();
22320
+ }
22321
+ getCustomPreRenderContainer() {
22322
+ const container = this.preRenderContainerEl;
22323
+ return container && container !== document.body ? container : null;
22324
+ }
22097
22325
  /**
22098
- * Makes the container a positioning context for the absolutely positioned
22099
- * wrapper, stashing the original inline `position` on the element (once) so
22100
- * destroy() can restore it exactly, leaving no trace. Recording it on the
22101
- * element rather than per-instance lets the override be reverted even when
22102
- * embeds share the same container.
22326
+ * Makes the resolved container a positioning context for the absolutely
22327
+ * positioned wrapper, stashing the original inline `position` on the element
22328
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
22329
+ * on the element rather than per-instance lets the override be reverted even
22330
+ * when embeds share the same container.
22103
22331
  */
22104
- applyPreRenderContainerPositioning(container) {
22105
- if (container === document.body) {
22332
+ applyPreRenderContainerPositioning() {
22333
+ const container = this.getCustomPreRenderContainer();
22334
+ if (!container) {
22106
22335
  return;
22107
22336
  }
22108
22337
  const pos = window.getComputedStyle(container).position;
@@ -22145,11 +22374,11 @@ class TsEmbed {
22145
22374
  resolved.addEventListener('scroll', this.containerScrollListener);
22146
22375
  }
22147
22376
  }
22148
- this.applyPreRenderContainerPositioning(resolved);
22377
+ this.preRenderContainerEl = resolved;
22378
+ this.applyPreRenderContainerPositioning();
22149
22379
  if (wrapper.parentNode !== resolved) {
22150
22380
  resolved.appendChild(wrapper);
22151
22381
  }
22152
- this.preRenderContainerEl = resolved;
22153
22382
  }
22154
22383
  insertIntoDOMForPreRender(child) {
22155
22384
  const preRenderChild = this.createPreRenderChild(child);
@@ -22172,7 +22401,7 @@ class TsEmbed {
22172
22401
  }
22173
22402
  const targetContainer = this.resolvePreRenderContainerTarget();
22174
22403
  this.preRenderContainerEl = targetContainer;
22175
- this.applyPreRenderContainerPositioning(targetContainer);
22404
+ this.applyPreRenderContainerPositioning();
22176
22405
  targetContainer.appendChild(preRenderWrapper);
22177
22406
  }
22178
22407
  insertIntoDOM(child) {
@@ -22578,7 +22807,7 @@ class TsEmbed {
22578
22807
  showPreRenderByDefault,
22579
22808
  replaceExistingPreRender,
22580
22809
  });
22581
- if (!this.viewConfig.preRenderId) {
22810
+ if (!this.getPreRenderConfig().preRenderId) {
22582
22811
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22583
22812
  return this;
22584
22813
  }
@@ -22634,7 +22863,7 @@ class TsEmbed {
22634
22863
  }
22635
22864
  // Drop our reference up front so a destroyed embed never pins a
22636
22865
  // detached container in memory; restoration uses the local handle.
22637
- this.preRenderContainerEl = null;
22866
+ this.preRenderContainerEl = document.body;
22638
22867
  const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
22639
22868
  if (originalPosition === undefined) {
22640
22869
  // We never overrode this container's position; nothing to restore.
@@ -22657,9 +22886,7 @@ class TsEmbed {
22657
22886
  if (!this.containerScrollListener) {
22658
22887
  return;
22659
22888
  }
22660
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22661
- ? this.preRenderContainerEl
22662
- : null;
22889
+ const customContainer = this.getCustomPreRenderContainer();
22663
22890
  customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
22664
22891
  this.containerScrollListener = null;
22665
22892
  }
@@ -22756,12 +22983,12 @@ class TsEmbed {
22756
22983
  async showPreRender() {
22757
22984
  var _a, _b;
22758
22985
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
22759
- preRenderId: this.viewConfig.preRenderId,
22986
+ preRenderId: this.getPreRenderConfig().preRenderId,
22760
22987
  embedComponentType: this.viewConfig.embedComponentType,
22761
22988
  });
22762
22989
  if (this.shouldWaitForRenderPromise)
22763
22990
  await this.isReadyForRenderPromise;
22764
- if (!this.viewConfig.preRenderId) {
22991
+ if (!this.getPreRenderConfig().preRenderId) {
22765
22992
  logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
22766
22993
  return this;
22767
22994
  }
@@ -22792,14 +23019,12 @@ class TsEmbed {
22792
23019
  (_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
22793
23020
  this.hostElement.appendChild(this.insertedDomEl);
22794
23021
  this.syncPreRenderStyle();
22795
- const customContainer = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22796
- ? this.preRenderContainerEl
22797
- : null;
23022
+ const customContainer = this.getCustomPreRenderContainer();
22798
23023
  if (customContainer && !this.containerScrollListener) {
22799
23024
  this.containerScrollListener = () => this.syncPreRenderStyle();
22800
23025
  customContainer.addEventListener('scroll', this.containerScrollListener);
22801
23026
  }
22802
- if (!this.viewConfig.doNotTrackPreRenderSize) {
23027
+ if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
22803
23028
  const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
22804
23029
  this.resizeObserver = new ResizeObserver((entries) => {
22805
23030
  entries.forEach((entry) => {
@@ -22841,13 +23066,15 @@ class TsEmbed {
22841
23066
  logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
22842
23067
  return;
22843
23068
  }
23069
+ if (!this.getPreRenderPlaceHolderElement().isConnected) {
23070
+ logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
23071
+ return;
23072
+ }
22844
23073
  // Self-heal if the resolved container was remounted/detached, so we
22845
23074
  // never measure a stale node (which would collapse the wrapper).
22846
23075
  this.reconcilePreRenderContainer();
22847
23076
  const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
22848
- const containerEl = this.preRenderContainerEl && this.preRenderContainerEl !== document.body
22849
- ? this.preRenderContainerEl
22850
- : null;
23077
+ const containerEl = this.getCustomPreRenderContainer();
22851
23078
  const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
22852
23079
  const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
22853
23080
  const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
@@ -22865,7 +23092,7 @@ class TsEmbed {
22865
23092
  */
22866
23093
  hidePreRender() {
22867
23094
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
22868
- preRenderId: this.viewConfig.preRenderId,
23095
+ preRenderId: this.getPreRenderConfig().preRenderId,
22869
23096
  embedComponentType: this.viewConfig.embedComponentType,
22870
23097
  });
22871
23098
  logger$3.debug('HidePreRender Called');
@@ -22874,10 +23101,11 @@ class TsEmbed {
22874
23101
  logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
22875
23102
  return;
22876
23103
  }
23104
+ const { zIndex } = this.getPreRenderConfig();
22877
23105
  const preRenderHideStyles = {
22878
23106
  opacity: '0',
22879
23107
  pointerEvents: 'none',
22880
- zIndex: '-1000',
23108
+ zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
22881
23109
  position: 'absolute',
22882
23110
  top: '0',
22883
23111
  left: '0',
@@ -22902,10 +23130,11 @@ class TsEmbed {
22902
23130
  * @property {string} child - The HTML element ID for the PreRender child.
22903
23131
  */
22904
23132
  getPreRenderIds() {
23133
+ const preRenderId = this.getPreRenderConfig().preRenderId;
22905
23134
  return {
22906
- wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${this.viewConfig.preRenderId}`,
22907
- child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
22908
- placeHolder: `tsEmbed-pre-render-placeholder-${this.viewConfig.preRenderId}`,
23135
+ wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
23136
+ child: `tsEmbed-pre-render-child-${preRenderId}`,
23137
+ placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
22909
23138
  };
22910
23139
  }
22911
23140
  /**
@@ -23087,6 +23316,19 @@ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
23087
23316
  spotterShareConversationConfig,
23088
23317
  },
23089
23318
  };
23319
+ }
23320
+ function buildStarterPromptsAppInitData(initData, viewConfig) {
23321
+ var _a;
23322
+ const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
23323
+ if (!starterPrompts)
23324
+ return initData;
23325
+ return {
23326
+ ...initData,
23327
+ embedParams: {
23328
+ ...(initData.embedParams || {}),
23329
+ starterPrompts,
23330
+ },
23331
+ };
23090
23332
  }
23091
23333
 
23092
23334
  function buildSpotterVizAppInitData(initData, viewConfig) {
@@ -23152,6 +23394,10 @@ var Page;
23152
23394
  * Collections listing page
23153
23395
  */
23154
23396
  Page["Collections"] = "collections";
23397
+ /**
23398
+ * Liveboard schedules listing page
23399
+ */
23400
+ Page["LiveboardSchedules"] = "liveboard-schedules";
23155
23401
  })(Page || (Page = {}));
23156
23402
  /**
23157
23403
  * Define the initial state of column custom group accordions
@@ -23297,6 +23543,15 @@ class AppEmbed extends V1Embed {
23297
23543
  this.setIFrameHeight(frameHeight || this.defaultHeight);
23298
23544
  };
23299
23545
  if (this.viewConfig.fullHeight === true) {
23546
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
23547
+ this.viewConfig.lazyLoadingForFullHeight = true;
23548
+ }
23549
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
23550
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
23551
+ }
23552
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
23553
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
23554
+ }
23300
23555
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23301
23556
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23302
23557
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23319,7 +23574,8 @@ class AppEmbed extends V1Embed {
23319
23574
  const defaultAppInitData = await super.getAppInitData();
23320
23575
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
23321
23576
  const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
23322
- return buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
23577
+ const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
23578
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
23323
23579
  }
23324
23580
  /**
23325
23581
  * Constructs a map of parameters to be passed on to the
@@ -23330,7 +23586,7 @@ class AppEmbed extends V1Embed {
23330
23586
  return getQueryParamString(params, true);
23331
23587
  }
23332
23588
  getEmbedParamsObject() {
23333
- const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, updatedSpotterExperience, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23589
+ const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, updatedSpotterExperience, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23334
23590
  let params = {};
23335
23591
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
23336
23592
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -23384,7 +23640,7 @@ class AppEmbed extends V1Embed {
23384
23640
  }
23385
23641
  // Handle spotterChatConfig params
23386
23642
  if (spotterChatConfig) {
23387
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
23643
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23388
23644
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23389
23645
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23390
23646
  if (spotterFileUploadEnabled !== undefined) {
@@ -23393,6 +23649,9 @@ class AppEmbed extends V1Embed {
23393
23649
  if (enableStarterPrompts !== undefined) {
23394
23650
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23395
23651
  }
23652
+ if (openSpotterOnLiveboardByDefault !== undefined) {
23653
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
23654
+ }
23396
23655
  if (spotterFileUploadFileTypes !== undefined) {
23397
23656
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23398
23657
  }
@@ -23436,6 +23695,9 @@ class AppEmbed extends V1Embed {
23436
23695
  if (enable2ColumnLayout !== undefined) {
23437
23696
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23438
23697
  }
23698
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
23699
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
23700
+ }
23439
23701
  if (enableAskSage) {
23440
23702
  params[Param.enableAskSage] = enableAskSage;
23441
23703
  }
@@ -23448,6 +23710,9 @@ class AppEmbed extends V1Embed {
23448
23710
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23449
23711
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23450
23712
  }
23713
+ if (liveboardGutter !== undefined) {
23714
+ params[Param.LiveboardGutter] = liveboardGutter;
23715
+ }
23451
23716
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23452
23717
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23453
23718
  }
@@ -23558,6 +23823,8 @@ class AppEmbed extends V1Embed {
23558
23823
  return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
23559
23824
  case Page.Collections:
23560
23825
  return 'collections';
23826
+ case Page.LiveboardSchedules:
23827
+ return 'home/liveboard-schedules';
23561
23828
  case Page.Home:
23562
23829
  default:
23563
23830
  return 'home';
@@ -23843,6 +24110,15 @@ class LiveboardEmbed extends V1Embed {
23843
24110
  logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
23844
24111
  'Using full height with vizId might lead to unexpected behavior.');
23845
24112
  }
24113
+ if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
24114
+ this.viewConfig.lazyLoadingForFullHeight = true;
24115
+ }
24116
+ if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
24117
+ this.viewConfig.enableScrollableContainerLazyLoading = true;
24118
+ }
24119
+ if (this.viewConfig.lazyLoadingMargin === undefined) {
24120
+ this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
24121
+ }
23846
24122
  this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
23847
24123
  this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
23848
24124
  this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
@@ -23851,7 +24127,8 @@ class LiveboardEmbed extends V1Embed {
23851
24127
  }
23852
24128
  async getAppInitData() {
23853
24129
  const defaultAppInitData = await super.getAppInitData();
23854
- return buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24130
+ const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
24131
+ return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
23855
24132
  }
23856
24133
  /**
23857
24134
  * Construct a map of params to be passed on to the
@@ -23865,7 +24142,7 @@ class LiveboardEmbed extends V1Embed {
23865
24142
  getEmbedParamsObject() {
23866
24143
  let params = {};
23867
24144
  params = this.getBaseQueryParams(params);
23868
- const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, isEnhancedFilterInteractivityEnabled, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
24145
+ const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, isEnhancedFilterInteractivityEnabled, enableAskSage, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
23869
24146
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
23870
24147
  || this.viewConfig.preventPinboardFilterRemoval;
23871
24148
  if (fullHeight === true) {
@@ -23906,6 +24183,9 @@ class LiveboardEmbed extends V1Embed {
23906
24183
  if (enable2ColumnLayout !== undefined) {
23907
24184
  params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
23908
24185
  }
24186
+ if (isLiveboardAlwaysOn12ColLayout !== undefined) {
24187
+ params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
24188
+ }
23909
24189
  if (hideTabPanel) {
23910
24190
  params[Param.HideTabPanel] = hideTabPanel;
23911
24191
  }
@@ -23933,6 +24213,9 @@ class LiveboardEmbed extends V1Embed {
23933
24213
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
23934
24214
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
23935
24215
  }
24216
+ if (liveboardGutter !== undefined) {
24217
+ params[Param.LiveboardGutter] = liveboardGutter;
24218
+ }
23936
24219
  if (isPNGInScheduledEmailsEnabled !== undefined) {
23937
24220
  params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
23938
24221
  }
@@ -23950,7 +24233,7 @@ class LiveboardEmbed extends V1Embed {
23950
24233
  }
23951
24234
  // Handle spotterChatConfig params
23952
24235
  if (spotterChatConfig) {
23953
- const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
24236
+ const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
23954
24237
  setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
23955
24238
  setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
23956
24239
  if (spotterFileUploadEnabled !== undefined) {
@@ -23959,6 +24242,9 @@ class LiveboardEmbed extends V1Embed {
23959
24242
  if (enableStarterPrompts !== undefined) {
23960
24243
  params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
23961
24244
  }
24245
+ if (openSpotterOnLiveboardByDefault !== undefined) {
24246
+ params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
24247
+ }
23962
24248
  if (spotterFileUploadFileTypes !== undefined) {
23963
24249
  params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
23964
24250
  }
@@ -24204,7 +24490,7 @@ class LiveboardEmbed extends V1Embed {
24204
24490
  if (this.isRendered) {
24205
24491
  this.trigger(HostEvent.Navigate, path.substring(1));
24206
24492
  }
24207
- else if (this.viewConfig.preRenderId) {
24493
+ else if (this.getPreRenderConfig().preRenderId) {
24208
24494
  this.preRender(true);
24209
24495
  }
24210
24496
  else {
@@ -25077,10 +25363,11 @@ class SpotterEmbed extends TsEmbed {
25077
25363
  async getAppInitData() {
25078
25364
  const defaultAppInitData = await super.getAppInitData();
25079
25365
  const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
25080
- return buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
25366
+ const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
25367
+ return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
25081
25368
  }
25082
25369
  getEmbedParamsObject() {
25083
- const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
25370
+ const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
25084
25371
  const queryParams = this.getBaseQueryParams();
25085
25372
  queryParams[Param.SpotterEnabled] = true;
25086
25373
  // Boolean params
@@ -25093,6 +25380,7 @@ class SpotterEmbed extends TsEmbed {
25093
25380
  setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
25094
25381
  setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
25095
25382
  setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
25383
+ setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
25096
25384
  // Handle spotterChatConfig params
25097
25385
  if (spotterChatConfig) {
25098
25386
  const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
@@ -25842,4 +26130,4 @@ class AutoFrameRenderer extends TsEmbed {
25842
26130
  }
25843
26131
  }
25844
26132
 
25845
- export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BackgroundFormatType, BodylessConversation, ConditionalFormattingComparisonType, ConditionalFormattingOperator, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataLabelFilterOperator, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, LegendPosition, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SpotterQueryMode, TableContentDensity, TableTheme, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
26133
+ export { Action, AnswerService, AppEmbed, ApplicabilityLevel, AuthEvent, AuthFailureType, AuthStatus, AuthType, BackgroundFormatType, BodylessConversation, ConditionalFormattingComparisonType, ConditionalFormattingOperator, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataLabelFilterOperator, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, LegendPosition, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SpotterQueryMode, TableContentDensity, TableTheme, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };