@thoughtspot/visual-embed-sdk 1.43.0 → 1.44.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 (184) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/api-intercept.d.ts +51 -0
  3. package/cjs/src/api-intercept.d.ts.map +1 -0
  4. package/cjs/src/api-intercept.js +180 -0
  5. package/cjs/src/api-intercept.js.map +1 -0
  6. package/cjs/src/api-intercept.spec.d.ts +2 -0
  7. package/cjs/src/api-intercept.spec.d.ts.map +1 -0
  8. package/cjs/src/api-intercept.spec.js +672 -0
  9. package/cjs/src/api-intercept.spec.js.map +1 -0
  10. package/cjs/src/css-variables.d.ts +4 -0
  11. package/cjs/src/css-variables.d.ts.map +1 -1
  12. package/cjs/src/embed/app.d.ts +15 -5
  13. package/cjs/src/embed/app.d.ts.map +1 -1
  14. package/cjs/src/embed/app.js +7 -5
  15. package/cjs/src/embed/app.js.map +1 -1
  16. package/cjs/src/embed/app.spec.js +30 -0
  17. package/cjs/src/embed/app.spec.js.map +1 -1
  18. package/cjs/src/embed/conversation.d.ts +17 -2
  19. package/cjs/src/embed/conversation.d.ts.map +1 -1
  20. package/cjs/src/embed/conversation.js +5 -2
  21. package/cjs/src/embed/conversation.js.map +1 -1
  22. package/cjs/src/embed/conversation.spec.js +41 -0
  23. package/cjs/src/embed/conversation.spec.js.map +1 -1
  24. package/cjs/src/embed/hostEventClient/contracts.d.ts +11 -1
  25. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  27. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  28. package/cjs/src/embed/liveboard.d.ts +15 -0
  29. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  30. package/cjs/src/embed/liveboard.js +7 -2
  31. package/cjs/src/embed/liveboard.js.map +1 -1
  32. package/cjs/src/embed/liveboard.spec.js +33 -0
  33. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  34. package/cjs/src/embed/search.d.ts +0 -7
  35. package/cjs/src/embed/search.d.ts.map +1 -1
  36. package/cjs/src/embed/search.js +1 -4
  37. package/cjs/src/embed/search.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.d.ts +10 -0
  39. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  40. package/cjs/src/embed/ts-embed.js +56 -15
  41. package/cjs/src/embed/ts-embed.js.map +1 -1
  42. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  43. package/cjs/src/embed/ts-embed.spec.js +412 -238
  44. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  45. package/cjs/src/index.d.ts +2 -2
  46. package/cjs/src/index.d.ts.map +1 -1
  47. package/cjs/src/index.js +2 -1
  48. package/cjs/src/index.js.map +1 -1
  49. package/cjs/src/react/all-types-export.d.ts +1 -1
  50. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  51. package/cjs/src/react/all-types-export.js +2 -1
  52. package/cjs/src/react/all-types-export.js.map +1 -1
  53. package/cjs/src/types.d.ts +246 -89
  54. package/cjs/src/types.d.ts.map +1 -1
  55. package/cjs/src/types.js +182 -70
  56. package/cjs/src/types.js.map +1 -1
  57. package/cjs/src/utils/logger.d.ts.map +1 -1
  58. package/cjs/src/utils/logger.js +1 -2
  59. package/cjs/src/utils/logger.js.map +1 -1
  60. package/cjs/src/utils/processData.d.ts +1 -1
  61. package/cjs/src/utils/processData.d.ts.map +1 -1
  62. package/cjs/src/utils/processData.js +8 -8
  63. package/cjs/src/utils/processData.js.map +1 -1
  64. package/cjs/src/utils/processData.spec.js.map +1 -1
  65. package/dist/{index-HZ94j9Ey.js → index-B2QPwxuL.js} +1 -1
  66. package/dist/src/api-intercept.d.ts +51 -0
  67. package/dist/src/api-intercept.d.ts.map +1 -0
  68. package/dist/src/api-intercept.spec.d.ts +2 -0
  69. package/dist/src/api-intercept.spec.d.ts.map +1 -0
  70. package/dist/src/css-variables.d.ts +4 -0
  71. package/dist/src/css-variables.d.ts.map +1 -1
  72. package/dist/src/embed/app.d.ts +15 -5
  73. package/dist/src/embed/app.d.ts.map +1 -1
  74. package/dist/src/embed/conversation.d.ts +17 -2
  75. package/dist/src/embed/conversation.d.ts.map +1 -1
  76. package/dist/src/embed/hostEventClient/contracts.d.ts +11 -1
  77. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  78. package/dist/src/embed/liveboard.d.ts +15 -0
  79. package/dist/src/embed/liveboard.d.ts.map +1 -1
  80. package/dist/src/embed/search.d.ts +0 -7
  81. package/dist/src/embed/search.d.ts.map +1 -1
  82. package/dist/src/embed/ts-embed.d.ts +10 -0
  83. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  84. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  85. package/dist/src/index.d.ts +2 -2
  86. package/dist/src/index.d.ts.map +1 -1
  87. package/dist/src/react/all-types-export.d.ts +1 -1
  88. package/dist/src/react/all-types-export.d.ts.map +1 -1
  89. package/dist/src/types.d.ts +246 -89
  90. package/dist/src/types.d.ts.map +1 -1
  91. package/dist/src/utils/logger.d.ts.map +1 -1
  92. package/dist/src/utils/processData.d.ts +1 -1
  93. package/dist/src/utils/processData.d.ts.map +1 -1
  94. package/dist/tsembed-react.es.js +446 -119
  95. package/dist/tsembed-react.js +445 -118
  96. package/dist/tsembed.es.js +3588 -3261
  97. package/dist/tsembed.js +3586 -3259
  98. package/dist/visual-embed-sdk-react-full.d.ts +316 -103
  99. package/dist/visual-embed-sdk-react.d.ts +313 -103
  100. package/dist/visual-embed-sdk.d.ts +316 -103
  101. package/lib/package.json +1 -1
  102. package/lib/src/api-intercept.d.ts +51 -0
  103. package/lib/src/api-intercept.d.ts.map +1 -0
  104. package/lib/src/api-intercept.js +173 -0
  105. package/lib/src/api-intercept.js.map +1 -0
  106. package/lib/src/api-intercept.spec.d.ts +2 -0
  107. package/lib/src/api-intercept.spec.d.ts.map +1 -0
  108. package/lib/src/api-intercept.spec.js +669 -0
  109. package/lib/src/api-intercept.spec.js.map +1 -0
  110. package/lib/src/css-variables.d.ts +4 -0
  111. package/lib/src/css-variables.d.ts.map +1 -1
  112. package/lib/src/embed/app.d.ts +15 -5
  113. package/lib/src/embed/app.d.ts.map +1 -1
  114. package/lib/src/embed/app.js +8 -6
  115. package/lib/src/embed/app.js.map +1 -1
  116. package/lib/src/embed/app.spec.js +30 -0
  117. package/lib/src/embed/app.spec.js.map +1 -1
  118. package/lib/src/embed/conversation.d.ts +17 -2
  119. package/lib/src/embed/conversation.d.ts.map +1 -1
  120. package/lib/src/embed/conversation.js +5 -2
  121. package/lib/src/embed/conversation.js.map +1 -1
  122. package/lib/src/embed/conversation.spec.js +41 -0
  123. package/lib/src/embed/conversation.spec.js.map +1 -1
  124. package/lib/src/embed/hostEventClient/contracts.d.ts +11 -1
  125. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  126. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  127. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  128. package/lib/src/embed/liveboard.d.ts +15 -0
  129. package/lib/src/embed/liveboard.d.ts.map +1 -1
  130. package/lib/src/embed/liveboard.js +7 -2
  131. package/lib/src/embed/liveboard.js.map +1 -1
  132. package/lib/src/embed/liveboard.spec.js +33 -0
  133. package/lib/src/embed/liveboard.spec.js.map +1 -1
  134. package/lib/src/embed/search.d.ts +0 -7
  135. package/lib/src/embed/search.d.ts.map +1 -1
  136. package/lib/src/embed/search.js +1 -4
  137. package/lib/src/embed/search.js.map +1 -1
  138. package/lib/src/embed/ts-embed.d.ts +10 -0
  139. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  140. package/lib/src/embed/ts-embed.js +56 -15
  141. package/lib/src/embed/ts-embed.js.map +1 -1
  142. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  143. package/lib/src/embed/ts-embed.spec.js +412 -238
  144. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  145. package/lib/src/index.d.ts +2 -2
  146. package/lib/src/index.d.ts.map +1 -1
  147. package/lib/src/index.js +2 -2
  148. package/lib/src/index.js.map +1 -1
  149. package/lib/src/react/all-types-export.d.ts +1 -1
  150. package/lib/src/react/all-types-export.d.ts.map +1 -1
  151. package/lib/src/react/all-types-export.js +1 -1
  152. package/lib/src/react/all-types-export.js.map +1 -1
  153. package/lib/src/types.d.ts +246 -89
  154. package/lib/src/types.d.ts.map +1 -1
  155. package/lib/src/types.js +181 -69
  156. package/lib/src/types.js.map +1 -1
  157. package/lib/src/utils/logger.d.ts.map +1 -1
  158. package/lib/src/utils/logger.js +1 -2
  159. package/lib/src/utils/logger.js.map +1 -1
  160. package/lib/src/utils/processData.d.ts +1 -1
  161. package/lib/src/utils/processData.d.ts.map +1 -1
  162. package/lib/src/utils/processData.js +8 -8
  163. package/lib/src/utils/processData.js.map +1 -1
  164. package/lib/src/utils/processData.spec.js.map +1 -1
  165. package/package.json +1 -1
  166. package/src/api-intercept.spec.ts +856 -0
  167. package/src/api-intercept.ts +204 -0
  168. package/src/css-variables.ts +5 -0
  169. package/src/embed/app.spec.ts +41 -2
  170. package/src/embed/app.ts +48 -38
  171. package/src/embed/conversation.spec.ts +54 -0
  172. package/src/embed/conversation.ts +24 -3
  173. package/src/embed/hostEventClient/contracts.ts +10 -0
  174. package/src/embed/liveboard.spec.ts +41 -0
  175. package/src/embed/liveboard.ts +25 -2
  176. package/src/embed/search.ts +1 -14
  177. package/src/embed/ts-embed.spec.ts +498 -250
  178. package/src/embed/ts-embed.ts +80 -32
  179. package/src/index.ts +2 -0
  180. package/src/react/all-types-export.ts +1 -0
  181. package/src/types.ts +328 -165
  182. package/src/utils/logger.ts +1 -2
  183. package/src/utils/processData.spec.ts +0 -1
  184. package/src/utils/processData.ts +10 -11
