@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
@@ -7,6 +7,7 @@ export enum UIPassthroughEvent {
7
7
  GetAvailableUIPassthroughs = 'getAvailableUiPassthroughs',
8
8
  GetAnswerConfig = 'getAnswerPageConfig',
9
9
  GetLiveboardConfig = 'getPinboardPageConfig',
10
+ GetUnsavedAnswerTML = 'getUnsavedAnswerTML',
10
11
  }
11
12
 
12
13
  // UI Passthrough Contract
@@ -63,6 +64,15 @@ export type UIPassthroughContractBase = {
63
64
  request: any;
64
65
  response: any;
65
66
  };
67
+ [UIPassthroughEvent.GetUnsavedAnswerTML]: {
68
+ request: {
69
+ sessionId?: string;
70
+ vizId?: string;
71
+ };
72
+ response: {
73
+ tml: string;
74
+ };
75
+ };
66
76
  };
67
77
 
68
78
  // UI Passthrough Request and Response
@@ -483,6 +483,18 @@ describe('Liveboard/viz embed tests', () => {
483
483
  });
484
484
  });
485
485
 
486
+ test('should not add liveboardXLSXCSVDownload flag when undefined', async () => {
487
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
488
+ ...defaultViewConfig,
489
+ liveboardId,
490
+ } as LiveboardViewConfig);
491
+ liveboardEmbed.render();
492
+ await executeAfterWait(() => {
493
+ const iframeSrc = getIFrameSrc();
494
+ expect(iframeSrc).not.toContain('isLiveboardXLSXCSVDownloadEnabled');
495
+ });
496
+ });
497
+
486
498
  test('should add isCentralizedLiveboardFilterUXEnabled flag and set value to true to the iframe src', async () => {
487
499
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
488
500
  ...defaultViewConfig,
@@ -840,6 +852,35 @@ describe('Liveboard/viz embed tests', () => {
840
852
  });
841
853
  });
842
854
 
