@thoughtspot/visual-embed-sdk 1.37.0 → 1.37.1-spotter-embed

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 +3 -3
  2. package/cjs/src/auth.d.ts +9 -4
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +21 -0
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/auth.spec.js +48 -0
  7. package/cjs/src/auth.spec.js.map +1 -1
  8. package/cjs/src/embed/app.d.ts +59 -0
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +13 -1
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +44 -0
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/bodyless-conversation.d.ts +39 -9
  15. package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
  16. package/cjs/src/embed/bodyless-conversation.js +32 -5
  17. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  18. package/cjs/src/embed/bodyless-conversation.spec.js +4 -4
  19. package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
  20. package/cjs/src/embed/conversation.d.ts +38 -11
  21. package/cjs/src/embed/conversation.d.ts.map +1 -1
  22. package/cjs/src/embed/conversation.js +28 -4
  23. package/cjs/src/embed/conversation.js.map +1 -1
  24. package/cjs/src/embed/conversation.spec.js +7 -7
  25. package/cjs/src/embed/conversation.spec.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +4 -1
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/index.d.ts +3 -3
  32. package/cjs/src/index.d.ts.map +1 -1
  33. package/cjs/src/index.js +5 -3
  34. package/cjs/src/index.js.map +1 -1
  35. package/cjs/src/pages/embed-test.page.d.ts +8 -0
  36. package/cjs/src/pages/embed-test.page.d.ts.map +1 -0
  37. package/cjs/src/pages/embed-test.page.js +20 -0
  38. package/cjs/src/pages/embed-test.page.js.map +1 -0
  39. package/cjs/src/pages/home.page.d.ts +6 -0
  40. package/cjs/src/pages/home.page.d.ts.map +1 -0
  41. package/cjs/src/pages/home.page.js +12 -0
  42. package/cjs/src/pages/home.page.js.map +1 -0
  43. package/cjs/src/pages/login.page.d.ts +15 -0
  44. package/cjs/src/pages/login.page.d.ts.map +1 -0
  45. package/cjs/src/pages/login.page.js +22 -0
  46. package/cjs/src/pages/login.page.js.map +1 -0
  47. package/cjs/src/react/all-types-export.d.ts +1 -1
  48. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  49. package/cjs/src/react/all-types-export.js +2 -1
  50. package/cjs/src/react/all-types-export.js.map +1 -1
  51. package/cjs/src/react/index.d.ts +24 -5
  52. package/cjs/src/react/index.d.ts.map +1 -1
  53. package/cjs/src/react/index.js +21 -4
  54. package/cjs/src/react/index.js.map +1 -1
  55. package/cjs/src/tests/auth.test.d.ts +1 -0
  56. package/cjs/src/tests/auth.test.d.ts.map +1 -0
  57. package/cjs/src/tests/auth.test.js +1 -0
  58. package/cjs/src/tests/auth.test.js.map +1 -0
  59. package/cjs/src/tests/e2e/auth.spec.d.ts +2 -0
  60. package/cjs/src/tests/e2e/auth.spec.d.ts.map +1 -0
  61. package/cjs/src/tests/e2e/auth.spec.js +54 -0
  62. package/cjs/src/tests/e2e/auth.spec.js.map +1 -0
  63. package/cjs/src/types.d.ts +95 -3
  64. package/cjs/src/types.d.ts.map +1 -1
  65. package/cjs/src/types.js +79 -0
  66. package/cjs/src/types.js.map +1 -1
  67. package/cjs/src/utils/graphql/answerService/answerService.d.ts +35 -15
  68. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  69. package/cjs/src/utils/graphql/answerService/answerService.js +35 -15
  70. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  71. package/cjs/src/utils/processData.js +6 -4
  72. package/cjs/src/utils/processData.js.map +1 -1
  73. package/dist/index-Cj4BVGHL.js +7371 -0
  74. package/dist/index-DUaG1OG2.js +7447 -0
  75. package/dist/index-Fhk1V_Gw.js +7371 -0
  76. package/dist/index-OuiZF3zE.js +7371 -0
  77. package/dist/src/auth.d.ts +9 -4
  78. package/dist/src/auth.d.ts.map +1 -1
  79. package/dist/src/embed/app.d.ts +59 -0
  80. package/dist/src/embed/app.d.ts.map +1 -1
  81. package/dist/src/embed/bodyless-conversation.d.ts +39 -9
  82. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  83. package/dist/src/embed/conversation.d.ts +38 -11
  84. package/dist/src/embed/conversation.d.ts.map +1 -1
  85. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  86. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  87. package/dist/src/index.d.ts +3 -3
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/react/all-types-export.d.ts +1 -1
  90. package/dist/src/react/all-types-export.d.ts.map +1 -1
  91. package/dist/src/react/index.d.ts +24 -5
  92. package/dist/src/react/index.d.ts.map +1 -1
  93. package/dist/src/types.d.ts +95 -3
  94. package/dist/src/types.d.ts.map +1 -1
  95. package/dist/src/utils/graphql/answerService/answerService.d.ts +35 -15
  96. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  97. package/dist/tsembed-react.es.js +208 -31
  98. package/dist/tsembed-react.js +428 -174
  99. package/dist/tsembed.es.js +170 -32
  100. package/dist/tsembed.js +392 -176
  101. package/dist/visual-embed-sdk-react-full.d.ts +299 -47
  102. package/dist/visual-embed-sdk-react.d.ts +299 -47
  103. package/dist/visual-embed-sdk.d.ts +276 -43
  104. package/lib/package.json +3 -3
  105. package/lib/src/auth.d.ts +9 -4
  106. package/lib/src/auth.d.ts.map +1 -1
  107. package/lib/src/auth.js +21 -0
  108. package/lib/src/auth.js.map +1 -1
  109. package/lib/src/auth.spec.js +48 -0
  110. package/lib/src/auth.spec.js.map +1 -1
  111. package/lib/src/embed/app.d.ts +59 -0
  112. package/lib/src/embed/app.d.ts.map +1 -1
  113. package/lib/src/embed/app.js +13 -1
  114. package/lib/src/embed/app.js.map +1 -1
  115. package/lib/src/embed/app.spec.js +44 -0
  116. package/lib/src/embed/app.spec.js.map +1 -1
  117. package/lib/src/embed/bodyless-conversation.d.ts +39 -9
  118. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  119. package/lib/src/embed/bodyless-conversation.js +30 -4
  120. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  121. package/lib/src/embed/bodyless-conversation.spec.js +5 -5
  122. package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
  123. package/lib/src/embed/conversation.d.ts +38 -11
  124. package/lib/src/embed/conversation.d.ts.map +1 -1
  125. package/lib/src/embed/conversation.js +26 -3
  126. package/lib/src/embed/conversation.js.map +1 -1
  127. package/lib/src/embed/conversation.spec.js +8 -8
  128. package/lib/src/embed/conversation.spec.js.map +1 -1
  129. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  130. package/lib/src/embed/ts-embed.js +4 -1
  131. package/lib/src/embed/ts-embed.js.map +1 -1
  132. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  133. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  134. package/lib/src/index.d.ts +3 -3
  135. package/lib/src/index.d.ts.map +1 -1
  136. package/lib/src/index.js +3 -3
  137. package/lib/src/index.js.map +1 -1
  138. package/lib/src/react/all-types-export.d.ts +1 -1
  139. package/lib/src/react/all-types-export.d.ts.map +1 -1
  140. package/lib/src/react/all-types-export.js +1 -1
  141. package/lib/src/react/all-types-export.js.map +1 -1
  142. package/lib/src/react/index.d.ts +24 -5
  143. package/lib/src/react/index.d.ts.map +1 -1
  144. package/lib/src/react/index.js +21 -4
  145. package/lib/src/react/index.js.map +1 -1
  146. package/lib/src/types.d.ts +95 -3
  147. package/lib/src/types.d.ts.map +1 -1
  148. package/lib/src/types.js +79 -0
  149. package/lib/src/types.js.map +1 -1
  150. package/lib/src/utils/graphql/answerService/answerService.d.ts +35 -15
  151. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  152. package/lib/src/utils/graphql/answerService/answerService.js +35 -15
  153. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  154. package/lib/src/utils/processData.js +6 -4
  155. package/lib/src/utils/processData.js.map +1 -1
  156. package/lib/src/visual-embed-sdk.d.ts +278 -45
  157. package/package.json +3 -3
  158. package/src/auth.spec.ts +52 -0
  159. package/src/auth.ts +25 -3
  160. package/src/embed/app.spec.ts +64 -0
  161. package/src/embed/app.ts +80 -0
  162. package/src/embed/bodyless-conversation.spec.ts +6 -6
  163. package/src/embed/bodyless-conversation.ts +43 -8
  164. package/src/embed/conversation.spec.ts +16 -16
  165. package/src/embed/conversation.ts +42 -11
  166. package/src/embed/ts-embed.spec.ts +0 -2
  167. package/src/embed/ts-embed.ts +4 -0
  168. package/src/index.ts +8 -4
  169. package/src/react/all-types-export.ts +1 -0
  170. package/src/react/index.tsx +36 -10
  171. package/src/types.ts +99 -1
  172. package/src/utils/graphql/answerService/answerService.ts +35 -15
  173. package/src/utils/processData.ts +6 -6