@@ -697,6 +697,10 @@ export interface CustomCssVariables {
697
697
  * Background color of the summary header in the CCA modal.
698
698
  */
699
699
  "--ts-var-cca-modal-summary-header-background"?: string;
700
+ /**
701
+ * Width of the Spotter chat window.
702
+ */
703
+ "--ts-var-spotter-chat-width"?: string;
700
704
  }
701
705
  export interface SessionInterface {
702
706
  sessionId: string;
@@ -1592,7 +1596,7 @@ export interface FrameParams {
1592
1596
  /**
1593
1597
  * The common configuration object for an embedded view.
1594
1598
  */
1595
- export interface BaseViewConfig {
1599
+ export interface BaseViewConfig extends ApiInterceptFlags {
1596
1600
  /**
1597
1601
  * @hidden
1598
1602
  */
@@ -2145,7 +2149,7 @@ export interface SearchLiveboardCommonViewConfig {
2145
2149
  *
2146
2150
  * Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
2147
2151
  * @default true
2148
- * @version SDK: 1.43.0 | ThoughtSpot Cloud: 10.14.0.cl
2152
+ * @version SDK: 1.41.1 | ThoughtSpot Cloud: 10.14.0.cl
2149
2153
  * @example
2150
2154
  * ```js
2151
2155
  * // Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
@@ -2344,26 +2348,27 @@ export interface LiveboardAppEmbedViewConfig {
2344
2348
  */
2345
2349
  enableAskSage?: boolean;
2346
2350
  /**
2347
- * This flag is used to show or hide checkboxes for including or excluding
2348
- * the cover and filters pages in the Liveboard PDF.
2349
- *
2350
- * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2351
- * @version SDK: 1.40.0 | ThoughtSpot:10.8.0.cl
2352
- * @example
2353
- * ```js
2354
- * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
2355
- * const embed = new <EmbedComponent>('#tsEmbed', {
2356
- * ... // other embed view config
2357
- * coverAndFilterOptionInPDF: false,
2358
- * })
2359
- * ```
2360
- */
2351
+ * This flag is used to show or hide checkboxes for including or excluding
2352
+ * the cover and filters pages in the Liveboard PDF.
2353
+ *
2354
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2355
+ * @version SDK: 1.40.0 | ThoughtSpot:10.8.0.cl
2356
+ * @example
2357
+ * ```js
2358
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
2359
+ * const embed = new <EmbedComponent>('#tsEmbed', {
2360
+ * ... // other embed view config
2361
+ * coverAndFilterOptionInPDF: false,
2362
+ * })
2363
+ * ```
2364
+ */
2361
2365
  coverAndFilterOptionInPDF?: boolean;
2362
2366
  /**
2363
2367
  * This flag is used to enable or disable the XLSX/CSV download option for Liveboards.
2368
+ * To enable this feature on your instance, contact ThoughtSpot Support.
2364
2369
  *
2365
2370
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
2366
- * @version SDK: 1.41.0 | ThoughtSpot: 10.14.0.cl
2371
+ * @version SDK: 1.41.0 | ThoughtSpot: 26.3.0.cl
2367
2372
  * @example
2368
2373
  * ```js
2369
2374
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -3555,21 +3560,24 @@ export declare enum EmbedEvent {
3555
3560
 
3556
3561
  * Prerequisite: Set `isOnBeforeGetVizDataInterceptEnabled` to `true`
3557
3562
  * for this embed event to get emitted.
3558
- * @param: payload
3559
- * @param: responder
3563
+ * @param:payload The payload received from the embed related to the Data API call.
3564
+ * @param:responder
3560
3565
  * Contains elements that lets developers define whether ThoughtSpot
3561
3566
  * should run the search, and if not, what error message
3562
3567
  * should be shown to the user.
3563
3568
  *
3564
- * execute: When execute returns `true`, the search will be run.
3569
+ * `execute` - When execute returns `true`, the search will be run.
3565
3570
  * When execute returns `false`, the search will not be executed.
3566
3571
  *
3567
- * error: Developers can customize the error message text when `execute`
3568
- * returns `false` using the error parameter in responder.
3572
+ * `error` - Developers can customize the error message text when `execute`
3573
+ * is `false` using the `errorText` and `errorDescription` parameters in responder.
3574
+ *
3575
+ * `errorText` - The error message text to be shown to the user.
3576
+ * `errorDescription (ThoughtSpot: 10.15.0.cl and above)` - The error description to be shown to the user.
3569
3577
  * @version SDK : 1.29.0 | ThoughtSpot: 10.3.0.cl
3570
3578
  * @example
3571
3579
  *```js
3572
- * .on(EmbedEvent.OnBeforeGetVizDataIntercept,
3580
+ * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept,
3573
3581
  * (payload, responder) => {
3574
3582
  * responder({
3575
3583
  * data: {
@@ -3585,7 +3593,7 @@ export declare enum EmbedEvent {
3585
3593
  * ```
3586
3594
  *
3587
3595
  *```js
3588
- * .on(EmbedEvent.OnBeforeGetVizDataIntercept,
3596
+ * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept,
3589
3597
  * (payload, responder) => {
3590
3598
  * const query = payload.data.data.answer.search_query
3591
3599
  * responder({
@@ -3596,7 +3604,8 @@ export declare enum EmbedEvent {
3596
3604
  * error: {
3597
3605
  * //Provide a custom error message to explain to your end user
3598
3606
  * // why their search did not run, and which searches are accepted by your custom logic.
3599
- * errorText: "You can't use this query :" + query + ".
3607
+ * errorText: "Error Occurred",
3608
+ * errorDescription: "You can't use this query :" + query + ".
3600
3609
  * The 'sales' measures can never be used at the 'county' level.
3601
3610
  * Please try another measure, or remove 'county' from your search."
3602
3611
  * }
@@ -3660,17 +3669,17 @@ export declare enum EmbedEvent {
3660
3669
  */
3661
3670
  TableVizRendered = "TableVizRendered",
3662
3671
  /**
3663
- * Emitted when the liveboard is created from pin modal or Liveboard list page.
3664
- * You can use this event as a hook to trigger
3665
- * other events on liveboard creation.
3666
- *
3667
- * ```js
3668
- * liveboardEmbed.on(EmbedEvent.CreateLiveboard, (payload) => {
3669
- * console.log('payload', payload);
3670
- * })
3671
- *```
3672
- * @version SDK : 1.37.0 | ThoughtSpot: 10.8.0.cl
3673
- */
3672
+ * Emitted when the liveboard is created from pin modal or Liveboard list page.
3673
+ * You can use this event as a hook to trigger
3674
+ * other events on liveboard creation.
3675
+ *
3676
+ * ```js
3677
+ * liveboardEmbed.on(EmbedEvent.CreateLiveboard, (payload) => {
3678
+ * console.log('payload', payload);
3679
+ * })
3680
+ *```
3681
+ * @version SDK : 1.37.0 | ThoughtSpot: 10.8.0.cl
3682
+ */
3674
3683
  CreateLiveboard = "createLiveboard",
3675
3684
  /**
3676
3685
  * Emitted when a user creates a Model.
@@ -3766,6 +3775,17 @@ export declare enum EmbedEvent {
3766
3775
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
3767
3776
  */
3768
3777
  SpotterInit = "spotterInit",
3778
+ /**
3779
+ * Emitted when a *Spotter* conversation has been successfully created.
3780
+ * @example
3781
+ * ```js
3782
+ * spotterEmbed.on(EmbedEvent.SpotterLoadComplete, (payload) => {
3783
+ * console.log('payload', payload);
3784
+ * })
3785
+ *```
3786
+ * @version SDK: 1.44.0 | ThoughtSpot: 26.2.0.cl
3787
+ */
3788
+ SpotterLoadComplete = "spotterLoadComplete",
3769
3789
  /**
3770
3790
  * @hidden
3771
3791
  * Triggers when the embed listener is ready to receive events.
@@ -3788,7 +3808,73 @@ export declare enum EmbedEvent {
3788
3808
  * ```
3789
3809
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
3790
3810
  */
3791
- OrgSwitched = "orgSwitched"
3811
+ OrgSwitched = "orgSwitched",
3812
+ /**
3813
+ * Emitted when the user intercepts a URL.
3814
+ *
3815
+ * Supported on all embed types.
3816
+ *
3817
+ * @example
3818
+ *
3819
+ * ```js
3820
+ * embed.on(EmbedEvent.ApiIntercept, (payload, responder) => {
3821
+ * console.log('payload', payload);
3822
+ * responder({
3823
+ * data: {
3824
+ * execute: false,
3825
+ * error: {
3826
+ * errorText: 'Error Occurred',
3827
+ * }
3828
+ * }
3829
+ * })
3830
+ * })
3831
+ * ```
3832
+ *
3833
+ * ```js
3834
+ * // We can also send a response for the intercepted api
3835
+ * embed.on(EmbedEvent.ApiIntercept, (payload, responder) => {
3836
+ * console.log('payload', payload);
3837
+ * responder({
3838
+ * data: {
3839
+ * execute: false,
3840
+ * response: {
3841
+ * body: {
3842
+ * data: {
3843
+ * // Some api response
3844
+ * },
3845
+ * }
3846
+ * }
3847
+ * }
3848
+ * })
3849
+ * })
3850
+ *
3851
+ * // here embed will use the response from the responder as the response for the api
3852
+ * ```
3853
+ *
3854
+ * ```js
3855
+ * // We can also send error in response for the intercepted api
3856
+ * embed.on(EmbedEvent.ApiIntercept, (payload, responder) => {
3857
+ * console.log('payload', payload);
3858
+ * responder({
3859
+ * data: {
3860
+ * execute: false,
3861
+ * response: {
3862
+ * body: {
3863
+ * errors: [{
3864
+ * title: 'Error Occurred',
3865
+ * description: 'Error Description',
3866
+ * isUserError: true,
3867
+ * }],
3868
+ * data: {},
3869
+ * },
3870
+ * }
3871
+ * }
3872
+ * })
3873
+ * })
3874
+ * ```
3875
+ * @version SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
3876
+ */
3877
+ ApiIntercept = "ApiIntercept"
3792
3878
  }
3793
3879
  /**
3794
3880
  * Event types that can be triggered by the host application
@@ -4255,14 +4341,14 @@ export declare enum HostEvent {
4255
4341
  * ```
4256
4342
  * @example
4257
4343
  * ```js
4258
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in MakeACopy host event.
4259
- * let latestSpotterVizId = '';
4260
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4261
- * latestSpotterVizId = payload.data.id;
4262
- * });
4263
- *
4264
- * spotterEmbed.trigger(HostEvent.MakeACopy, { vizId: latestSpotterVizId });
4265
- * ```
4344
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in MakeACopy host event.
4345
+ * let latestSpotterVizId = '';
4346
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4347
+ * latestSpotterVizId = payload.data.id;
4348
+ * });
4349
+ *
4350
+ * spotterEmbed.trigger(HostEvent.MakeACopy, { vizId: latestSpotterVizId });
4351
+ * ```
4266
4352
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
4267
4353
  */
4268
4354
  MakeACopy = "makeACopy",
@@ -4486,14 +4572,14 @@ export declare enum HostEvent {
4486
4572
  * embed.trigger(HostEvent.Download)
4487
4573
  * ```
4488
4574
  * ```js
4489
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in Download host event.
4490
- * let latestSpotterVizId = '';
4491
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4492
- * latestSpotterVizId = payload.data.id;
4493
- * });
4494
- *
4495
- * spotterEmbed.trigger(HostEvent.Download, { vizId: latestSpotterVizId });
4496
- * ```
4575
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in Download host event.
4576
+ * let latestSpotterVizId = '';
4577
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4578
+ * latestSpotterVizId = payload.data.id;
4579
+ * });
4580
+ *
4581
+ * spotterEmbed.trigger(HostEvent.Download, { vizId: latestSpotterVizId });
4582
+ * ```
4497
4583
  * @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1.sw
4498
4584
  * Use {@link DownloadAsPng}
4499
4585
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
@@ -4511,13 +4597,13 @@ export declare enum HostEvent {
4511
4597
  *
4512
4598
  * searchEmbed.trigger(HostEvent.DownloadAsPng)
4513
4599
  *
4514
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsPng host event.
4515
- * let latestSpotterVizId = '';
4516
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4517
- * latestSpotterVizId = payload.data.id;
4518
- * });
4519
- *
4520
- * spotterEmbed.trigger(HostEvent.DownloadAsPng, { vizId: latestSpotterVizId });
4600
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsPng host event.
4601
+ * let latestSpotterVizId = '';
4602
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4603
+ * latestSpotterVizId = payload.data.id;
4604
+ * });
4605
+ *
4606
+ * spotterEmbed.trigger(HostEvent.DownloadAsPng, { vizId: latestSpotterVizId });
4521
4607
  * ```
4522
4608
  *
4523
4609
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.1.sw
@@ -4539,13 +4625,13 @@ export declare enum HostEvent {
4539
4625
  * searchEmbed.trigger(HostEvent.DownloadAsCsv)
4540
4626
  * ```
4541
4627
  * ```js
4542
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsCsv host event.
4543
- * let latestSpotterVizId = '';
4544
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4545
- * latestSpotterVizId = payload.data.id;
4546
- * });
4547
- *
4548
- * spotterEmbed.trigger(HostEvent.DownloadAsCsv, { vizId: latestSpotterVizId });
4628
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsCsv host event.
4629
+ * let latestSpotterVizId = '';
4630
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4631
+ * latestSpotterVizId = payload.data.id;
4632
+ * });
4633
+ *
4634
+ * spotterEmbed.trigger(HostEvent.DownloadAsCsv, { vizId: latestSpotterVizId });
4549
4635
  * ```
4550
4636
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
4551
4637
  */
@@ -4566,13 +4652,13 @@ export declare enum HostEvent {
4566
4652
  * searchEmbed.trigger(HostEvent.DownloadAsXlsx)
4567
4653
  * ```
4568
4654
  * ```js
4569
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsXlsx host event.
4570
- * let latestSpotterVizId = '';
4571
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4572
- * latestSpotterVizId = payload.data.id;
4573
- * });
4574
- *
4575
- * spotterEmbed.trigger(HostEvent.DownloadAsXlsx, { vizId: latestSpotterVizId });
4655
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in DownloadAsXlsx host event.
4656
+ * let latestSpotterVizId = '';
4657
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4658
+ * latestSpotterVizId = payload.data.id;
4659
+ * });
4660
+ *
4661
+ * spotterEmbed.trigger(HostEvent.DownloadAsXlsx, { vizId: latestSpotterVizId });
4576
4662
  * ```
4577
4663
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
4578
4664
  */
@@ -4937,13 +5023,13 @@ export declare enum HostEvent {
4937
5023
  * });
4938
5024
  *```