855
+ test('should render the liveboard embed with updatedSpotterChatPrompt', async () => {
856
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
857
+ ...defaultViewConfig,
858
+ liveboardId,
859
+ updatedSpotterChatPrompt: true,
860
+ } as LiveboardViewConfig);
861
+ await liveboardEmbed.render();
862
+ await executeAfterWait(() => {
863
+ expectUrlMatchesWithParams(
864
+ getIFrameSrc(),
865
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}&updatedSpotterChatPrompt=true#/embed/viz/${liveboardId}`,
866
+ );
867
+ });
868
+ });
869
+ test('should render the liveboard embed with updatedSpotterChatPrompt disabled', async () => {
870
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
871
+ ...defaultViewConfig,
872
+ liveboardId,
873
+ updatedSpotterChatPrompt: false,
874
+ } as LiveboardViewConfig);
875
+ await liveboardEmbed.render();
876
+ await executeAfterWait(() => {
877
+ expectUrlMatchesWithParams(
878
+ getIFrameSrc(),
879
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}&updatedSpotterChatPrompt=false#/embed/viz/${liveboardId}`,
880
+ );
881
+ });
882
+ });
883
+
843
884
  test('SetActiveTab Hostevent should not trigger the navigate event with the correct path, for vizEmbed', async () => {
844
885
  const mockProcessTrigger = jest.spyOn(tsEmbed.TsEmbed.prototype, 'trigger');
845
886
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
@@ -396,6 +396,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, LiveboardOtherViewC
396
396
  * @version SDK: 1.41.1 | ThoughtSpot: 10.5.0.cl
397
397
  */
398
398
  showSpotterLimitations?: boolean;
399
+ /**
400
+ * updatedSpotterChatPrompt : Controls the updated spotter chat prompt.
401
+ *
402
+ * Supported embed types: `LiveboardEmbed`
403
+ * @default false
404
+ * @example
405
+ * ```js
406
+ * const embed = new LiveboardEmbed('#tsEmbed', {
407
+ * ... //other embed view config
408
+ * updatedSpotterChatPrompt : true,
409
+ * })
410
+ * ```
411
+ * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
412
+ */
413
+ updatedSpotterChatPrompt?: boolean;
399
414
  }
400
415
 
401
416
  /**
@@ -474,12 +489,13 @@ export class LiveboardEmbed extends V1Embed {
474
489
  isForceRedirect,
475
490
  dataSourceId,
476
491
  coverAndFilterOptionInPDF = false,
477
- liveboardXLSXCSVDownload = false,
492
+ liveboardXLSXCSVDownload,
478
493
  isLiveboardStylingAndGroupingEnabled,
479
494
  isPNGInScheduledEmailsEnabled = false,
480
495
  showSpotterLimitations,
481
496
  isCentralizedLiveboardFilterUXEnabled = false,
482
497
  isLinkParametersEnabled,
498
+ updatedSpotterChatPrompt,
483
499
  } = this.viewConfig;
484
500
 
485
501
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
@@ -501,6 +517,9 @@ export class LiveboardEmbed extends V1Embed {
501
517
  if (preventLiveboardFilterRemoval) {
502
518
  params[Param.preventLiveboardFilterRemoval] = true;
503
519
  }
520
+ if (!isUndefined(updatedSpotterChatPrompt)) {
521
+ params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
522
+ }
504
523
  if (visibleVizs) {
505
524
  params[Param.visibleVizs] = visibleVizs;
506
525
  }
@@ -574,7 +593,11 @@ export class LiveboardEmbed extends V1Embed {
574
593
  params[Param.DataPanelV2Enabled] = dataPanelV2;
575
594
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
576
595
  params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
577
- params[Param.LiveboardXLSXCSVDownload] = !!liveboardXLSXCSVDownload;
596
+
597
+ if (liveboardXLSXCSVDownload !== undefined) {
598
+ params[Param.LiveboardXLSXCSVDownload] = !!liveboardXLSXCSVDownload;
599
+ }
600
+
578
601
  const queryParams = getQueryParamString(params, true);
579
602
 
580
603
  return params;
@@ -26,6 +26,7 @@ import { ERROR_MESSAGE } from '../errors';
26
26
  import { getAuthPromise } from './base';
27
27
  import { getReleaseVersion } from '../auth';
28
28
  import { getEmbedConfig } from './embedConfig';
29
+ import { getInterceptInitData } from '../api-intercept';
29
30
 
30
31
  /**
31
32
  * Configuration for search options.
@@ -276,13 +277,6 @@ export interface SearchViewConfig
276
277
  * @deprecated Use {@link collapseSearchBar} instead
277
278
  */
278
279
  collapseSearchBarInitially?: boolean;
279
- /**
280
- * Flag to enable onBeforeSearchExecute Embed Event
281
- *
282
- * Supported embed types: `SearchEmbed`
283
- * @version: SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl
284
- */
285
- isOnBeforeGetVizDataInterceptEnabled?: boolean;
286
280
  /**
287
281
  * This controls the initial behaviour of custom column groups accordion.
288
282
  * It takes DataPanelCustomColumnGroupsAccordionState enum values as input.
@@ -397,8 +391,6 @@ export class SearchEmbed extends TsEmbed {
397
391
  runtimeParameters,
398
392
  collapseSearchBarInitially = false,
399
393
  enableCustomColumnGroups = false,
400
- isOnBeforeGetVizDataInterceptEnabled = false,
401
-
402
394
  dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
403
395
  focusSearchBarOnRender = true,
404
396
  excludeRuntimeParametersfromURL,
@@ -442,11 +434,6 @@ export class SearchEmbed extends TsEmbed {
442
434
  queryParams[Param.HideSearchBar] = true;
443
435
  }
444
436
 
445
- if (isOnBeforeGetVizDataInterceptEnabled) {
446
-
447
- queryParams[Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
448
- }
449
-
450
437
  if (!focusSearchBarOnRender) {
451
438
  queryParams[Param.FocusSearchBarOnRender] = focusSearchBarOnRender;
452
439
  }