@thoughtspot/visual-embed-sdk 1.39.2 → 1.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.spec.js +9 -0
  3. package/cjs/src/config.spec.js.map +1 -1
  4. package/cjs/src/embed/app.d.ts +75 -15
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +69 -9
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +378 -15
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/bodyless-conversation.d.ts +23 -7
  11. package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/bodyless-conversation.js +31 -5
  13. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  14. package/cjs/src/embed/bodyless-conversation.spec.js +8 -190
  15. package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/conversation.spec.js +28 -0
  17. package/cjs/src/embed/conversation.spec.js.map +1 -1
  18. package/cjs/src/embed/embedConfig.d.ts +9 -7
  19. package/cjs/src/embed/embedConfig.d.ts.map +1 -1
  20. package/cjs/src/embed/embedConfig.js +9 -7
  21. package/cjs/src/embed/embedConfig.js.map +1 -1
  22. package/cjs/src/embed/liveboard.d.ts +56 -17
  23. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  24. package/cjs/src/embed/liveboard.js +48 -4
  25. package/cjs/src/embed/liveboard.js.map +1 -1
  26. package/cjs/src/embed/liveboard.spec.js +218 -11
  27. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  28. package/cjs/src/errors.d.ts +1 -0
  29. package/cjs/src/errors.d.ts.map +1 -1
  30. package/cjs/src/errors.js +1 -0
  31. package/cjs/src/errors.js.map +1 -1
  32. package/cjs/src/index.d.ts +2 -2
  33. package/cjs/src/index.d.ts.map +1 -1
  34. package/cjs/src/index.js +2 -1
  35. package/cjs/src/index.js.map +1 -1
  36. package/cjs/src/react/all-types-export.d.ts +1 -1
  37. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  38. package/cjs/src/react/all-types-export.js +3 -2
  39. package/cjs/src/react/all-types-export.js.map +1 -1
  40. package/cjs/src/react/index.d.ts +73 -20
  41. package/cjs/src/react/index.d.ts.map +1 -1
  42. package/cjs/src/react/index.js +79 -42
  43. package/cjs/src/react/index.js.map +1 -1
  44. package/cjs/src/react/index.spec.js +438 -100
  45. package/cjs/src/react/index.spec.js.map +1 -1
  46. package/cjs/src/types.d.ts +331 -13
  47. package/cjs/src/types.d.ts.map +1 -1
  48. package/cjs/src/types.js +296 -8
  49. package/cjs/src/types.js.map +1 -1
  50. package/cjs/src/utils/global-styles.js +1 -1
  51. package/cjs/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  52. package/cjs/src/utils/graphql/nlsService/conversation-service.js +7 -1
  53. package/cjs/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
  54. package/cjs/src/utils/processTrigger.js +2 -1
  55. package/cjs/src/utils/processTrigger.js.map +1 -1
  56. package/cjs/src/utils.d.ts +6 -0
  57. package/cjs/src/utils.d.ts.map +1 -1
  58. package/cjs/src/utils.js +23 -3
  59. package/cjs/src/utils.js.map +1 -1
  60. package/cjs/src/utils.spec.js +237 -1
  61. package/cjs/src/utils.spec.js.map +1 -1
  62. package/dist/{index-CmEQfuE3.js → index-CAEHQGLc.js} +1 -1
  63. package/dist/src/embed/app.d.ts +75 -15
  64. package/dist/src/embed/app.d.ts.map +1 -1
  65. package/dist/src/embed/bodyless-conversation.d.ts +23 -7
  66. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  67. package/dist/src/embed/embedConfig.d.ts +9 -7
  68. package/dist/src/embed/embedConfig.d.ts.map +1 -1
  69. package/dist/src/embed/liveboard.d.ts +56 -17
  70. package/dist/src/embed/liveboard.d.ts.map +1 -1
  71. package/dist/src/errors.d.ts +1 -0
  72. package/dist/src/errors.d.ts.map +1 -1
  73. package/dist/src/index.d.ts +2 -2
  74. package/dist/src/index.d.ts.map +1 -1
  75. package/dist/src/react/all-types-export.d.ts +1 -1
  76. package/dist/src/react/all-types-export.d.ts.map +1 -1
  77. package/dist/src/react/index.d.ts +73 -20
  78. package/dist/src/react/index.d.ts.map +1 -1
  79. package/dist/src/types.d.ts +331 -13
  80. package/dist/src/types.d.ts.map +1 -1
  81. package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  82. package/dist/src/utils.d.ts +6 -0
  83. package/dist/src/utils.d.ts.map +1 -1
  84. package/dist/tsembed-react.es.js +568 -87
  85. package/dist/tsembed-react.js +568 -85
  86. package/dist/tsembed.es.js +486 -40
  87. package/dist/tsembed.js +484 -38
  88. package/dist/visual-embed-sdk-react-full.d.ts +545 -79
  89. package/dist/visual-embed-sdk-react.d.ts +545 -79
  90. package/dist/visual-embed-sdk.d.ts +473 -60
  91. package/lib/package.json +1 -1
  92. package/lib/src/config.spec.js +9 -0
  93. package/lib/src/config.spec.js.map +1 -1
  94. package/lib/src/embed/app.d.ts +75 -15
  95. package/lib/src/embed/app.d.ts.map +1 -1
  96. package/lib/src/embed/app.js +69 -9
  97. package/lib/src/embed/app.js.map +1 -1
  98. package/lib/src/embed/app.spec.js +380 -17
  99. package/lib/src/embed/app.spec.js.map +1 -1
  100. package/lib/src/embed/bodyless-conversation.d.ts +23 -7
  101. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  102. package/lib/src/embed/bodyless-conversation.js +30 -5
  103. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  104. package/lib/src/embed/bodyless-conversation.spec.js +9 -191
  105. package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
  106. package/lib/src/embed/conversation.spec.js +30 -2
  107. package/lib/src/embed/conversation.spec.js.map +1 -1
  108. package/lib/src/embed/embedConfig.d.ts +9 -7
  109. package/lib/src/embed/embedConfig.d.ts.map +1 -1
  110. package/lib/src/embed/embedConfig.js +9 -7
  111. package/lib/src/embed/embedConfig.js.map +1 -1
  112. package/lib/src/embed/liveboard.d.ts +56 -17
  113. package/lib/src/embed/liveboard.d.ts.map +1 -1
  114. package/lib/src/embed/liveboard.js +49 -5
  115. package/lib/src/embed/liveboard.js.map +1 -1
  116. package/lib/src/embed/liveboard.spec.js +218 -11
  117. package/lib/src/embed/liveboard.spec.js.map +1 -1
  118. package/lib/src/errors.d.ts +1 -0
  119. package/lib/src/errors.d.ts.map +1 -1
  120. package/lib/src/errors.js +1 -0
  121. package/lib/src/errors.js.map +1 -1
  122. package/lib/src/index.d.ts +2 -2
  123. package/lib/src/index.d.ts.map +1 -1
  124. package/lib/src/index.js +2 -2
  125. package/lib/src/index.js.map +1 -1
  126. package/lib/src/react/all-types-export.d.ts +1 -1
  127. package/lib/src/react/all-types-export.d.ts.map +1 -1
  128. package/lib/src/react/all-types-export.js +1 -1
  129. package/lib/src/react/all-types-export.js.map +1 -1
  130. package/lib/src/react/index.d.ts +73 -20
  131. package/lib/src/react/index.d.ts.map +1 -1
  132. package/lib/src/react/index.js +79 -43
  133. package/lib/src/react/index.js.map +1 -1
  134. package/lib/src/react/index.spec.js +441 -103
  135. package/lib/src/react/index.spec.js.map +1 -1
  136. package/lib/src/types.d.ts +331 -13
  137. package/lib/src/types.d.ts.map +1 -1
  138. package/lib/src/types.js +296 -8
  139. package/lib/src/types.js.map +1 -1
  140. package/lib/src/utils/global-styles.js +1 -1
  141. package/lib/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  142. package/lib/src/utils/graphql/nlsService/conversation-service.js +7 -1
  143. package/lib/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
  144. package/lib/src/utils/processTrigger.js +2 -1
  145. package/lib/src/utils/processTrigger.js.map +1 -1
  146. package/lib/src/utils.d.ts +6 -0
  147. package/lib/src/utils.d.ts.map +1 -1
  148. package/lib/src/utils.js +21 -2
  149. package/lib/src/utils.js.map +1 -1
  150. package/lib/src/utils.spec.js +238 -2
  151. package/lib/src/utils.spec.js.map +1 -1
  152. package/lib/src/visual-embed-sdk.d.ts +474 -61
  153. package/package.json +1 -1
  154. package/src/config.spec.ts +11 -0
  155. package/src/embed/app.spec.ts +486 -30
  156. package/src/embed/app.ts +133 -27
  157. package/src/embed/bodyless-conversation.spec.ts +9 -203
  158. package/src/embed/bodyless-conversation.ts +34 -10
  159. package/src/embed/conversation.spec.ts +40 -2
  160. package/src/embed/embedConfig.ts +10 -8
  161. package/src/embed/liveboard.spec.ts +259 -5
  162. package/src/embed/liveboard.ts +98 -27
  163. package/src/errors.ts +1 -0
  164. package/src/index.ts +2 -0
  165. package/src/react/all-types-export.ts +2 -1
  166. package/src/react/index.spec.tsx +558 -157
  167. package/src/react/index.tsx +117 -51
  168. package/src/types.ts +368 -50
  169. package/src/utils/global-styles.ts +1 -1
  170. package/src/utils/graphql/nlsService/conversation-service.ts +7 -1
  171. package/src/utils/processTrigger.ts +1 -1
  172. package/src/utils.spec.ts +279 -2
  173. package/src/utils.ts +28 -2
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.39.2 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.40.0 */
2
2
  'use client';
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
@@ -421,6 +421,12 @@
421
421
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
422
422
  */