@@ -12,7 +12,7 @@ import EventEmitter from 'eventemitter3';
12
12
  * @summary ThoughtSpot Visual Embed SDK
13
13
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
14
14
  */
15
- export { init, logout, prefetch, executeTML, exportTML, executeTMLInput, exportTMLInput, getEmbedConfig as getInitConfig, getSessionInfo, tokenizedFetch, getAnswerFromQuery, createLiveboardWithAnswers, SearchEmbed, SearchBarEmbed, PinboardEmbed, LiveboardEmbed, SageEmbed, AppEmbed, BodylessConversation, BodylessConversationViewConfig, ConversationEmbed, ConversationViewConfig, AuthFailureType, AuthStatus, AuthEvent, AuthEventEmitter, AnswerService, SessionInterface, UnderlyingDataPoint, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, ContextMenuTriggerOptions, EmbedConfig, SearchViewConfig, SearchBarViewConfig, LiveboardViewConfig, SageViewConfig, AppViewConfig, PrefetchFeatures, FrameParams, HomeLeftNavItem, HomepageModule, DOMSelector, MessageOptions, MessageCallback, MessagePayload, CustomisationsInterface, CustomStyles, customCssInterface, CustomCssVariables, RuntimeParameter, LogLevel, uploadMixpanelEvent, MIXPANEL_EVENT, HomePageSearchBarMode, VizPoint, CustomActionPayload, UIPassthroughEvent, ListPageColumns, };
15
+ export { init, logout, prefetch, executeTML, exportTML, executeTMLInput, exportTMLInput, getEmbedConfig as getInitConfig, getSessionInfo, tokenizedFetch, getAnswerFromQuery, createLiveboardWithAnswers, SearchEmbed, SearchBarEmbed, PinboardEmbed, LiveboardEmbed, SageEmbed, AppEmbed, SpotterAgentEmbed, SpotterAgentEmbedViewConfig, BodylessConversationViewConfig, BodylessConversation, SpotterEmbed, SpotterEmbedViewConfig, ConversationViewConfig, ConversationEmbed, AuthFailureType, AuthStatus, AuthEvent, AuthEventEmitter, AnswerService, SessionInterface, UnderlyingDataPoint, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, ContextMenuTriggerOptions, EmbedConfig, SearchViewConfig, SearchBarViewConfig, LiveboardViewConfig, SageViewConfig, AppViewConfig, PrefetchFeatures, FrameParams, HomeLeftNavItem, HomepageModule, DOMSelector, MessageOptions, MessageCallback, MessagePayload, CustomisationsInterface, CustomStyles, customCssInterface, CustomCssVariables, RuntimeParameter, LogLevel, uploadMixpanelEvent, MIXPANEL_EVENT, HomePageSearchBarMode, VizPoint, CustomActionPayload, UIPassthroughEvent, ListPageColumns, };
16
16
 