4939
5025
  *```js
4940
- * // You can use the Data event dispatched on each answer creation to get the vizId and use in GetParameters host event.
4941
- * let latestSpotterVizId = '';
4942
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4943
- * latestSpotterVizId = payload.data.id;
4944
- * });
4945
- *
4946
- * spotterEmbed.trigger(HostEvent.GetParameters, { vizId: latestSpotterVizId });
5026
+ * // You can use the Data event dispatched on each answer creation to get the vizId and use in GetParameters host event.
5027
+ * let latestSpotterVizId = '';
5028
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
5029
+ * latestSpotterVizId = payload.data.id;
5030
+ * });
5031
+ *
5032
+ * spotterEmbed.trigger(HostEvent.GetParameters, { vizId: latestSpotterVizId });
4947
5033
  *```
4948
5034
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
4949
5035
  */
@@ -4992,8 +5078,8 @@ export declare enum HostEvent {
4992
5078
  * spotterEmbed.on(EmbedEvent.Data, (payload) => {
4993
5079
  * latestSpotterVizId = payload.data.id;
4994
5080
  * });
4995
- *
4996
- * spotterEmbed.trigger(HostEvent.SaveAnswer, { vizId: latestSpotterVizId });
5081
+ *
5082
+ * spotterEmbed.trigger(HostEvent.SaveAnswer, { vizId: latestSpotterVizId });
4997
5083
  * ```
4998
5084
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
4999
5085
  */
@@ -5084,8 +5170,8 @@ export declare enum HostEvent {
5084
5170
  * spotterEmbed.on(EmbedEvent.Data, (payload) => {
5085
5171
  * latestSpotterVizId = payload.data.id;
5086
5172
  * });
5087
- *
5088
- * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
5173
+ *
5174
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
5089
5175
  *```
5090
5176
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
5091
5177
  */
@@ -5122,8 +5208,8 @@ export declare enum HostEvent {
5122
5208
  * spotterEmbed.on(EmbedEvent.Data, (payload) => {
5123
5209
  * latestSpotterVizId = payload.data.id;
5124
5210
  * });
5125
- *
5126
- * spotterEmbed.trigger(HostEvent.AskSpotter, { vizId: latestSpotterVizId });
5211
+ *
5212
+ * spotterEmbed.trigger(HostEvent.AskSpotter, { vizId: latestSpotterVizId });
5127
5213
  * ```
5128
5214
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
5129
5215
  */
@@ -5146,7 +5232,19 @@ export declare enum HostEvent {
5146
5232
  * ```
5147
5233
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
5148
5234
  */
5149
- DestroyEmbed = "EmbedDestroyed"
5235
+ DestroyEmbed = "EmbedDestroyed",
5236
+ /** Triggers a create new conversation operation in spotter embed.
5237
+ * @example
5238
+ * ```js
5239
+ * This feature is available only when chat history is enabled on your ThoughtSpot instance.
5240
+ * Contact your admin or ThoughtSpot Support to enable chat history on your instance.
5241
+ * @example
5242
+ * ```js
5243
+ * spotterEmbed.trigger(HostEvent.StartNewSpotterConversation);
5244
+ * ```
5245
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
5246
+ */
5247
+ StartNewSpotterConversation = "StartNewSpotterConversation"
5150
5248
  }
5151
5249
  /**
5152
5250
  * The different visual modes that the data sources panel within
@@ -6665,14 +6763,77 @@ export interface DefaultAppInitData {
6665
6763
  customVariablesForThirdPartyTools: Record<string, any>;
6666
6764
  hiddenListColumns: ListPageColumns[];
6667
6765
  customActions: CustomAction[];
6766
+ interceptTimeout: number | undefined;
6767
+ interceptUrls: (string | InterceptedApiType)[];
6668
6768
  }
6769
+ /**
6770
+ * Enum for the type of API intercepted
6771
+ */
6772
+ export declare enum InterceptedApiType {
6773
+ /**
6774
+ * The apis that are use to get the data for the embed
6775
+ */
6776
+ AnswerData = "AnswerData",
6777
+ /**
6778
+ * This will intercept all the apis
6779
+ */
6780
+ ALL = "ALL",
6781
+ /**
6782
+ * The apis that are use to get the data for the liveboard
6783
+ */
6784
+ LiveboardData = "LiveboardData"
6785
+ }
6786
+ export type ApiInterceptFlags = {
6787
+ /**
6788
+ * Flag that allows using `EmbedEvent.OnBeforeGetVizDataIntercept`.
6789
+ *
6790
+ * Can be used for Serach and App Embed from SDK 1.29.0
6791
+ *
6792
+ * @version SDK : 1.43.0 | ThoughtSpot: 10.15.0.cl
6793
+ */
6794
+ isOnBeforeGetVizDataInterceptEnabled?: boolean;
6795
+ /**
6796
+ * This allows to intercept the urls passed, once intercepted the api will only
6797
+ * run based on the reponse from the responder of ApiIntercept event.
6798
+ *
6799
+ * @example
6800
+ * ```js
6801
+ * const embed = new LiveboardEmbed('#embed', {
6802
+ * ...viewConfig,
6803
+ * enableApiIntercept: true,
6804
+ * interceptUrls: [InterceptedApiType.DATA],
6805
+ * })
6806
+ * ```
6807
+ *
6808
+ * @version SDK : 1.43.0 | ThoughtSpot: 10.15.0.cl
6809
+ */
6810
+ interceptUrls?: (string | InterceptedApiType)[];
6811
+ /**
6812
+ * The timeout for the intercept, default is 30000ms
6813
+ * the api will error out if the timeout is reached
6814
+ *
6815
+ * @example
6816
+ * ```js
6817
+ * const embed = new LiveboardEmbed('#embed', {
6818
+ * ...viewConfig,
6819
+ * enableApiIntercept: true,
6820
+ * interceptUrls: [InterceptedApiType.ALL],
6821
+ * interceptTimeout: 1000,
6822
+ * })
6823
+ * ```
6824
+ *
6825
+ * @version SDK : 1.43.0 | ThoughtSpot: 10.15.0.cl
6826
+ */
6827
+ interceptTimeout?: number;
6828
+ };
6669
6829
  export declare enum UIPassthroughEvent {
6670
6830
  PinAnswerToLiveboard = "addVizToPinboard",
6671
6831
  SaveAnswer = "saveAnswer",
6672
6832
  GetDiscoverabilityStatus = "getDiscoverabilityStatus",
6673
6833
  GetAvailableUIPassthroughs = "getAvailableUiPassthroughs",
6674
6834
  GetAnswerConfig = "getAnswerPageConfig",
6675
- GetLiveboardConfig = "getPinboardPageConfig"
6835
+ GetLiveboardConfig = "getPinboardPageConfig",
6836
+ GetUnsavedAnswerTML = "getUnsavedAnswerTML"
6676
6837
  }
6677
6838
  export type UIPassthroughContractBase = {
6678
6839
  [UIPassthroughEvent.PinAnswerToLiveboard]: {
@@ -6727,6 +6888,15 @@ export type UIPassthroughContractBase = {
6727
6888
  request: any;
6728
6889
  response: any;
6729
6890
  };
6891
+ [UIPassthroughEvent.GetUnsavedAnswerTML]: {
6892
+ request: {
6893
+ sessionId?: string;
6894
+ vizId?: string;
6895
+ };
6896
+ response: {
6897
+ tml: string;
6898
+ };
6899
+ };
6730
6900
  };
6731
6901
  export type UIPassthroughRequest<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["request"];
6732
6902
  export type UIPassthroughResponse<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]["response"];
@@ -6882,6 +7052,8 @@ declare class TsEmbed {
6882
7052
  * work regardless of auth status
6883
7053
  */
6884
7054
  private subscribeToNetworkEvents;
7055
+ private handleApiInterceptEvent;
7056
+ private messageEventListener;
6885
7057
  /**
6886
7058
  * Subscribe to message events that depend on successful iframe setup
6887
7059
  */
@@ -6968,6 +7140,14 @@ declare class TsEmbed {
6968
7140
  * @param height The height in pixels
6969
7141
  */
6970
7142
  protected setIFrameHeight(height: number | string): void;
7143
+ /**
7144
+ * We can process the customer given payload before sending it to the embed port
7145
+ * Embed event handler -> responder -> createEmbedEventResponder -> send response
7146
+ * @param eventPort The event port for a specific MessageChannel
7147
+ * @param eventType The event type
7148
+ * @returns
7149
+ */
7150
+ protected createEmbedEventResponder: (eventPort: MessagePort | void, eventType: EmbedEvent) => (payload: any) => void;
6971
7151
  /**
6972
7152
  * Executes all registered event handlers for a particular event type
6973
7153
  * @param eventType The event type
@@ -7688,11 +7868,6 @@ export interface AppViewConfig extends AllEmbedViewConfig {
7688
7868
  * ```
7689
7869
  */
7690
7870
  dataPanelCustomGroupsAccordionInitialState?: DataPanelCustomColumnGroupsAccordionState;
7691
- /**
7692
- * Flag that allows using `EmbedEvent.OnBeforeGetVizDataIntercept`.
7693
- * @version SDK : 1.29.0 | ThoughtSpot: 10.1.0.cl
7694
- */
7695
- isOnBeforeGetVizDataInterceptEnabled?: boolean;
7696
7871
  /**
7697
7872
  * Flag to use home page search bar mode
7698
7873
  *
@@ -7787,6 +7962,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
7787
7962
  * @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
7788
7963
  */
7789
7964
  lazyLoadingMargin?: string;
7965
+ /**
7966
+ * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
7967
+ *
7968
+ * Supported embed types: `AppEmbed`
7969
+ * @default false
7970
+ * @example
7971
+ * ```js
7972
+ * const embed = new AppEmbed('#tsEmbed', {
7973
+ * ... //other embed view config
7974
+ * updatedSpotterChatPrompt : true,
7975
+ * })
7976
+ * ```
7977
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
7978
+ */
7979
+ updatedSpotterChatPrompt?: boolean;
7790
7980
  }
7791
7981
  /**
7792
7982
  * Embeds full ThoughtSpot experience in a host application.
@@ -8443,6 +8633,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
8443
8633
  * @version SDK: 1.41.1 | ThoughtSpot: 10.5.0.cl
8444
8634
  */
8445
8635
  showSpotterLimitations?: boolean;
8636
+ /**
8637
+ * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
8638
+ *
8639
+ * Supported embed types: `LiveboardEmbed`
8640
+ * @default false
8641
+ * @example
8642
+ * ```js
8643
+ * const embed = new LiveboardEmbed('#tsEmbed', {
8644
+ * ... //other embed view config
8645
+ * updatedSpotterChatPrompt : true,
8646
+ * })
8647
+ * ```
8648
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
8649
+ */
8650
+ updatedSpotterChatPrompt?: boolean;
8446
8651
  }
8447
8652
  /**
8448
8653
  * Embed a ThoughtSpot Liveboard or visualization. When rendered it already
@@ -8781,13 +8986,6 @@ export interface SearchViewConfig extends SearchLiveboardCommonViewConfig, Omit<
8781
8986
  * @deprecated Use {@link collapseSearchBar} instead
8782
8987
  */
8783
8988
  collapseSearchBarInitially?: boolean;
8784
- /**
8785
- * Flag to enable onBeforeSearchExecute Embed Event
8786
- *
8787
- * Supported embed types: `SearchEmbed`
8788
- * @version: SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl
8789
- */
8790
- isOnBeforeGetVizDataInterceptEnabled?: boolean;
8791
8989
  /**
8792
8990
  * This controls the initial behaviour of custom column groups accordion.
8793
8991
  * It takes DataPanelCustomColumnGroupsAccordionState enum values as input.
@@ -9149,7 +9347,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
9149
9347
  *
9150
9348
  * Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
9151
9349
  * @default true
9152
- * @version SDK: 1.43.0 | ThoughtSpot Cloud: 10.14.0.cl
9350
+ * @version SDK: 1.41.1 | ThoughtSpot Cloud: 10.14.0.cl
9153
9351
  * @example
9154
9352
  * ```js
9155
9353
  * // Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
@@ -9264,9 +9462,24 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
9264
9462
  * enablePastConversationsSidebar : true,
9265
9463
  * })
9266
9464
  * ```
9267
- * @version SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
9465
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
9268
9466
  */
9269
9467
  enablePastConversationsSidebar?: boolean;
9468
+ /**
9469
+ * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
9470
+ *
9471
+ * Supported embed types: `SpotterEmbed`
9472
+ * @default false
9473
+ * @example
9474
+ * ```js
9475
+ * const embed = new SpotterEmbed('#tsEmbed', {
9476
+ * ... //other embed view config
9477
+ * updatedSpotterChatPrompt : true,
9478
+ * })
9479
+ * ```
9480
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
9481
+ */
9482
+ updatedSpotterChatPrompt?: boolean;
9270
9483
  }
9271
9484
  /**
9272
9485
  * The configuration for the embedded spotterEmbed options.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.43.0",
3
+ "version": "1.44.0",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",