423
423
  HomeLeftNavItem["Spotter"] = "spotter";
424
+ /**
425
+ * Favorites option in the insights left navigation,
426
+ * available when new navigation V3 is enabled.
427
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
428
+ */
429
+ HomeLeftNavItem["Favorites"] = "favorites";
424
430
  })(exports.HomeLeftNavItem || (exports.HomeLeftNavItem = {}));
425
431
  /**
426
432
  * A map of the supported runtime filter operations
@@ -1239,7 +1245,7 @@
1239
1245
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1240
1246
  * @example
1241
1247
  *```js
1242
- * liveboardEmbed.on(EmbedEvent.AnswerChartSwitcher, payload => {
1248
+ * liveboardEmbed.on(EmbedEvent.LiveboardInfo, payload => {
1243
1249
  * console.log('Liveboard details', payload);
1244
1250
  * })
1245
1251
  *```
@@ -1607,6 +1613,89 @@
1607
1613
  * @version SDK : 1.40.0 | ThoughtSpot: 10.11.0.cl
1608
1614
  */
1609
1615
  EmbedEvent["ExitPresentMode"] = "exitPresentMode";
1616
+ /**
1617
+ * Emitted when a user requests the full height lazy load data.
1618
+ * @version SDK : 1.39.0 | ThoughtSpot : 10.10.0.cl
1619
+ * @hidden
1620
+ */
1621
+ EmbedEvent["RequestVisibleEmbedCoordinates"] = "requestVisibleEmbedCoordinates";
1622
+ /**
1623
+ * Emitted when Spotter response is text data
1624
+ * @example
1625
+ * ```js
1626
+ * spotterEmbed.on(EmbedEvent.SpotterData, (payload) => {
1627
+ * console.log('payload', payload);
1628
+ * })
1629
+ *```
1630
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1631
+ */
1632
+ EmbedEvent["SpotterData"] = "SpotterData";
1633
+ /**
1634
+ * Emitted when user opens up the worksheet preview modal in Spotter embed.
1635
+ * @example
1636
+ * ```js
1637
+ * spotterEmbed.on(EmbedEvent.PreviewSpotterData, (payload) => {
1638
+ * console.log('payload', payload);
1639
+ * })
1640
+ *```
1641
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1642
+ */
1643
+ EmbedEvent["PreviewSpotterData"] = "PreviewSpotterData";
1644
+ /**
1645
+ * Emitted when the Spotter query is triggered in Spotter embed.
1646
+ * @example
1647
+ * ```js
1648
+ * spotterEmbed.on(EmbedEvent.SpotterQueryTriggered, (payload) => {
1649
+ * console.log('payload', payload);
1650
+ * })
1651
+ *```
1652
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1653
+ */
1654
+ EmbedEvent["SpotterQueryTriggered"] = "SpotterQueryTriggered";
1655
+ /**
1656
+ * Emitted when the last Spotter query is edited in Spotter embed.
1657
+ * @example
1658
+ * ```js
1659
+ * spotterEmbed.on(EmbedEvent.LastPromptEdited, (payload) => {
1660
+ * console.log('payload', payload);
1661
+ * })
1662
+ *```
1663
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1664
+ */
1665
+ EmbedEvent["LastPromptEdited"] = "LastPromptEdited";
1666
+ /**
1667
+ * Emitted when the last Spotter query is deleted in Spotter embed.
1668
+ * @example
1669
+ * ```js
1670
+ * spotterEmbed.on(EmbedEvent.LastPromptDeleted, (payload) => {
1671
+ * console.log('payload', payload);
1672
+ * })
1673
+ *```
1674
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1675
+ */
1676
+ EmbedEvent["LastPromptDeleted"] = "LastPromptDeleted";
1677
+ /**
1678
+ * Emitted when the coversation is reset in spotter embed.
1679
+ * @example
1680
+ * ```js
1681
+ * spotterEmbed.on(EmbedEvent.ResetSpotterConversation, (payload) => {
1682
+ * console.log('payload', payload);
1683
+ * })
1684
+ *```
1685
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
1686
+ */
1687
+ EmbedEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
1688
+ /**
1689
+ * Emitted when the *Spotter* is initialized.
1690
+ * @example
1691
+ * ```js
1692
+ * spotterEmbed.on(EmbedEvent.SpotterInit, (payload) => {
1693
+ * console.log('payload', payload);
1694
+ * })
1695
+ *```
1696
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
1697
+ */
1698
+ EmbedEvent["SpotterInit"] = "spotterInit";
1610
1699
  })(exports.EmbedEvent || (exports.EmbedEvent = {}));
1611
1700
  /**
1612
1701
  * Event types that can be triggered by the host application
@@ -1624,7 +1713,7 @@
1624
1713
  * // create the liveboard embed.
1625
1714
  *
1626
1715
  * liveboardEmbed.trigger(HostEvent.UpdateRuntimeFilters, [
1627
- * { columnName: 'state, operator: RuntimeFilterOp.EQ, values: ['california']}
1716
+ * { columnName: 'state', operator: RuntimeFilterOp.EQ, values: ["california"]}
1628
1717
  * ]);
1629
1718
  * ```
1630
1719
  * @example
@@ -1696,6 +1785,7 @@
1696
1785
  * done automatically on the most popular column.
1697
1786
  * @param - vizId [TS >= 9.8.0] - Optional. The GUID of the visualization to drill
1698
1787
  * in case of a Liveboard.
1788
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
1699
1789
  * @example
1700
1790
  * ```js
1701
1791
  * searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
@@ -1834,12 +1924,12 @@
1834
1924
  * Works with Search and Liveboard embed.
1835
1925
  * @param - { columnId: string,
1836
1926
  * name: string,
1837
- * type: INT64/CHAR/DATE,
1838
- * dataType: ATTRIBUTE/MEASURE }
1927
+ * type: ATTRIBUTE/MEASURE,
1928
+ * dataType: INT64/CHAR/DATE }
1839
1929
  * @example
1840
1930
  * ```js
1841
1931
  * searchEmbed.trigger(HostEvent.OpenFilter,
1842
- * {column: { columnId: '<column-GUID>', name: 'column name', type: 'INT64', dataType: 'ATTRIBUTE'}})
1932
+ * {column: { columnId: '<column-GUID>', name: 'column name', type: 'ATTRIBUTE', dataType: 'INT64'}})
1843
1933
  * ```
1844
1934
  * @example
1845
1935
  * ```js
@@ -1897,6 +1987,7 @@
1897
1987
  * @param
1898
1988
  * `vizId`- GUID of the saved Answer or visualization to pin to a Liveboard.
1899
1989
  * Optional when pinning a new chart or table generated from a Search query.
1990
+ * **Required** in Spotter Embed.
1900
1991
  * @param
1901
1992
  * `liveboardID` - GUID of the Liveboard to pin an Answer. If there is no Liveboard,
1902
1993
  * specify the `newLiveboardName` parameter to create a new Liveboard.
@@ -1944,6 +2035,12 @@
1944
2035
  * ```js
1945
2036
  * appEmbed.trigger(HostEvent.Pin)
1946
2037
  * ```
2038
+ * @example
2039
+ * ```js
2040
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.Pin, {
2041
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2042
+ * });
2043
+ * ```
1947
2044
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1948
2045
  */