17
17
  /**
18
18
  * Copyright (c) 2022
@@ -151,6 +151,51 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
151
151
  * ```
152
152
  */
153
153
  enablePendoHelp?: boolean;
154
+ /**
155
+ * Control the visibility of the hamburger icon on the top nav bar
156
+ * available when new navigation V3 is enabled.
157
+ *
158
+ * @default false
159
+ * @version SDK: 1.39.0 | Thoughtspot: 10.10.0.cl
160
+ * @example
161
+ * ```js
162
+ * const embed = new AppEmbed('#tsEmbed', {
163
+ * ... // other options
164
+ * hideHamburger : true,
165
+ * })
166
+ * ```
167
+ */
168
+ hideHamburger?: boolean;
169
+ /**
170
+ * Control the visibility of the Eureka search on the top nav bar
171
+ * this will control for both new V2 and new navigation V3.
172
+ *
173
+ * @default true
174
+ * @version SDK: 1.39.0 | Thoughtspot: 10.10.0.cl
175
+ * @example
176
+ * ```js
177
+ * const embed = new AppEmbed('#tsEmbed', {
178
+ * ... // other options
179
+ * hideObjectSearch: false,
180
+ * })
181
+ * ```
182
+ */
183
+ hideObjectSearch?: boolean;
184
+ /**
185
+ * Control the visibility of the notification on the top nav bar V3,
186
+ * available when new navigation V3 is enabled.
187
+ *
188
+ * @default true
189
+ * @version SDK: 1.39.0 | Thoughtspot: 10.10.0.cl
190
+ * @example
191
+ * ```js
192
+ * const embed = new AppEmbed('#tsEmbed', {
193
+ * ... // other options
194
+ * hideNotification: false,
195
+ * })
196
+ * ```
197
+ */
198
+ hideNotification?: boolean;
154
199
  /**
155
200
  * Control the visibility of the application switcher button on the nav-bar.
156
201
  * By default, the application switcher is shown.
@@ -344,6 +389,20 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
344
389
  * ```
345
390
  */
346
391
  modularHomeExperience?: boolean;
392
+ /**
393
+ * Flag to control new navigation v3 home experience.
394
+ *
395
+ * @default false
396
+ * @version SDK: 1.39.0 | Thoughtspot: 10.10.0.cl
397
+ * @example
398
+ * ```js
399
+ * const embed = new AppEmbed('#tsEmbed', {
400
+ * ... // other options
401
+ * modularHomeExperienceV3 : true,
402
+ * })
403
+ * ```
404
+ */
405
+ modularHomeExperienceV3?: boolean;
347
406
  /**
348
407
  * Boolean to control if Liveboard header is sticky or not.
349
408
  * @example
@@ -1507,21 +1566,28 @@ export class SearchBarEmbed extends TsEmbed {
1507
1566
  * Configuration for bodyless conversation options.
1508
1567
  * @group Embed components
1509
1568
  */
1510
- export interface BodylessConversationViewConfig extends ViewConfig {
1569
+ export interface SpotterAgentEmbedViewConfig extends ViewConfig {
1511
1570
  /**
1512
1571
  * The ID of the worksheet to use for the conversation.
1513
1572
  */
1514
1573
  worksheetId: string;
1515
1574
  }
1516
- interface ConversationMessageViewConfig extends BodylessConversationViewConfig {
1575
+ /**
1576
+ * Configuration for conversation options.
1577
+ * @deprecated Renamed to SpotterAgentEmbedViewConfig
1578
+ * @group Embed components
1579
+ */
1580
+ export interface BodylessConversationViewConfig extends SpotterAgentEmbedViewConfig {
1581
+ }
1582
+ interface SpotterAgentMessageViewConfig extends SpotterAgentEmbedViewConfig {
1517
1583
  sessionId: string;
1518
1584
  genNo: number;
1519
1585
  acSessionId: string;
1520
1586
  acGenNo: number;
1521
1587
  }
1522
1588
  class ConversationMessage extends TsEmbed {
1523
- protected viewConfig: ConversationMessageViewConfig;
1524
- constructor(container: HTMLElement, viewConfig: ConversationMessageViewConfig);
1589
+ protected viewConfig: SpotterAgentMessageViewConfig;
1590
+ constructor(container: HTMLElement, viewConfig: SpotterAgentMessageViewConfig);
1525
1591
  getIframeSrc(): string;
1526
1592
  render(): Promise<ConversationMessage>;
1527
1593
  }
@@ -1530,9 +1596,9 @@ class ConversationMessage extends TsEmbed {
1530
1596
  * chatbots or other conversational interfaces.
1531
1597
  * @example
1532
1598
  * ```js
1533
- * import { BodylessConversation } from '@thoughtspot/visual-embed-sdk';
1599
+ * import { SpotterAgentEmbed } from '@thoughtspot/visual-embed-sdk';
1534
1600
  *
1535
- * const conversation = new BodylessConversation({
1601
+ * const conversation = new SpotterAgentEmbed({
1536
1602
  * worksheetId: 'worksheetId',
1537
1603
  * });
1538
1604
  *
@@ -1542,10 +1608,10 @@ class ConversationMessage extends TsEmbed {
1542
1608
  * document.body.appendChild(container); // or to any other element
1543
1609
  * ```
1544
1610
  * @group Embed components
1545
- * @version SDK: 1.33.1 | ThoughtSpot: 10.5.0.cl
1611
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
1546
1612
  */
1547
- export class BodylessConversation {
1548
- constructor(viewConfig: BodylessConversationViewConfig);
1613
+ export class SpotterAgentEmbed {
1614
+ constructor(viewConfig: SpotterAgentEmbedViewConfig);
1549
1615
  sendMessage(userMessage: string): Promise<{
1550
1616
  error: any;
1551
1617
  container?: undefined;
@@ -1556,6 +1622,29 @@ export class BodylessConversation {
1556
1622
  error?: undefined;
1557
1623
  }>;
1558
1624
  }
1625
+ /**
1626
+ * Create a conversation embed, which can be integrated inside
1627
+ * chatbots or other conversational interfaces.
1628
+ * @deprecated Renamed to SpotterAgentEmbed
1629
+ * @example
1630
+ * ```js
1631
+ * import { SpotterAgentEmbed } from '@thoughtspot/visual-embed-sdk';
1632
+ *
1633
+ * const conversation = new SpotterAgentEmbed({
1634
+ * worksheetId: 'worksheetId',
1635
+ * });
1636
+ *
1637
+ * const { container, error } = await conversation.sendMessage('show me sales by region');
1638
+ *
1639
+ * // append the container to the DOM
1640
+ * document.body.appendChild(container); // or to any other element
1641
+ * ```
1642
+ * @group Embed components
1643
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
1644
+ */
1645
+ export class BodylessConversation extends SpotterAgentEmbed {
1646
+ constructor(viewConfig: BodylessConversationViewConfig);
1647
+ }
1559
1648
  export {};
1560
1649
 
1561
1650
  /**
@@ -1568,10 +1657,10 @@ export interface SearchOptions {
1568
1657
  searchQuery: string;
1569
1658
  }
1570
1659
  /**
1571
- * The configuration for the embedded conversationEmbed options.
1660
+ * The configuration for the embedded spotterEmbed options.
1572
1661
  * @group Embed components
1573
1662
  */
1574
- export interface ConversationViewConfig extends ViewConfig {
1663
+ export interface SpotterEmbedViewConfig extends ViewConfig {
1575
1664
  /**
1576
1665
  * The ID of the worksheet to use for the conversation.
1577
1666
  */
@@ -1585,7 +1674,7 @@ export interface ConversationViewConfig extends ViewConfig {
1585
1674
  * but still display the selected data source.
1586
1675
  * @example
1587
1676
  * ```js
1588
- * const embed = new ConversationEmbed('#tsEmbed', {
1677
+ * const embed = new SpotterEmbed('#tsEmbed', {
1589
1678
  * ... // other options
1590
1679
  * disableSourceSelection : true,
1591
1680
  * })
@@ -1597,7 +1686,7 @@ export interface ConversationViewConfig extends ViewConfig {
1597
1686
  * hideSourceSelection : Hide data source selection
1598
1687
  * @example
1599
1688
  * ```js
1600
- * const embed = new ConversationEmbed('#tsEmbed', {
1689
+ * const embed = new SpotterEmbed('#tsEmbed', {
1601
1690
  * ... // other options
1602
1691
  * hideSourceSelection : true,
1603
1692
  * })
@@ -1624,7 +1713,7 @@ export interface ConversationViewConfig extends ViewConfig {
1624
1713
  * default is false.
1625
1714
  * @example
1626
1715
  * ```js
1627
- * const embed = new ConversationEmbed('#tsEmbed', {
1716
+ * const embed = new SpotterEmbed('#tsEmbed', {
1628
1717
  * ... // other options
1629
1718
  * showSpotterLimitations : true,
1630
1719
  * })
@@ -1637,7 +1726,7 @@ export interface ConversationViewConfig extends ViewConfig {
1637
1726
  * the initial screen of the conversation.
1638
1727
  * @example
1639
1728
  * ```js
1640
- * const embed = new ConversationEmbed('#tsEmbed', {
1729
+ * const embed = new SpotterEmbed('#tsEmbed', {
1641
1730
  * ... // other options
1642
1731
  * hideSampleQuestions : true,
1643
1732
  * })
@@ -1646,12 +1735,41 @@ export interface ConversationViewConfig extends ViewConfig {
1646
1735
  */
1647
1736
  hideSampleQuestions?: boolean;
1648
1737
  }
1738
+ /**
1739
+ * The configuration for the embedded spotterEmbed options.
1740
+ * @deprecated Renamed to SpotterEmbedViewConfig
1741
+ * @group Embed components
1742
+ */
1743
+ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
1744
+ }
1745
+ /**
1746
+ * Embed ThoughtSpot AI Conversation.
1747
+ * @group Embed components
1748
+ * @example
1749
+ * ```js
1750
+ * const conversation = new SpotterEmbed('#tsEmbed', {
1751
+ * worksheetId: 'worksheetId',
1752
+ * searchOptions: {
1753
+ * searchQuery: 'searchQuery',
1754
+ * },
1755
+ * });
1756
+ * conversation.render();
1757
+ * ```
1758
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.10.0.cl
1759
+ */
1760
+ export class SpotterEmbed extends TsEmbed {
1761
+ protected viewConfig: SpotterEmbedViewConfig;
1762
+ constructor(container: HTMLElement, viewConfig: SpotterEmbedViewConfig);
1763
+ getIframeSrc(): string;
1764
+ render(): Promise<SpotterEmbed>;
1765
+ }
1649
1766
  /**
1650
1767
  * Embed ThoughtSpot AI Conversation.
1768
+ * @deprecated Renamed to SpotterEmbed
1651
1769
  * @group Embed components
1652
1770
  * @example
1653
1771
  * ```js
1654
- * const conversation = new ConversationEmbed('#tsEmbed', {
1772
+ * const conversation = new SpotterEmbed('#tsEmbed', {
1655
1773
  * worksheetId: 'worksheetId',
1656
1774
  * searchOptions: {
1657
1775
  * searchQuery: 'searchQuery',
@@ -1659,13 +1777,11 @@ export interface ConversationViewConfig extends ViewConfig {
1659
1777
  * });
1660
1778
  * conversation.render();
1661
1779
  * ```
1662
- * @version SDK: 1.33.1 | ThoughtSpot: 10.5.0.cl
1780
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
1663
1781
  */
1664
- export class ConversationEmbed extends TsEmbed {
1782
+ export class ConversationEmbed extends SpotterEmbed {
1665
1783
  protected viewConfig: ConversationViewConfig;
1666
1784
  constructor(container: HTMLElement, viewConfig: ConversationViewConfig);
1667
- getIframeSrc(): string;
1668
- render(): Promise<ConversationEmbed>;
1669
1785
  }
1670
1786
 
1671
1787
  export let loggedInStatus: boolean;
@@ -1682,7 +1798,8 @@ export enum AuthFailureType {
1682
1798
  NO_COOKIE_ACCESS = "NO_COOKIE_ACCESS",
1683
1799
  EXPIRY = "EXPIRY",
1684
1800
  OTHER = "OTHER",
1685
- IDLE_SESSION_TIMEOUT = "IDLE_SESSION_TIMEOUT"
1801
+ IDLE_SESSION_TIMEOUT = "IDLE_SESSION_TIMEOUT",
1802
+ UNAUTHENTICATED_FAILURE = "UNAUTHENTICATED_FAILURE"
1686
1803
  }
1687
1804
  /**
1688
1805
  * Enum for auth status emitted by the emitter returned from {@link init}.
@@ -1716,7 +1833,11 @@ export enum AuthStatus {
1716
1833
  * or by the trigger button.
1717
1834
  * @version SDK: 1.19.0
1718
1835
  */
1719
- WAITING_FOR_POPUP = "WAITING_FOR_POPUP"
1836
+ WAITING_FOR_POPUP = "WAITING_FOR_POPUP",
1837
+ /**
1838
+ * Emitted when the SAML popup is closed without authentication
1839
+ */
1840
+ SAML_POPUP_CLOSED_NO_AUTH = "SAML_POPUP_CLOSED_NO_AUTH"
1720
1841
  }
1721
1842
  /**
1722
1843
  * Event emitter returned from {@link init}.
@@ -1734,10 +1855,10 @@ export interface AuthEventEmitter {
1734
1855
  * @param event
1735
1856
  * @param listener
1736
1857
  */
1737
- on(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP, listener: () => void): this;
1858
+ on(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP | AuthStatus.SAML_POPUP_CLOSED_NO_AUTH, listener: () => void): this;
1738
1859
  on(event: AuthStatus.SUCCESS, listener: (sessionInfo: any) => void): this;
1739
1860
  once(event: AuthStatus.FAILURE, listener: (failureType: AuthFailureType) => void): this;
1740
- once(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP, listener: () => void): this;
1861
+ once(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP | AuthStatus.SAML_POPUP_CLOSED_NO_AUTH, listener: () => void): this;
1741
1862
  once(event: AuthStatus.SUCCESS, listener: (sessionInfo: any) => void): this;
1742
1863
  /**
1743
1864
  * Trigger an event on the emitter returned from init.
@@ -2147,7 +2268,19 @@ export enum HomeLeftNavItem {
2147
2268
  /**
2148
2269
  * @version SDK: 1.34.0| ThoughtSpot: 10.3.0.cl
2149
2270
  */
2150
- LiveboardSchedules = "liveboard-schedules"
2271
+ LiveboardSchedules = "liveboard-schedules",
2272
+ /**
2273
+ * Create new options in the insights left navigation,
2274
+ * available when new navigation V3 is enabled.
2275
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
2276
+ */
2277
+ Create = "create",
2278
+ /**
2279
+ * Spotter option in the insights left navigation,
2280
+ * available when new navigation V3 is enabled.
2281
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
2282
+ */
2283
+ Spotter = "spotter"
2151
2284
  }
2152
2285
  export type DOMSelector = string | HTMLElement;
2153
2286
  /**
@@ -2628,6 +2761,19 @@ export interface ViewConfig {
2628
2761
  * ```
2629
2762
  */
2630
2763
  disabledActions?: Action[];
2764
+ /**
2765
+ * The primary action to display on top of the viz for Liveboard and App Embed.
2766
+ * Use this to set the primary action.
2767
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
2768
+ * @example
2769
+ * ```js
2770
+ * const embed = new LiveboardEmbed('#embed', {
2771
+ * ... // other liveboard view config
2772
+ * primaryAction: Action.Download
2773
+ * });
2774
+ * ```
2775
+ */
2776
+ primaryAction?: Action | string;
2631
2777
  /**
2632
2778
  * The tooltip to display for disabled actions.
2633
2779
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
@@ -5217,8 +5363,17 @@ export enum HostEvent {
5217
5363
  /**
5218
5364
  * Get the Answer session for a Search or
5219
5365
  * Liveboard visualization.
5366
+ *
5367
+ * Note: This event is not typically used directly. Instead, use the
5368
+ * `getAnswerService()` method on the embed instance to get an AnswerService
5369
+ * object that provides a more convenient interface for working with answers.
5370
+ *
5220
5371
  * @example
5221
5372
  * ```js
5373
+ * // Preferred way to get an AnswerService
5374
+ * const service = await embed.getAnswerService();
5375
+ *
5376
+ * // Alternative direct usage (not recommended)
5222
5377
  * const {session} = await embed.trigger(
5223
5378
  * HostEvent.GetAnswerSession, {
5224
5379
  * vizId: '123', // For Liveboard Visualization.
@@ -5226,6 +5381,10 @@ export enum HostEvent {
5226
5381
  * ```
5227
5382
  * @example
5228
5383
  * ```js
5384
+ * // Preferred way to get an AnswerService
5385
+ * const service = await embed.getAnswerService();
5386
+ *
5387
+ * // Alternative direct usage (not recommended)
5229
5388
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
5230
5389
  * ```
5231
5390
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
@@ -5353,7 +5512,55 @@ export enum HostEvent {
5353
5512
  * ```
5354
5513
  * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
5355
5514
  */
5356
- TransformTableVizData = "TransformTableVizData"
5515
+ TransformTableVizData = "TransformTableVizData",
5516
+ /**
5517
+ * Triggers the table visualization re-render with the updated data.
5518
+ * Includes the following properties:
5519
+ * @param - `columnDataLite` - an array of object containing the
5520
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5521
+ * payload.For example, { columnDataLite: []}`.
5522
+ */
5523
+ SpotterSearch = "SpotterSearch",
5524
+ /**
5525
+ * Triggers the table visualization re-render with the updated data.
5526
+ * Includes the following properties:
5527
+ * @param - `columnDataLite` - an array of object containing the
5528
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5529
+ * payload.For example, { columnDataLite: []}`.
5530
+ */
5531
+ EditLastPrompt = "EditLastPrompt",
5532
+ /**
5533
+ * Triggers the table visualization re-render with the updated data.
5534
+ * Includes the following properties:
5535
+ * @param - `columnDataLite` - an array of object containing the
5536
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5537
+ * payload.For example, { columnDataLite: []}`.
5538
+ */
5539
+ PreviewSpotterData = "PreviewSpotterData",
5540
+ /**
5541
+ * Triggers the table visualization re-render with the updated data.
5542
+ * Includes the following properties:
5543
+ * @param - `columnDataLite` - an array of object containing the
5544
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5545
+ * payload.For example, { columnDataLite: []}`.
5546
+ */
5547
+ ResetSpotterConversation = "ResetSpotterConversation",
5548
+ /**
5549
+ * Triggers the table visualization re-render with the updated data.
5550
+ * Includes the following properties:
5551
+ * @param - `columnDataLite` - an array of object containing the
5552
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5553
+ * payload.For example, { columnDataLite: []}`.
5554
+ */
5555
+ DeleteLastPrompt = "DeleteLastPrompt",
5556
+ /**
5557
+ * Triggers the table visualization re-render with the updated data.
5558
+ * Includes the following properties:
5559
+ * @param - `columnDataLite` - an array of object containing the
5560
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5561
+ * payload.For example, { columnDataLite: []}`.
5562
+ */
5563
+ AnswerChartSwitcher = "answerChartSwitcher"
5357
5564
  }
5358
5565
  /**
5359
5566
  * The different visual modes that the data sources panel within
@@ -5424,6 +5631,10 @@ export enum Param {
5424
5631
  ShowInsertToSlide = "insertInToSlide",
5425
5632
  PrimaryNavHidden = "primaryNavHidden",
5426
5633
  HideProfleAndHelp = "profileAndHelpInNavBarHidden",
5634
+ NavigationVersion = "navigationVersion",
5635
+ HideHamburger = "hideHamburger",
5636
+ HideObjectSearch = "hideObjectSearch",
5637
+ HideNotification = "hideNotification",
5427
5638
  HideApplicationSwitcher = "applicationSwitcherHidden",
5428
5639
  HideOrgSwitcher = "orgSwitcherHidden",
5429
5640
  IsSageEmbed = "isSageEmbed",
@@ -5479,7 +5690,9 @@ export enum Param {
5479
5690
  DataSourceId = "dataSourceId",
5480
5691
  preAuthCache = "preAuthCache",
5481
5692
  ShowSpotterLimitations = "showSpotterLimitations",
5482
- CoverAndFilterOptionInPDF = "coverAndFilterOptionInPDF"
5693
+ CoverAndFilterOptionInPDF = "coverAndFilterOptionInPDF",
5694
+ PrimaryAction = "primaryAction",
5695
+ isSpotterAgentEmbed = "isSpotterAgentEmbed"
5483
5696
  }
5484
5697
  /**
5485
5698
  * ThoughtSpot application pages include actions and menu commands
@@ -7410,29 +7623,49 @@ export interface UnderlyingDataPoint {
7410
7623
  dataValue: any;
7411
7624
  }
7412
7625
  /**
7413
- * Class representing the answer service provided with the
7414
- * custom action payload. This service could be used to run
7415
- * graphql queries in the context of the answer on which the
7416
- * custom action was triggered.
7626
+ * AnswerService provides a simple way to work with ThoughtSpot Answers.
7627
+ *
7628
+ * This service allows you to interact with ThoughtSpot Answers programmatically,
7629
+ * making it easy to customize visualizations, filter data, and extract insights
7630
+ * directly from your application.
7631
+ *
7632
+ * You can use this service to:
7633
+ * - Add or remove columns from Answers (`addColumns`, `removeColumns`, `addColumnsByName`)
7634
+ * - Apply filters to Answers (`addFilter`)
7635
+ * - Get data from Answers in different formats (JSON, CSV, PNG) (`fetchData`, `fetchCSVBlob`, `fetchPNGBlob`)
7636
+ * - Get data for specific points in visualizations (`getUnderlyingDataForPoint`)
7637
+ * - Run custom queries (`executeQuery`)
7638
+ * - Add visualizations to liveboards (`addDisplayedVizToLiveboard`)
7639
+ *
7417
7640
  * @example
7418
7641
  * ```js
7419
- * embed.on(EmbedEvent.CustomAction, e => {
7420
- * const underlying = await e.answerService.getUnderlyingDataForPoint([
7421
- * 'col name 1'
7422
- * ]);
7423
- * const data = await underlying.fetchData(0, 100);
7424
- * })
7642
+ * // Get the answer service
7643
+ * embed.on(EmbedEvent.Data, async (e) => {
7644
+ * const service = await embed.getAnswerService();
7645
+ *
7646
+ * // Add columns to the answer
7647
+ * await service.addColumnsByName(["Sales", "Region"]);
7648
+ *
7649
+ * // Get the data
7650
+ * const data = await service.fetchData();
7651
+ * console.log(data);
7652
+ * });
7425
7653
  * ```
7654
+ *
7426
7655
  * @example
7427
7656
  * ```js
7428
- * embed.on(EmbedEvent.Data, async (e) => {
7429
- * const service = await embed.getAnswerService();
7430
- * await service.addColumns([
7431
- * "<column guid>"
7657
+ * // Get data for a point in a visualization
7658
+ * embed.on(EmbedEvent.CustomAction, async (e) => {
7659
+ * const underlying = await e.answerService.getUnderlyingDataForPoint([
7660
+ * 'Product Name',
7661
+ * 'Sales Amount'
7432
7662
  * ]);
7433
- * console.log(await service.fetchData());
7663
+ *
7664
+ * const data = await underlying.fetchData(0, 100);
7665
+ * console.log(data);
7434
7666
  * });
7435
7667
  * ```
7668
+ *
7436
7669
  * @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
7437
7670
  * @group Events
7438
7671
  */
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.37.0",
3
+ "version": "1.37.1-spotter-embed",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -57,7 +57,7 @@
57
57
  "test": "npm run test-sdk",
58
58
  "posttest": "cat ./coverage/sdk/lcov.info | coveralls",
59
59
  "is-publish-allowed": "node scripts/is-publish-allowed.js",
60
- "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",
60
+ "prepublishOnly": "npm run is-publish-allowed && 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",
61
61
  "check-size": "npm run build && size-limit",
62
62
  "publish-dev": "npm publish --tag dev",
63
63
  "publish-prod": "npm publish --tag latest",
@@ -141,7 +141,7 @@
141
141
  "typescript-eslint": "^8.29.1",
142
142
  "url-search-params-polyfill": "^8.1.0",
143
143
  "util": "^0.12.4",
144
- "vite": "^5.3.4"
144
+ "vite": "^6.3.5"
145
145
  },
146
146
  "author": "ThoughtSpot",
147
147
  "email": "support@thoughtspot.com",
package/lib/src/auth.d.ts CHANGED
@@ -14,7 +14,8 @@ export declare enum AuthFailureType {
14
14
  NO_COOKIE_ACCESS = "NO_COOKIE_ACCESS",
15
15
  EXPIRY = "EXPIRY",
16
16
  OTHER = "OTHER",
17
- IDLE_SESSION_TIMEOUT = "IDLE_SESSION_TIMEOUT"
17
+ IDLE_SESSION_TIMEOUT = "IDLE_SESSION_TIMEOUT",
18
+ UNAUTHENTICATED_FAILURE = "UNAUTHENTICATED_FAILURE"
18
19
  }
19
20
  /**
20
21
  * Enum for auth status emitted by the emitter returned from {@link init}.
@@ -48,7 +49,11 @@ export declare enum AuthStatus {
48
49
  * or by the trigger button.
49
50
  * @version SDK: 1.19.0
50
51
  */
51
- WAITING_FOR_POPUP = "WAITING_FOR_POPUP"
52
+ WAITING_FOR_POPUP = "WAITING_FOR_POPUP",
53
+ /**
54
+ * Emitted when the SAML popup is closed without authentication
55
+ */
56
+ SAML_POPUP_CLOSED_NO_AUTH = "SAML_POPUP_CLOSED_NO_AUTH"
52
57
  }
53
58
  /**
54
59
  * Event emitter returned from {@link init}.
@@ -66,10 +71,10 @@ export interface AuthEventEmitter {
66
71
  * @param event
67
72
  * @param listener
68
73
  */
69
- on(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP, listener: () => void): this;
74
+ on(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP | AuthStatus.SAML_POPUP_CLOSED_NO_AUTH, listener: () => void): this;
70
75
  on(event: AuthStatus.SUCCESS, listener: (sessionInfo: any) => void): this;
71
76
  once(event: AuthStatus.FAILURE, listener: (failureType: AuthFailureType) => void): this;
72
- once(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP, listener: () => void): this;
77
+ once(event: AuthStatus.SDK_SUCCESS | AuthStatus.LOGOUT | AuthStatus.WAITING_FOR_POPUP | AuthStatus.SAML_POPUP_CLOSED_NO_AUTH, listener: () => void): this;
73
78
  once(event: AuthStatus.SUCCESS, listener: (sessionInfo: any) => void): this;
74
79
  /**
75
80
  * Trigger an event on the emitter returned from init.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
package/lib/src/auth.js CHANGED
@@ -29,6 +29,7 @@ export var AuthFailureType;
29
29
  AuthFailureType["EXPIRY"] = "EXPIRY";
30
30
  AuthFailureType["OTHER"] = "OTHER";
31
31
  AuthFailureType["IDLE_SESSION_TIMEOUT"] = "IDLE_SESSION_TIMEOUT";
32
+ AuthFailureType["UNAUTHENTICATED_FAILURE"] = "UNAUTHENTICATED_FAILURE";
32
33
  })(AuthFailureType || (AuthFailureType = {}));
33
34
  /**
34
35
  * Enum for auth status emitted by the emitter returned from {@link init}.
@@ -64,6 +65,10 @@ export var AuthStatus;
64
65
  * @version SDK: 1.19.0
65
66
  */
66
67
  AuthStatus["WAITING_FOR_POPUP"] = "WAITING_FOR_POPUP";
68
+ /**
69
+ * Emitted when the SAML popup is closed without authentication
70
+ */
71
+ AuthStatus["SAML_POPUP_CLOSED_NO_AUTH"] = "SAML_POPUP_CLOSED_NO_AUTH";
67
72
  })(AuthStatus || (AuthStatus = {}));
68
73
  /**
69
74
  * Events which can be triggered on the emitter returned from {@link init}.
@@ -290,14 +295,26 @@ export const doBasicAuth = async (embedConfig) => {
290
295
  * @param triggerText
291
296
  */
292
297
  async function samlPopupFlow(ssoURL, triggerContainer, triggerText) {
298
+ let popupClosedCheck;
293
299
  const openPopup = () => {
294
300
  if (samlAuthWindow === null || samlAuthWindow.closed) {
295
301
  samlAuthWindow = window.open(ssoURL, '_blank', 'location=no,height=570,width=520,scrollbars=yes,status=yes');
302
+ if (samlAuthWindow) {
303
+ popupClosedCheck = setInterval(() => {
304
+ if (samlAuthWindow.closed) {
305
+ clearInterval(popupClosedCheck);
306
+ if (samlCompletionPromise && !samlCompletionResolved) {
307
+ authEE === null || authEE === void 0 ? void 0 : authEE.emit(AuthStatus.SAML_POPUP_CLOSED_NO_AUTH);
308
+ }
309
+ }
310
+ }, 500);
311
+ }
296
312
  }
297
313
  else {
298
314
  samlAuthWindow.focus();
299
315
  }
300
316
  };
317
+ let samlCompletionResolved = false;
301
318
  authEE === null || authEE === void 0 ? void 0 : authEE.emit(AuthStatus.WAITING_FOR_POPUP);
302
319
  const containerEl = getDOMNode(triggerContainer);
303
320
  if (containerEl) {
@@ -309,6 +326,10 @@ async function samlPopupFlow(ssoURL, triggerContainer, triggerText) {
309
326
  samlCompletionPromise = samlCompletionPromise || new Promise((resolve, reject) => {
310
327
  window.addEventListener('message', (e) => {
311
328
  if (e.data.type === EmbedEvent.SAMLComplete) {
329
+ samlCompletionResolved = true;
330
+ if (popupClosedCheck) {
331
+ clearInterval(popupClosedCheck);
332
+ }
312
333
  e.source.close();
313
334
  resolve();
314
335
  }