1949
2046
  HostEvent["Pin"] = "pin";
@@ -2008,12 +2105,21 @@
2008
2105
  * Trigger the **Download PDF** action on an embedded Liveboard,
2009
2106
  * visualization or Answer.
2010
2107
  *
2108
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2109
+ *
2011
2110
  * **NOTE**: The **Download** > **PDF** action is available on
2012
2111
  * visualizations and Answers if the data is in tabular format.
2013
2112
  * @example
2014
2113
  * ```js
2015
2114
  * liveboardEmbed.trigger(HostEvent.DownloadAsPdf)
2016
2115
  * ```
2116
+ * @example
2117
+ * ```js
2118
+ * spotterEmbed.trigger(HostEvent.DownloadAsPdf, {
2119
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2120
+ * });
2121
+ * ```
2122
+ *
2017
2123
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2018
2124
  */
2019
2125
  HostEvent["DownloadAsPdf"] = "downloadAsPdf";
@@ -2037,6 +2143,12 @@
2037
2143
  * ```js
2038
2144
  * searchEmbed.trigger(HostEvent.MakeACopy)
2039
2145
  * ```
2146
+ * @example
2147
+ * ```js
2148
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.MakeACopy, {
2149
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2150
+ * });
2151
+ * ```
2040
2152
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2041
2153
  */
2042
2154
  HostEvent["MakeACopy"] = "makeACopy";
@@ -2109,6 +2221,8 @@
2109
2221
  * This event is not supported in visualization embed and search embed.
2110
2222
  * @param - object - To trigger the action for a specific visualization
2111
2223
  * in Liveboard embed, pass in `vizId` as a key.
2224
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2225
+ *
2112
2226
  * @example
2113
2227
  * ```js
2114
2228
  * liveboardEmbed.trigger(HostEvent.Edit)
@@ -2117,6 +2231,18 @@
2117
2231
  * liveboardEmbed.trigger(HostEvent.Edit, {vizId:
2118
2232
  * '730496d6-6903-4601-937e-2c691821af3c'})
2119
2233
  * ```
2234
+ * @example
2235
+ * ```js
2236
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.Edit, {
2237
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2238
+ * });
2239
+ * ```
2240
+ * @example
2241
+ * ```js
2242
+ * const editResponse = await spotterEmbed.trigger(HostEvent.Edit, {
2243
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2244
+ * });
2245
+ * ```
2120
2246
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
2121
2247
  */
2122
2248
  HostEvent["Edit"] = "edit";
@@ -2164,6 +2290,16 @@
2164
2290
  * );
2165
2291
  * })
2166
2292
  * ```
2293
+ * @example
2294
+ * ```js
2295
+ * spotterEmbed.trigger(HostEvent.GetTML, {
2296
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
2297
+ * }).then((tml) => {
2298
+ * console.log(
2299
+ * tml.answer.search_query // TML representation of the search query
2300
+ * );
2301
+ * })
2302
+ * ```
2167
2303
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
2168
2304
  * @important
2169
2305
  */
@@ -2227,6 +2363,7 @@
2227
2363
  /**
2228
2364
  * Trigger the **Download** action on charts in
2229
2365
  * the embedded view.
2366
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2230
2367
  * @example
2231
2368
  * ```js
2232
2369
  * liveboardEmbed.trigger(HostEvent.Download, {vizId:
@@ -2235,6 +2372,11 @@
2235
2372
  * ```js
2236
2373
  * embed.trigger(HostEvent.Download)
2237
2374
  * ```
2375
+ * ```js
2376
+ * spotterEmbed.trigger(HostEvent.Download, {
2377
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
2378
+ * });
2379
+ * ```
2238
2380
  * @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1.sw
2239
2381
  * Use {@link DownloadAsPng}
2240
2382
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
@@ -2251,13 +2393,19 @@
2251
2393
  * vizEmbed.trigger(HostEvent.DownloadAsPng)
2252
2394
  *
2253
2395
  * searchEmbed.trigger(HostEvent.DownloadAsPng)
2396
+ *
2397
+ * spotterEmbed.trigger(HostEvent.DownloadAsPng, {
2398
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
2399
+ * })
2254
2400
  * ```
2401
+ *
2255
2402
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.1.sw
2256
2403
  */
2257
2404
  HostEvent["DownloadAsPng"] = "downloadAsPng";
2258
2405
  /**
2259
2406
  * Trigger the **Download** > **CSV** action on tables in
2260
2407
  * the embedded view.
2408
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2261
2409
  * @example
2262
2410
  * ```js
2263
2411
  * liveboardEmbed.trigger(HostEvent.DownloadAsCsv, {vizId:
@@ -2269,12 +2417,18 @@
2269
2417
  * ```js
2270
2418
  * searchEmbed.trigger(HostEvent.DownloadAsCsv)
2271
2419
  * ```
2420
+ * ```js
2421
+ * spotterEmbed.trigger(HostEvent.DownloadAsCsv, {
2422
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
2423
+ * })
2424
+ * ```
2272
2425
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
2273
2426
  */
2274
2427
  HostEvent["DownloadAsCsv"] = "downloadAsCSV";
2275
2428
  /**
2276
2429
  * Trigger the **Download** > **XLSX** action on tables
2277
2430
  * in the embedded view.
2431
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2278
2432
  * @example
2279
2433
  * ```js
2280
2434
  * liveboardEmbed.trigger(HostEvent.DownloadAsXlsx, {vizId:
@@ -2286,6 +2440,11 @@
2286
2440
  * ```js
2287
2441
  * searchEmbed.trigger(HostEvent.DownloadAsXlsx)
2288
2442
  * ```
2443
+ * ```js
2444
+ * spotterEmbed.trigger(HostEvent.downloadAsXLSX, {
2445
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
2446
+ * })
2447
+ * ```
2289
2448
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
2290
2449
  */
2291
2450
  HostEvent["DownloadAsXlsx"] = "downloadAsXLSX";
@@ -2305,6 +2464,7 @@
2305
2464
  /**
2306
2465
  * Trigger the **Save** action on a Liveboard or Answer.
2307
2466
  * Saves the changes.
2467
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2308
2468
  * @example
2309
2469
  * ```js
2310
2470
  * liveboardEmbed.trigger(HostEvent.Save)
@@ -2312,6 +2472,11 @@
2312
2472
  * ```js
2313
2473
  * searchEmbed.trigger(HostEvent.Save)
2314
2474
  * ```
2475
+ * ```js
2476
+ * spotterEmbed.trigger(HostEvent.Save, {
2477
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
2478
+ * })
2479
+ * ```
2315
2480
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
2316
2481
  */
2317
2482
  HostEvent["Save"] = "save";
@@ -2595,7 +2760,7 @@
2595
2760
  HostEvent["ResetLiveboardPersonalisedView"] = "ResetLiveboardPersonalisedView";
2596
2761
  /**
2597
2762
  * Triggers an action to update Parameter values on embedded
2598
- * Answers and Liveboard.
2763
+ * Answers, Liveboard and Spotter answer in Edit mode.
2599
2764
  *
2600
2765
  * @example
2601
2766
  * ```js
@@ -2609,11 +2774,19 @@
2609
2774
  HostEvent["UpdateParameters"] = "UpdateParameters";
2610
2775
  /**
2611
2776
  * Triggers GetParameters to fetch the runtime Parameters.
2777
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2612
2778
  * ```js
2613
2779
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
2614
2780
  * console.log('parameters', parameter);
2615
2781
  * });
2616
2782
  *```
2783
+ *```js
2784
+ * spotterEmbed.trigger(HostEvent.GetParameters, {
2785
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
2786
+ * }).then((parameter) => {
2787
+ * console.log('parameters', parameter);
2788
+ * });
2789
+ *```
2617
2790
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
2618
2791
  */
2619
2792
  HostEvent["GetParameters"] = "GetParameters";
@@ -2645,7 +2818,7 @@
2645
2818
  * @param - optional attributes to set Answer properties.
2646
2819
  * `name` - Name string for the Answer.
2647
2820
  * `description` - Description text for the Answer.
2648
- *
2821
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2649
2822
  * @example
2650
2823
  * ```js
2651
2824
  * const saveAnswerResponse = await searchEmbed.trigger(HostEvent.SaveAnswer, {
@@ -2653,6 +2826,14 @@
2653
2826
  * description: "Total sales by states in MidWest"
2654
2827
  * });
2655
2828
  * ```
2829
+ * @example
2830
+ * ```js
2831
+ * const saveAnswerResponse = await spotterEmbed.trigger(HostEvent.SaveAnswer, {
2832
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c',
2833
+ * name: "Sales by states",
2834
+ * description: "Total sales by states in MidWest"
2835
+ * });
2836
+ * ```
2656
2837
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
2657
2838
  */
2658
2839
  HostEvent["SaveAnswer"] = "saveAnswer";
@@ -2681,6 +2862,70 @@
2681
2862
  * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
2682
2863
  */
2683
2864
  HostEvent["TransformTableVizData"] = "TransformTableVizData";
2865
+ /**
2866
+ * Triggers a search operation with the search tokens specified in
2867
+ * the search query string in spotter embed.
2868
+ * @param - `query`: Text string in Natural Language format
2869
+ * @param - `executeSearch`: Boolean to execute search and update search query
2870
+ * @example
2871
+ * ```js
2872
+ * spotterEmbed.trigger(HostEvent.SpotterSearch, {
2873
+ * query: 'revenue per year',
2874
+ * executeSearch: true,
2875
+ * })
2876
+ * ```
2877
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2878
+ */
2879
+ HostEvent["SpotterSearch"] = "SpotterSearch";
2880
+ /**
2881
+ * Edits the last prompt in spotter embed.
2882
+ * @param - `query`: Text string
2883
+ * @example
2884
+ * ```js
2885
+ * spotterEmbed.trigger(HostEvent.EditLastPrompt, "revenue per year");
2886
+ * ```
2887
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2888
+ */
2889
+ HostEvent["EditLastPrompt"] = "EditLastPrompt";
2890
+ /**
2891
+ * Opens the Worksheet preview modal in Spotter Embed.
2892
+ * @example
2893
+ * ```js
2894
+ * spotterEmbed.trigger(HostEvent.PreviewSpotterData);
2895
+ * ```
2896
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2897
+ */
2898
+ HostEvent["PreviewSpotterData"] = "PreviewSpotterData";
2899
+ /**
2900
+ * Resets the Spotter Embed Conversation.
2901
+ * @example
2902
+ * ```js
2903
+ * spotterEmbed.trigger(HostEvent.ResetSpotterConversation);
2904
+ * ```
2905
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2906
+ */
2907
+ HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
2908
+ /**
2909
+ * Deletes the last prompt in spotter embed.
2910
+ * @example
2911
+ * ```js
2912
+ * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
2913
+ * ```
2914
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2915
+ */
2916
+ HostEvent["DeleteLastPrompt"] = "DeleteLastPrompt";
2917
+ /**
2918
+ * Toggle the visualization to chart or table view.
2919
+ * @param - `vizId ` refers to the answer id in spotter Embed, it is required in spotter Embed.
2920
+ * @example
2921
+ * ```js
2922
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, {
2923
+ * vizId:'b535c760-8bbe-4e6f-bb26-af56b4129a1e'
2924
+ * });
2925
+ *```
2926
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2927
+ */
2928
+ HostEvent["AnswerChartSwitcher"] = "answerChartSwitcher";
2684
2929
  /**
2685
2930
  * @hidden
2686
2931
  * Trigger exit from presentation mode when user exits fullscreen.
@@ -2691,6 +2936,30 @@
2691
2936
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
2692
2937
  */
2693
2938
  HostEvent["ExitPresentMode"] = "exitPresentMode";
2939
+ /**
2940
+ * Triggers the full height lazy load data.
2941
+ * @example
2942
+ * ```js
2943
+ * liveboardEmbed.on(EmbedEvent.RequestVisibleEmbedCoordinates, (payload) => {
2944
+ * console.log(payload);
2945
+ * });
2946
+ * ```
2947
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
2948
+ *
2949
+ * @hidden
2950
+ */
2951
+ HostEvent["VisibleEmbedCoordinates"] = "visibleEmbedCoordinates";
2952
+ /**
2953
+ * Trigger the *Ask Spotter* action for visualizations
2954
+ * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
2955
+ * @example
2956
+ * ```js
2957
+ * spotterEmbed.trigger(HostEvent.AskSpotter,
2958
+ * {vizId:'730496d6-6903-4601-937e-2c691821af3c'})
2959
+ * ```
2960
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
2961
+ */
2962
+ HostEvent["AskSpotter"] = "AskSpotter";
2694
2963
  })(exports.HostEvent || (exports.HostEvent = {}));
2695
2964
  /**
2696
2965
  * The different visual modes that the data sources panel within
@@ -2796,6 +3065,7 @@
2796
3065
  Param["Query"] = "query";
2797
3066
  Param["HideHomepageLeftNav"] = "hideHomepageLeftNav";
2798
3067
  Param["ModularHomeExperienceEnabled"] = "modularHomeExperience";
3068
+ Param["ListPageVersion"] = "listpageVersion";
2799
3069
  Param["PendoTrackingKey"] = "additionalPendoKey";
2800
3070
  Param["LiveboardHeaderSticky"] = "isLiveboardHeaderSticky";
2801
3071
  Param["IsProductTour"] = "isProductTour";
@@ -2830,10 +3100,12 @@
2830
3100
  Param["DataSourceId"] = "dataSourceId";
2831
3101
  Param["preAuthCache"] = "preAuthCache";
2832
3102
  Param["ShowSpotterLimitations"] = "showSpotterLimitations";
2833
- Param["CoverAndFilterOptionInPDF"] = "coverAndFilterOptionInPDF";
3103
+ Param["CoverAndFilterOptionInPDF"] = "arePdfCoverFilterPageCheckboxesEnabled";
2834
3104
  Param["PrimaryAction"] = "primaryAction";
2835
3105
  Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
2836
3106
  Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
3107
+ Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
3108
+ Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
2837
3109
  })(Param || (Param = {}));
2838
3110
  /**
2839
3111
  * ThoughtSpot application pages include actions and menu commands
@@ -4056,6 +4328,22 @@
4056
4328
  * @version SDK: 1.37.0 | ThoughtSpot Cloud: 10.8.0.cl
4057
4329
  */
4058
4330
  Action["CoverAndFilterOptionInPDF"] = "coverAndFilterOptionInPDF";
4331
+ /**
4332
+ * Action ID for hide or disable the
4333
+ * Spotter in conversation training widget.
4334
+ * The Add to Coaching feature is currently in beta
4335
+ * and is disabled by default on embed deployments.
4336
+ * To enable this feature on your instance,
4337
+ * contact ThoughtSpot Support.
4338
+ * @example
4339
+ * ```js
4340
+ * hiddenAction: [Action.InConversationTraining]
4341
+ * disabledActions: [Action.InConversationTraining]
4342
+ *
4343
+ * ```
4344
+ * @version SDK: 1.39.0 | ThoughtSpot Cloud: 10.10.0.cl
4345
+ */
4346
+ Action["InConversationTraining"] = "InConversationTraining";
4059
4347
  })(exports.Action || (exports.Action = {}));
4060
4348
  var PrefetchFeatures;
4061
4349
  (function (PrefetchFeatures) {
@@ -4439,7 +4727,6 @@
4439
4727
  function removeTypename(obj) {
4440
4728
  if (!obj || typeof obj !== 'object')
4441
4729
  return obj;
4442
- // eslint-disable-next-line no-restricted-syntax
4443
4730
  for (const key in obj) {
4444
4731
  if (key === '__typename') {
4445
4732
  delete obj[key];
@@ -4468,7 +4755,11 @@
4468
4755
  if (!(element === null || element === void 0 ? void 0 : element.style))
4469
4756
  return;
4470
4757
  Object.keys(styleProperties).forEach((styleProperty) => {
4471
- element.style[styleProperty] = styleProperties[styleProperty].toString();
4758
+ const styleKey = styleProperty;
4759
+ const value = styleProperties[styleKey];
4760
+ if (value !== undefined) {
4761
+ element.style[styleKey] = value.toString();
4762
+ }
4472
4763
  });
4473
4764
  };
4474
4765
  /**
@@ -4596,6 +4887,22 @@
4596
4887
  }
4597
4888
  }
4598
4889
  logger$3.warn('Exit fullscreen API is not supported by this browser.');
4890
+ };
4891
+ const calculateVisibleElementData = (element) => {
4892
+ const rect = element.getBoundingClientRect();
4893
+ const windowHeight = window.innerHeight;
4894
+ const windowWidth = window.innerWidth;
4895
+ const frameRelativeTop = Math.max(rect.top, 0);
4896
+ const frameRelativeLeft = Math.max(rect.left, 0);
4897
+ const frameRelativeBottom = Math.min(windowHeight, rect.bottom);
4898
+ const frameRelativeRight = Math.min(windowWidth, rect.right);
4899
+ const data = {
4900
+ top: Math.max(0, rect.top * -1),
4901
+ height: Math.max(0, frameRelativeBottom - frameRelativeTop),
4902
+ left: Math.max(0, rect.left * -1),
4903
+ width: Math.max(0, frameRelativeRight - frameRelativeLeft),
4904
+ };
4905
+ return data;
4599
4906
  };
4600
4907
 
4601
4908
  /**
@@ -6891,6 +7198,7 @@
6891
7198
  CSP_FRAME_HOST_VIOLATION_LOG_MESSAGE: 'Please set up CSP correctly for the application to start working. For more information, see https://developers.thoughtspot.com/docs/security-settings#csp-viz-embed-hosts. \n If the issue persists, refer to https://developers.thoughtspot.com/docs/security-settings#csp-viz-embed-hosts',
6892
7199
  MISSING_REPORTING_OBSERVER: 'ReportingObserver not supported',
6893
7200
  RENDER_CALLED_BEFORE_INIT: 'Looks like render was called before calling init, the render won\'t start until init is called.\nFor more info check\n1. https://developers.thoughtspot.com/docs/Function_init#_init\n2.https://developers.thoughtspot.com/docs/getting-started#initSdk',
7201
+ SPOTTER_AGENT_NOT_INITIALIZED: 'SpotterAgent not initialized',
6894
7202
  };
6895
7203
 
6896
7204
  const EndPoints = {
@@ -7098,13 +7406,14 @@
7098
7406
  *
7099
7407
  * @example
7100
7408
  * ```js
7409
+ * import { getInitConfig } from '@thoughtspot/visual-embed-sdk';
7410
+ * // Call the getInitConfig method to retrieve the embed configuration
7101
7411
  * const config = getInitConfig();
7412
+ * // Log the configuration settings
7102
7413
  * console.log(config);
7103
7414
  * ```
7104
- * @example
7105
- *
7106
- * Returns the `EmbedConfig` object, which
7107
- * contains the configuration settings used to
7415
+ * Returns the link:https://developers.thoughtspot.com/docs/Interface_EmbedConfig[EmbedConfig]
7416
+ * object, which contains the configuration settings used to
7108
7417
  * initialize the SDK, including the following:
7109
7418
  *
7110
7419
  * - `thoughtSpotHost` - ThoughtSpot host URL
@@ -7113,9 +7422,10 @@
7113
7422
  * - `customizations` - Style, text, and icon customization settings
7114
7423
  * that were applied during the SDK initialization.
7115
7424
  *
7116
- * For a comprehensive list of embed configuration settings,
7117
- * see link:https://developers.thoughtspot.com/docs/Interface_EmbedConfig[Developer Documentation].
7425
+ * The following JSON output shows the embed configuration
7426
+ * settings returned from the code in the previous example:
7118
7427
  *
7428
+ * @example
7119
7429
  * ```json
7120
7430
  * {
7121
7431
  * "thoughtSpotHost": "https://{ThoughtSpot-Host}",
@@ -7137,7 +7447,7 @@
7137
7447
  * "authTriggerContainer": "#your-own-div"
7138
7448
  * }
7139
7449
  * ```
7140
- * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.cl, and later
7450
+ * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw, and later
7141
7451
  * @group Global methods
7142
7452
  */
7143
7453
  const getEmbedConfig = () => getValueFromWindow(configKey) || {};
@@ -15513,7 +15823,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
15513
15823
  return e;
15514
15824
  }
15515
15825
 
15516
- var name="@thoughtspot/visual-embed-sdk";var version$1="1.39.2";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={classnames:"^2.3.1",eventemitter3:"^4.0.7",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^9.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-typescript":"^4.2.5","eslint-plugin-comment-length":"2.2.1","eslint-plugin-import":"^2.31.0","eslint-plugin-jsdoc":"^50.6.9","eslint-plugin-prettier":"^5.2.5","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","fs-extra":"^10.0.0","gh-pages":"6.3.0",globals:"^16.0.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"4.24.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","typescript-eslint":"^8.29.1","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^6.3.5"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version$1,description:description,module:module,main:main,types:types,files:files,exports:exports$1,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"31 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
15826
+ var name="@thoughtspot/visual-embed-sdk";var version$1="1.40.0";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={classnames:"^2.3.1",eventemitter3:"^4.0.7",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^9.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-typescript":"^4.2.5","eslint-plugin-comment-length":"2.2.1","eslint-plugin-import":"^2.31.0","eslint-plugin-jsdoc":"^50.6.9","eslint-plugin-prettier":"^5.2.5","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","fs-extra":"^10.0.0","gh-pages":"6.3.0",globals:"^16.0.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"4.24.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","typescript-eslint":"^8.29.1","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^6.3.5"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version$1,description:description,module:module,main:main,types:types,files:files,exports:exports$1,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"31 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
15517
15827
 
15518
15828
  /**
15519
15829
  * Reloads the ThoughtSpot iframe.
@@ -15536,7 +15846,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
15536
15846
  * @param channel
15537
15847
  */
15538
15848
  function postIframeMessage(iFrame, message, thoughtSpotHost, channel) {
15539
- return iFrame.contentWindow.postMessage(message, thoughtSpotHost, [channel === null || channel === void 0 ? void 0 : channel.port2]);
15849
+ var _a;
15850
+ return (_a = iFrame.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(message, thoughtSpotHost, [channel === null || channel === void 0 ? void 0 : channel.port2]);
15540
15851
  }
15541
15852
  const TRIGGER_TIMEOUT = 30000;
15542
15853
  /**
@@ -17249,7 +17560,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17249
17560
  /**
17250
17561
  * Pages within the ThoughtSpot app that can be embedded.
17251
17562
  */
17252
- // eslint-disable-next-line no-shadow
17253
17563
  exports.Page = void 0;
17254
17564
  (function (Page) {
17255
17565
  /**
@@ -17335,16 +17645,46 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17335
17645
  */
17336
17646
  HomePage["Modular"] = "v2";
17337
17647
  })(HomePage || (HomePage = {}));
17648
+ /**
17649
+ * Define the version of the list page
17650
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
17651
+ */
17652
+ var ListPage;
17653
+ (function (ListPage) {
17654
+ /**
17655
+ * List (v2) is the traditional List Experience.
17656
+ * It serves as the foundational version of the list page.
17657
+ */
17658
+ ListPage["List"] = "v2";
17659
+ /**
17660
+ * ListWithUXChanges (v3) introduces the new updated list page with UX changes.
17661
+ */
17662
+ ListPage["ListWithUXChanges"] = "v3";
17663
+ })(ListPage || (ListPage = {}));
17338
17664
  /**
17339
17665
  * Embeds full ThoughtSpot experience in a host application.
17340
17666
  * @group Embed components
17341
17667
  */
17342
17668
  let AppEmbed$1 = class AppEmbed extends V1Embed {
17343
- // eslint-disable-next-line no-useless-constructor
17344
17669
  constructor(domSelector, viewConfig) {
17345
17670
  viewConfig.embedComponentType = 'AppEmbed';
17346
17671
  super(domSelector, viewConfig);
17347
17672
  this.defaultHeight = '100%';
17673
+ this.sendFullHeightLazyLoadData = () => {
17674
+ const data = calculateVisibleElementData(this.iFrame);
17675
+ this.trigger(exports.HostEvent.VisibleEmbedCoordinates, data);
17676
+ };
17677
+ /**
17678
+ * This is a handler for the RequestVisibleEmbedCoordinates event.
17679
+ * It is used to send the visible coordinates data to the host application.
17680
+ * @param data The event payload
17681
+ * @param responder The responder function
17682
+ */
17683
+ this.requestVisibleEmbedCoordinatesHandler = (data, responder) => {
17684
+ logger$3.info('Sending RequestVisibleEmbedCoordinates', data);
17685
+ const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
17686
+ responder({ type: exports.EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
17687
+ };
17348
17688
  /**
17349
17689
  * Set the iframe height as per the computed height received
17350
17690
  * from the ThoughtSpot app.
@@ -17353,6 +17693,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17353
17693
  this.updateIFrameHeight = (data) => {
17354
17694
  var _a;
17355
17695
  this.setIFrameHeight(Math.max(data.data, (_a = this.iFrame) === null || _a === void 0 ? void 0 : _a.scrollHeight));
17696
+ this.sendFullHeightLazyLoadData();
17356
17697
  };
17357
17698
  this.embedIframeCenter = (data, responder) => {
17358
17699
  const obj = this.getIframeCenter();
@@ -17382,6 +17723,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17382
17723
  this.on(exports.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
17383
17724
  this.on(exports.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
17384
17725
  this.on(exports.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
17726
+ this.on(exports.EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
17385
17727
  }
17386
17728
  }
17387
17729
  /**
@@ -17389,9 +17731,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17389
17731
  * embedded Liveboard or visualization.
17390
17732
  */
17391
17733
  getEmbedParams() {
17392
- const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false,
17393
- /* eslint-disable-next-line max-len */
17394
- dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
17734
+ const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
17395
17735
  let params = {};
17396
17736
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
17397
17737
  params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -17407,6 +17747,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17407
17747
  params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
17408
17748
  params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
17409
17749
  params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
17750
+ params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
17410
17751
  params = this.getBaseQueryParams(params);
17411
17752
  if (hideObjectSearch) {
17412
17753
  params[Param.HideObjectSearch] = !!hideObjectSearch;
@@ -17419,6 +17760,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17419
17760
  }
17420
17761
  if (fullHeight === true) {
17421
17762
  params[Param.fullHeight] = true;
17763
+ if (this.viewConfig.lazyLoadingForFullHeight) {
17764
+ params[Param.IsLazyLoadingForEmbedEnabled] = true;
17765
+ params[Param.RootMarginForLazyLoad] = this.viewConfig.lazyLoadingMargin;
17766
+ }
17422
17767
  }
17423
17768
  if (tag) {
17424
17769
  params[Param.Tag] = tag;
@@ -17439,7 +17784,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17439
17784
  params[Param.enableAskSage] = enableAskSage;
17440
17785
  }
17441
17786
  if (isOnBeforeGetVizDataInterceptEnabled) {
17442
- /* eslint-disable-next-line max-len */
17443
17787
  params[Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
17444
17788
  }
17445
17789
  if (homePageSearchBarMode) {
@@ -17460,11 +17804,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17460
17804
  === DataPanelCustomColumnGroupsAccordionState.COLLAPSE_ALL
17461
17805
  || dataPanelCustomGroupsAccordionInitialState
17462
17806
  === DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST) {
17463
- /* eslint-disable-next-line max-len */
17464
17807
  params[Param.DataPanelCustomGroupsAccordionInitialState] = dataPanelCustomGroupsAccordionInitialState;
17465
17808
  }
17466
17809
  else {
17467
- /* eslint-disable-next-line max-len */
17468
17810
  params[Param.DataPanelCustomGroupsAccordionInitialState] = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL;
17469
17811
  }
17470
17812
  if (discoveryExperience) {
@@ -17477,6 +17819,10 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17477
17819
  if (discoveryExperience.homePage === HomePage.Modular) {
17478
17820
  params[Param.ModularHomeExperienceEnabled] = true;
17479
17821
  }
17822
+ // listPageVersion v3 will enable the new list page
17823
+ if (discoveryExperience.listPageVersion === ListPage.ListWithUXChanges) {
17824
+ params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
17825
+ }
17480
17826
  }
17481
17827
  const queryParams = getQueryParamString(params, true);
17482
17828
  return queryParams;
@@ -17564,6 +17910,30 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17564
17910
  this.iFrame.src = `${iframeSrc.split(currentPath)[0]}${currentPath}/${path.replace(/^\/?#?\//, '')}`;
17565
17911
  }
17566
17912
  }
17913
+ /**
17914
+ * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
17915
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
17916
+ */
17917
+ destroy() {
17918
+ super.destroy();
17919
+ this.unregisterLazyLoadEvents();
17920
+ }
17921
+ postRender() {
17922
+ this.registerLazyLoadEvents();
17923
+ }
17924
+ registerLazyLoadEvents() {
17925
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
17926
+ // TODO: Use passive: true, install modernizr to check for passive
17927
+ window.addEventListener('resize', this.sendFullHeightLazyLoadData);
17928
+ window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
17929
+ }
17930
+ }
17931
+ unregisterLazyLoadEvents() {
17932
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
17933
+ window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
17934
+ window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
17935
+ }
17936
+ }
17567
17937
  /**
17568
17938
  * Renders the embedded application pages in the ThoughtSpot app.
17569
17939
  * @param renderOptions An object containing the page ID
@@ -17573,6 +17943,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
17573
17943
  await super.render();
17574
17944
  const src = this.getIFrameSrc();
17575
17945
  await this.renderV1Embed(src);
17946
+ this.postRender();
17576
17947
  return this;
17577
17948
  }
17578
17949
  };
@@ -17614,7 +17985,7 @@ query GetEurekaVizSnapshots(
17614
17985
  return;
17615
17986
  }
17616
17987
  const previewStyles = `
17617
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ag-grid-community@32.0.2/styles/ag-grid.min.css">
17988
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ag-grid-community@32.0.2/styles/ag-grid.min.css" integrity="sha384-PvEsKa6emq5KYa9mf+Q7eYF5C2OCacYzZ+hBngp21NA4o1A9iU9smnytEmqUFbEZ" crossorigin="anonymous">
17618
17989
  <style id="ts-preview-style">
17619
17990
  .ts-viz-preview-loader {
17620
17991
  position: absolute;
@@ -17677,6 +18048,21 @@ query GetEurekaVizSnapshots(
17677
18048
  viewConfig.embedComponentType = 'LiveboardEmbed';
17678
18049
  super(domSelector, viewConfig);
17679
18050
  this.defaultHeight = 500;
18051
+ this.sendFullHeightLazyLoadData = () => {
18052
+ const data = calculateVisibleElementData(this.iFrame);
18053
+ this.trigger(exports.HostEvent.VisibleEmbedCoordinates, data);
18054
+ };
18055
+ /**
18056
+ * This is a handler for the RequestVisibleEmbedCoordinates event.
18057
+ * It is used to send the visible coordinates data to the host application.
18058
+ * @param data The event payload
18059
+ * @param responder The responder function
18060
+ */
18061
+ this.requestVisibleEmbedCoordinatesHandler = (data, responder) => {
18062
+ logger$3.info('Sending RequestVisibleEmbedCoordinates', data);
18063
+ const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
18064
+ responder({ type: exports.EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
18065
+ };
17680
18066
  /**
17681
18067
  * Set the iframe height as per the computed height received
17682
18068
  * from the ThoughtSpot app.
@@ -17684,6 +18070,7 @@ query GetEurekaVizSnapshots(
17684
18070
  */
17685
18071
  this.updateIFrameHeight = (data) => {
17686
18072
  this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
18073
+ this.sendFullHeightLazyLoadData();
17687
18074
  };
17688
18075
  this.embedIframeCenter = (data, responder) => {
17689
18076
  const obj = this.getIframeCenter();
@@ -17717,6 +18104,7 @@ query GetEurekaVizSnapshots(
17717
18104
  this.on(exports.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
17718
18105
  this.on(exports.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
17719
18106
  this.on(exports.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
18107
+ this.on(exports.EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
17720
18108
  }
17721
18109
  }
17722
18110
  /**
@@ -17726,11 +18114,15 @@ query GetEurekaVizSnapshots(
17726
18114
  getEmbedParams() {
17727
18115
  let params = {};
17728
18116
  params = this.getBaseQueryParams(params);
17729
- const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = false, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
18117
+ const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = false, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
17730
18118
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
17731
18119
  || this.viewConfig.preventPinboardFilterRemoval;
17732
18120
  if (fullHeight === true) {
17733
18121
  params[Param.fullHeight] = true;
18122
+ if (this.viewConfig.lazyLoadingForFullHeight) {
18123
+ params[Param.IsLazyLoadingForEmbedEnabled] = true;
18124
+ params[Param.RootMarginForLazyLoad] = this.viewConfig.lazyLoadingMargin;
18125
+ }
17734
18126
  }
17735
18127
  if (defaultHeight) {
17736
18128
  this.defaultHeight = defaultHeight;
@@ -17778,9 +18170,6 @@ query GetEurekaVizSnapshots(
17778
18170
  if (dataSourceId !== undefined) {
17779
18171
  params[Param.DataSourceId] = dataSourceId;
17780
18172
  }
17781
- if (coverAndFilterOptionInPDF !== undefined) {
17782
- params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
17783
- }
17784
18173
  if (isLiveboardStylingAndGroupingEnabled !== undefined) {
17785
18174
  params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
17786
18175
  }
@@ -17791,6 +18180,7 @@ query GetEurekaVizSnapshots(
17791
18180
  params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
17792
18181
  params[Param.DataPanelV2Enabled] = dataPanelV2;
17793
18182
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
18183
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
17794
18184
  const queryParams = getQueryParamString(params, true);
17795
18185
  return queryParams;
17796
18186
  }
@@ -17888,6 +18278,30 @@ query GetEurekaVizSnapshots(
17888
18278
  }
17889
18279
  return super.trigger(messageType, dataWithVizId);
17890
18280
  }
18281
+ /**
18282
+ * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
18283
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
18284
+ */
18285
+ destroy() {
18286
+ super.destroy();
18287
+ this.unregisterLazyLoadEvents();
18288
+ }
18289
+ postRender() {
18290
+ this.registerLazyLoadEvents();
18291
+ }
18292
+ registerLazyLoadEvents() {
18293
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
18294
+ // TODO: Use passive: true, install modernizr to check for passive
18295
+ window.addEventListener('resize', this.sendFullHeightLazyLoadData);
18296
+ window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
18297
+ }
18298
+ }
18299
+ unregisterLazyLoadEvents() {
18300
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
18301
+ window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
18302
+ window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
18303
+ }
18304
+ }
17891
18305
  /**
17892
18306
  * Render an embedded ThoughtSpot Liveboard or visualization
17893
18307
  * @param renderOptions An object specifying the Liveboard ID,
@@ -17898,6 +18312,7 @@ query GetEurekaVizSnapshots(
17898
18312
  const src = this.getIFrameSrc();
17899
18313
  await this.renderV1Embed(src);
17900
18314
  this.showPreviewLoader();
18315
+ this.postRender();
17901
18316
  return this;
17902
18317
  }
17903
18318
  navigateToLiveboard(liveboardId, vizId, activeTabId) {
@@ -18294,7 +18709,13 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18294
18709
  });
18295
18710
  const data = responses[0].data;
18296
18711
  return {
18297
- data: data.asstRespData.nlsAnsData.sageQuerySuggestions[0],
18712
+ convId: this.conversationId,
18713
+ messageId: responses[0].msgId,
18714
+ data: {
18715
+ ...data.asstRespData.nlsAnsData.sageQuerySuggestions[0],
18716
+ convId: this.conversationId,
18717
+ messageId: responses[0].msgId,
18718
+ },
18298
18719
  error: null,
18299
18720
  };
18300
18721
  }
@@ -18312,7 +18733,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18312
18733
  }
18313
18734
  }
18314
18735
 
18315
- class ConversationMessage extends TsEmbed {
18736
+ let ConversationMessage$1 = class ConversationMessage extends TsEmbed {
18316
18737
  constructor(container, viewConfig) {
18317
18738
  viewConfig.embedComponentType = 'bodyless-conversation';
18318
18739
  super(container, viewConfig);
@@ -18320,7 +18741,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18320
18741
  }
18321
18742
  getIframeSrc() {
18322
18743
  var _a;
18323
- const { sessionId, genNo, acSessionId, acGenNo, } = this.viewConfig;
18744
+ const { sessionId, genNo, acSessionId, acGenNo, convId, messageId, } = this.viewConfig;
18324
18745
  const path = 'conv-assist-answer';
18325
18746
  const queryParams = this.getBaseQueryParams();
18326
18747
  queryParams[Param.HideActions] = [...((_a = queryParams[Param.HideActions]) !== null && _a !== void 0 ? _a : [])];
@@ -18335,6 +18756,8 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18335
18756
  genNo,
18336
18757
  acSessionId,
18337
18758
  acGenNo,
18759
+ convId,
18760
+ messageId,
18338
18761
  });
18339
18762
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
18340
18763
  }
@@ -18344,7 +18767,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18344
18767
  await this.renderIFrame(src);
18345
18768
  return this;
18346
18769
  }
18347
- }
18770
+ };
18348
18771
  /**
18349
18772
  * Create a conversation embed, which can be integrated inside
18350
18773
  * chatbots or other conversational interfaces.
@@ -18364,7 +18787,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18364
18787
  * @group Embed components
18365
18788
  * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
18366
18789
  */
18367
- let SpotterAgentEmbed$1 = class SpotterAgentEmbed {
18790
+ class SpotterAgentEmbed {
18368
18791
  constructor(viewConfig) {
18369
18792
  this.viewConfig = viewConfig;
18370
18793
  const embedConfig = getEmbedConfig();
@@ -18376,11 +18799,10 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18376
18799
  return { error };
18377
18800
  }
18378
18801
  const container = document.createElement('div');
18379
- if (this.viewConfig.containerClassName) {
18380
- container.className = this.viewConfig.containerClassName;
18381
- }
18382
- const embed = new ConversationMessage(container, {
18802
+ const embed = new ConversationMessage$1(container, {
18383
18803
  ...this.viewConfig,
18804
+ convId: data.convId,
18805
+ messageId: data.messageId,
18384
18806
  sessionId: data.sessionId,
18385
18807
  genNo: data.genNo,
18386
18808
  acSessionId: data.stateKey.transactionId,
@@ -18389,7 +18811,31 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18389
18811
  await embed.render();
18390
18812
  return { container, viz: embed };
18391
18813
  }
18392
- };
18814
+ /**
18815
+ * Send a message to the conversation service and return only the data.
18816
+ * @param userMessage - The message to send to the conversation service.
18817
+ * @returns The data from the conversation service.
18818
+ */
18819
+ async sendMessageData(userMessage) {
18820
+ try {
18821
+ const { data, error } = await this.conversationService.sendMessage(userMessage);
18822
+ if (error) {
18823
+ return { error };
18824
+ }
18825
+ return { data: {
18826
+ convId: data.convId,
18827
+ messageId: data.messageId,
18828
+ sessionId: data.sessionId,
18829
+ genNo: data.genNo,
18830
+ acSessionId: data.stateKey.transactionId,
18831
+ acGenNo: data.stateKey.generationNumber,
18832
+ } };
18833
+ }
18834
+ catch (error) {
18835
+ return { error: error };
18836
+ }
18837
+ }
18838
+ }
18393
18839
 
18394
18840
  /**
18395
18841
  *
@@ -18764,55 +19210,34 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18764
19210
  * ```
18765
19211
  */
18766
19212
  const ConversationEmbed = componentFactory(ConversationEmbed$1);
19213
+ const ConversationMessage = componentFactory(ConversationMessage$1);
18767
19214
  /**
18768
- * React component for SpotterAgent embed, which can be integrated inside
18769
- * chatbots or other conversational interfaces.
19215
+ * React component for displaying individual conversation messages from SpotterAgent.
19216
+ *
19217
+ * This component renders a single message response from your ThoughtSpot conversation,
19218
+ * showing charts, visualizations, or text responses based on the user's query.
19219
+ *
18770
19220
  * @example
18771
19221
  * ```tsx
18772
- * function SpotterAgent() {
18773
- * const ref = useRef();
19222
+ * const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
19223
+ * const result = await sendMessage('show me sales by region');
18774
19224
  *
18775
- * const handleSendMessage = async () => {
18776
- * const { container, error } = await ref.current.sendMessage('show me sales by region');
18777
- * if (container) {
18778
- * document.body.appendChild(container);
18779
- * }
18780
- * };
19225
+ * if (!result.error) {
19226
+ * // Simple usage - just pass the message data
19227
+ * <SpotterMessage message={result.message} />
18781
19228
  *
18782
- * return (
18783
- * <div>
18784
- * <SpotterAgentEmbed ref={ref} worksheetId="worksheetId" />
18785
- * <button onClick={handleSendMessage}>Send Message</button>
18786
- * </div>
18787
- * );
19229
+ * // With optional query for context
19230
+ * <SpotterMessage
19231
+ * message={result.message}
19232
+ * query={result.query}
19233
+ * />
18788
19234
  * }
18789
19235
  * ```
19236
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
18790
19237
  */
18791
- const SpotterAgentEmbed = React.forwardRef((props, ref) => {
18792
- const { className, ...restProps } = props;
18793
- const serviceRef = React.useRef(null);
18794
- useDeepCompareEffect(() => {
18795
- if (serviceRef.current) {
18796
- serviceRef.current = null;
18797
- }
18798
- const configProps = {
18799
- ...restProps,
18800
- ...(className ? { containerClassName: className } : {})
18801
- };
18802
- serviceRef.current = new SpotterAgentEmbed$1(configProps);
18803
- if (ref) {
18804
- if (typeof ref === 'function') {
18805
- ref(serviceRef.current);
18806
- }
18807
- else {
18808
- ref.current = serviceRef.current;
18809
- }
18810
- }
18811
- return () => {
18812
- serviceRef.current = null;
18813
- };
18814
- }, [props]);
18815
- return null;
19238
+ const SpotterMessage = React.forwardRef((props, ref) => {
19239
+ const { message, query: _, ...otherProps } = props;
19240
+ return (React.createElement(ConversationMessage, { ref: ref, ...message, ...otherProps }));
18816
19241
  });
18817
19242
  /**
18818
19243
  * React component for PreRendered Conversation embed.
@@ -18872,6 +19297,62 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
18872
19297
  ref.current = authEE;
18873
19298
  }, [config]);
18874
19299
  return ref;
19300
+ }
19301
+ /**
19302
+ * React hook for interacting with SpotterAgent AI conversations.
19303
+ *
19304
+ * This hook provides a sendMessage function that allows you to send natural language
19305
+ * queries to your data and get back AI-generated responses with visualizations.
19306
+ *
19307
+ * @param config - Configuration object containing worksheetId and other options
19308
+ * @returns Object with sendMessage function that returns conversation results
19309
+ * @example
19310
+ * ```tsx
19311
+ * const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
19312
+ *
19313
+ * const handleQuery = async () => {
19314
+ * const result = await sendMessage('show me sales by region');
19315
+ *
19316
+ * if (!result.error) {
19317
+ * // Display the message response
19318
+ * <SpotterMessage message={result.message} />
19319
+ * } else {
19320
+ * console.error('Error:', result.error);
19321
+ * }
19322
+ * };
19323
+ * ```
19324
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
19325
+ */
19326
+ function useSpotterAgent(config) {
19327
+ const serviceRef = React.useRef(null);
19328
+ useDeepCompareEffect(() => {
19329
+ if (serviceRef.current) {
19330
+ serviceRef.current = null;
19331
+ }
19332
+ serviceRef.current = new SpotterAgentEmbed(config);
19333
+ return () => {
19334
+ serviceRef.current = null;
19335
+ };
19336
+ }, [config]);
19337
+ const sendMessage = React.useCallback(async (query) => {
19338
+ if (!serviceRef.current) {
19339
+ return { error: new Error(ERROR_MESSAGE.SPOTTER_AGENT_NOT_INITIALIZED) };
19340
+ }
19341
+ const result = await serviceRef.current.sendMessageData(query);
19342
+ if (result.error) {
19343
+ return { error: result.error };
19344
+ }
19345
+ return {
19346
+ query: query,
19347
+ message: {
19348
+ ...result.data,
19349
+ worksheetId: config.worksheetId,
19350
+ },
19351
+ };
19352
+ }, [config.worksheetId]);
19353
+ return {
19354
+ sendMessage,
19355
+ };
18875
19356
  }
18876
19357
 
18877
19358
  const ALIAS = Symbol.for('yaml.alias');
@@ -26278,6 +26759,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
26278
26759
 
26279
26760
  exports.AppEmbed = AppEmbed;
26280
26761
  exports.ConversationEmbed = ConversationEmbed;
26762
+ exports.ConversationMessage = ConversationMessage;
26281
26763
  exports.LiveboardEmbed = LiveboardEmbed;
26282
26764
  exports.PinboardEmbed = PinboardEmbed;
26283
26765
  exports.PreRenderedAppEmbed = PreRenderedAppEmbed;
@@ -26290,10 +26772,11 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
26290
26772
  exports.SageEmbed = SageEmbed;
26291
26773
  exports.SearchBarEmbed = SearchBarEmbed;
26292
26774
  exports.SearchEmbed = SearchEmbed;
26293
- exports.SpotterAgentEmbed = SpotterAgentEmbed;
26294
26775
  exports.SpotterEmbed = SpotterEmbed;
26776
+ exports.SpotterMessage = SpotterMessage;
26295
26777
  exports.getSessionInfo = getSessionInfo;
26296
26778
  exports.useEmbedRef = useEmbedRef;
26297
26779
  exports.useInit = useInit;
26780
+ exports.useSpotterAgent = useSpotterAgent;
26298
26781
 
26299
26782
  }));