@thoughtspot/visual-embed-sdk 1.42.0 → 1.42.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/api-intercept.d.ts +27 -0
  3. package/cjs/src/api-intercept.d.ts.map +1 -0
  4. package/cjs/src/api-intercept.js +115 -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 +122 -0
  9. package/cjs/src/api-intercept.spec.js.map +1 -0
  10. package/cjs/src/embed/app.d.ts.map +1 -1
  11. package/cjs/src/embed/app.js +7 -2
  12. package/cjs/src/embed/app.js.map +1 -1
  13. package/cjs/src/embed/app.spec.js +20 -0
  14. package/cjs/src/embed/app.spec.js.map +1 -1
  15. package/cjs/src/embed/hostEventClient/contracts.d.ts +11 -1
  16. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  17. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  18. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  19. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  20. package/cjs/src/embed/liveboard.js +4 -1
  21. package/cjs/src/embed/liveboard.js.map +1 -1
  22. package/cjs/src/embed/liveboard.spec.js +22 -0
  23. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  24. package/cjs/src/embed/search.d.ts.map +1 -1
  25. package/cjs/src/embed/search.js +3 -1
  26. package/cjs/src/embed/search.js.map +1 -1
  27. package/cjs/src/embed/ts-embed.d.ts +15 -0
  28. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  29. package/cjs/src/embed/ts-embed.js +94 -26
  30. package/cjs/src/embed/ts-embed.js.map +1 -1
  31. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  32. package/cjs/src/embed/ts-embed.spec.js +168 -0
  33. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  34. package/cjs/src/errors.d.ts +1 -0
  35. package/cjs/src/errors.d.ts.map +1 -1
  36. package/cjs/src/errors.js +1 -0
  37. package/cjs/src/errors.js.map +1 -1
  38. package/cjs/src/index.d.ts +2 -2
  39. package/cjs/src/index.d.ts.map +1 -1
  40. package/cjs/src/index.js +2 -1
  41. package/cjs/src/index.js.map +1 -1
  42. package/cjs/src/react/all-types-export.d.ts +1 -1
  43. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  44. package/cjs/src/react/all-types-export.js +2 -1
  45. package/cjs/src/react/all-types-export.js.map +1 -1
  46. package/cjs/src/types.d.ts +100 -4
  47. package/cjs/src/types.d.ts.map +1 -1
  48. package/cjs/src/types.js +39 -1
  49. package/cjs/src/types.js.map +1 -1
  50. package/cjs/src/utils/processData.d.ts +1 -1
  51. package/cjs/src/utils/processData.d.ts.map +1 -1
  52. package/cjs/src/utils/processData.js +8 -8
  53. package/cjs/src/utils/processData.js.map +1 -1
  54. package/dist/index-BCC3Z072.js +7371 -0
  55. package/dist/index-BEzW4MDA.js +7371 -0
  56. package/dist/{index-BpSohedu.js → index-DvNA626T.js} +1 -1
  57. package/dist/src/api-intercept.d.ts +27 -0
  58. package/dist/src/api-intercept.d.ts.map +1 -0
  59. package/dist/src/api-intercept.spec.d.ts +2 -0
  60. package/dist/src/api-intercept.spec.d.ts.map +1 -0
  61. package/dist/src/embed/app.d.ts.map +1 -1
  62. package/dist/src/embed/hostEventClient/contracts.d.ts +11 -1
  63. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  64. package/dist/src/embed/liveboard.d.ts.map +1 -1
  65. package/dist/src/embed/search.d.ts.map +1 -1
  66. package/dist/src/embed/ts-embed.d.ts +15 -0
  67. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  68. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  69. package/dist/src/errors.d.ts +1 -0
  70. package/dist/src/errors.d.ts.map +1 -1
  71. package/dist/src/index.d.ts +2 -2
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/react/all-types-export.d.ts +1 -1
  74. package/dist/src/react/all-types-export.d.ts.map +1 -1
  75. package/dist/src/types.d.ts +100 -4
  76. package/dist/src/types.d.ts.map +1 -1
  77. package/dist/src/utils/processData.d.ts +1 -1
  78. package/dist/src/utils/processData.d.ts.map +1 -1
  79. package/dist/tsembed-react.es.js +266 -51
  80. package/dist/tsembed-react.js +265 -50
  81. package/dist/tsembed.es.js +267 -52
  82. package/dist/tsembed.js +265 -50
  83. package/dist/visual-embed-sdk-react-full.d.ts +124 -4
  84. package/dist/visual-embed-sdk-react.d.ts +121 -4
  85. package/dist/visual-embed-sdk.d.ts +124 -4
  86. package/lib/package.json +2 -2
  87. package/lib/src/api-intercept.d.ts +27 -0
  88. package/lib/src/api-intercept.d.ts.map +1 -0
  89. package/lib/src/api-intercept.js +108 -0
  90. package/lib/src/api-intercept.js.map +1 -0
  91. package/lib/src/api-intercept.spec.d.ts +2 -0
  92. package/lib/src/api-intercept.spec.d.ts.map +1 -0
  93. package/lib/src/api-intercept.spec.js +119 -0
  94. package/lib/src/api-intercept.spec.js.map +1 -0
  95. package/lib/src/embed/app.d.ts.map +1 -1
  96. package/lib/src/embed/app.js +7 -2
  97. package/lib/src/embed/app.js.map +1 -1
  98. package/lib/src/embed/app.spec.js +20 -0
  99. package/lib/src/embed/app.spec.js.map +1 -1
  100. package/lib/src/embed/hostEventClient/contracts.d.ts +11 -1
  101. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  102. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  103. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  104. package/lib/src/embed/liveboard.d.ts.map +1 -1
  105. package/lib/src/embed/liveboard.js +4 -1
  106. package/lib/src/embed/liveboard.js.map +1 -1
  107. package/lib/src/embed/liveboard.spec.js +22 -0
  108. package/lib/src/embed/liveboard.spec.js.map +1 -1
  109. package/lib/src/embed/search.d.ts.map +1 -1
  110. package/lib/src/embed/search.js +3 -1
  111. package/lib/src/embed/search.js.map +1 -1
  112. package/lib/src/embed/ts-embed.d.ts +15 -0
  113. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  114. package/lib/src/embed/ts-embed.js +94 -26
  115. package/lib/src/embed/ts-embed.js.map +1 -1
  116. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  117. package/lib/src/embed/ts-embed.spec.js +168 -0
  118. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  119. package/lib/src/errors.d.ts +1 -0
  120. package/lib/src/errors.d.ts.map +1 -1
  121. package/lib/src/errors.js +1 -0
  122. package/lib/src/errors.js.map +1 -1
  123. package/lib/src/index.d.ts +2 -2
  124. package/lib/src/index.d.ts.map +1 -1
  125. package/lib/src/index.js +2 -2
  126. package/lib/src/index.js.map +1 -1
  127. package/lib/src/react/all-types-export.d.ts +1 -1
  128. package/lib/src/react/all-types-export.d.ts.map +1 -1
  129. package/lib/src/react/all-types-export.js +1 -1
  130. package/lib/src/react/all-types-export.js.map +1 -1
  131. package/lib/src/types.d.ts +100 -4
  132. package/lib/src/types.d.ts.map +1 -1
  133. package/lib/src/types.js +38 -0
  134. package/lib/src/types.js.map +1 -1
  135. package/lib/src/utils/processData.d.ts +1 -1
  136. package/lib/src/utils/processData.d.ts.map +1 -1
  137. package/lib/src/utils/processData.js +8 -8
  138. package/lib/src/utils/processData.js.map +1 -1
  139. package/package.json +2 -2
  140. package/src/api-intercept.spec.ts +147 -0
  141. package/src/api-intercept.ts +134 -0
  142. package/src/embed/app.spec.ts +28 -0
  143. package/src/embed/app.ts +9 -1
  144. package/src/embed/hostEventClient/contracts.ts +10 -0
  145. package/src/embed/liveboard.spec.ts +30 -0
  146. package/src/embed/liveboard.ts +5 -0
  147. package/src/embed/search.ts +3 -1
  148. package/src/embed/ts-embed.spec.ts +221 -5
  149. package/src/embed/ts-embed.ts +129 -43
  150. package/src/errors.ts +1 -0
  151. package/src/index.ts +2 -0
  152. package/src/react/all-types-export.ts +1 -0
  153. package/src/types.ts +102 -3
  154. package/src/utils/processData.ts +11 -11
package/src/types.ts CHANGED
@@ -329,7 +329,7 @@ export interface CustomisationsInterface {
329
329
  * if a trusted authentication server is used.
330
330
  * @group Authentication / Init
331
331
  */
332
- export interface EmbedConfig {
332
+ export interface EmbedConfig extends InterceptV2Flags {
333
333
  /**
334
334
  * The ThoughtSpot cluster hostname or IP address.
335
335
  */
@@ -726,7 +726,7 @@ export interface FrameParams {
726
726
  /**
727
727
  * The common configuration object for an embedded view.
728
728
  */
729
- export interface BaseViewConfig {
729
+ export interface BaseViewConfig extends InterceptV2Flags {
730
730
  /**
731
731
  * @hidden
732
732
  */
@@ -1512,7 +1512,22 @@ export interface LiveboardAppEmbedViewConfig {
1512
1512
  * ```
1513
1513
  */
1514
1514
  liveboardXLSXCSVDownload?: boolean;
1515
-
1515
+ /**
1516
+ * This flag is used to enable or disable the link parameters in liveboard.
1517
+ *
1518
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
1519
+ * @version SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl
1520
+ * @example
1521
+ * ```js
1522
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
1523
+ * const embed = new <EmbedComponent>('#tsEmbed', {
1524
+ * ... // other embed view config
1525
+ * isLinkParametersEnabled: true,
1526
+ * })
1527
+ * ```
1528
+ */
1529
+ isLinkParametersEnabled?: boolean;
1530
+
1516
1531
  }
1517
1532
 
1518
1533
  export interface AllEmbedViewConfig extends BaseViewConfig, SearchLiveboardCommonViewConfig, HomePageConfig, LiveboardAppEmbedViewConfig { }
@@ -2905,6 +2920,21 @@ export enum EmbedEvent {
2905
2920
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
2906
2921
  */
2907
2922
  OrgSwitched = 'orgSwitched',
2923
+ /**
2924
+ * Emitted when the user intercepts a URL.
2925
+ *
2926
+ * Supported on all embed types.
2927
+ *
2928
+ * @example
2929
+ * ```js
2930
+ * embed.on(EmbedEvent.ApiIntercept, (payload) => {
2931
+ * console.log('payload', payload);
2932
+ * })
2933
+ * ```
2934
+ *
2935
+ * @version SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl
2936
+ */
2937
+ ApiIntercept = 'ApiIntercept',
2908
2938
  }
2909
2939
 
2910
2940
  /**
@@ -4350,6 +4380,7 @@ export enum Param {
4350
4380
  RootMarginForLazyLoad = 'rootMarginForLazyLoad',
4351
4381
  LiveboardXLSXCSVDownload = 'isLiveboardXLSXCSVDownloadEnabled',
4352
4382
  isPNGInScheduledEmailsEnabled = 'isPNGInScheduledEmailsEnabled',
4383
+ isLinkParametersEnabled = 'isLinkParametersEnabled',
4353
4384
  }
4354
4385
 
4355
4386
  /**
@@ -5880,3 +5911,71 @@ export interface DefaultAppInitData {
5880
5911
  hiddenListColumns: ListPageColumns[];
5881
5912
  customActions: CustomAction[];
5882
5913
  }
5914
+
5915
+ /**
5916
+ * Enum for the type of API intercepted
5917
+ */
5918
+ export enum InterceptedApiType {
5919
+ /**
5920
+ * The apis that are use to get the metadata for the embed
5921
+ */
5922
+ METADATA = 'METADATA',
5923
+ /**
5924
+ * The apis that are use to get the data for the embed
5925
+ */
5926
+ ANSWER_DATA = 'ANSWER_DATA',
5927
+ /**
5928
+ * This will intercept all the apis
5929
+ */
5930
+ ALL = 'ALL',
5931
+ /**
5932
+ * The apis that are use to get the data for the liveboard
5933
+ */
5934
+ LIVEBOARD_DATA = 'LIVEBOARD_DATA',
5935
+ }
5936
+
5937
+
5938
+ export type InterceptV2Flags = {
5939
+ /**
5940
+ * Enable intercepting the apis
5941
+ *
5942
+ * @example
5943
+ * ```js
5944
+ * const embed = new LiveboardEmbed('#embed', {
5945
+ * ...viewConfig,
5946
+ * enableApiIntercept: true,
5947
+ * interceptUrls: [InterceptedApiType.DATA],
5948
+ * })
5949
+ * ```
5950
+ *
5951
+ */
5952
+ enableApiIntercept?: boolean;
5953
+ /**
5954
+ * The apis to intercept
5955
+ *
5956
+ * @example
5957
+ * ```js
5958
+ * const embed = new LiveboardEmbed('#embed', {
5959
+ * ...viewConfig,
5960
+ * enableApiIntercept: true,
5961
+ * interceptUrls: [InterceptedApiType.DATA],
5962
+ * })
5963
+ * ```
5964
+ */
5965
+ interceptUrls?: (string | InterceptedApiType)[];
5966
+ /**
5967
+ * The timeout for the intercept, default is 30000ms
5968
+ * the api will error out if the timeout is reached
5969
+ *
5970
+ * @example
5971
+ * ```js
5972
+ * const embed = new LiveboardEmbed('#embed', {
5973
+ * ...viewConfig,
5974
+ * enableApiIntercept: true,
5975
+ * interceptUrls: [InterceptedApiType.ALL],
5976
+ * interceptTimeout: 1000,
5977
+ * })
5978
+ * ```
5979
+ */
5980
+ interceptTimeout?: number;
5981
+ }
@@ -10,9 +10,9 @@ import { AuthType, CustomActionPayload, EmbedEvent } from '../types';
10
10
  import { AnswerService } from './graphql/answerService/answerService';
11
11
  import { resetCachedAuthToken } from '../authToken';
12
12
  import { ERROR_MESSAGE } from '../errors';
13
- import { logger } from '../utils/logger';
14
13
  import { handleExitPresentMode } from '../utils';
15
14
  import { resetCachedPreauthInfo, resetCachedSessionInfo } from './sessionInfoService';
15
+ import { processApiIntercept } from '../api-intercept';
16
16
 
17
17
  /**
18
18
  * Process the ExitPresentMode event and handle default fullscreen exit
@@ -21,7 +21,7 @@ import { resetCachedPreauthInfo, resetCachedSessionInfo } from './sessionInfoSer
21
21
  function processExitPresentMode(e: any) {
22
22
  const embedConfig = getEmbedConfig();
23
23
  const disableFullscreenPresentation = embedConfig?.disableFullscreenPresentation ?? true;
24
-
24
+
25
25
  if (!disableFullscreenPresentation) {
26
26
  handleExitPresentMode();
27
27
  }
@@ -103,7 +103,7 @@ export function processAuthFailure(e: any, containerEl: Element) {
103
103
  const {
104
104
  loginFailedMessage, authType, disableLoginFailurePage, autoLogin,
105
105
  } = getEmbedConfig();
106
-
106
+
107
107
  const isEmbeddedSSO = authType === AuthType.EmbeddedSSO;
108
108
  const isTrustedAuth = authType === AuthType.TrustedAuthToken || authType === AuthType.TrustedAuthTokenCookieless;
109
109
  const isEmbeddedSSOInfoFailure = isEmbeddedSSO && e?.data?.type === AuthFailureType.UNAUTHENTICATED_FAILURE;
@@ -144,26 +144,26 @@ function processAuthLogout(e: any, containerEl: Element) {
144
144
  */
145
145
  export function processEventData(
146
146
  type: EmbedEvent,
147
- e: any,
147
+ eventData: any,
148
148
  thoughtSpotHost: string,
149
149
  containerEl: Element,
150
150
  ): any {
151
151
  switch (type) {
152
152
  case EmbedEvent.CustomAction:
153
- return processCustomAction(e, thoughtSpotHost);
153
+ return processCustomAction(eventData, thoughtSpotHost);
154
154
  case EmbedEvent.AuthInit:
155
- return processAuthInit(e);
155
+ return processAuthInit(eventData);
156
156
  case EmbedEvent.NoCookieAccess:
157
- return processNoCookieAccess(e, containerEl);
157
+ return processNoCookieAccess(eventData, containerEl);
158
158
  case EmbedEvent.AuthFailure:
159
- return processAuthFailure(e, containerEl);
159
+ return processAuthFailure(eventData, containerEl);
160
160
  case EmbedEvent.AuthLogout:
161
- return processAuthLogout(e, containerEl);
161
+ return processAuthLogout(eventData, containerEl);
162
162
  case EmbedEvent.ExitPresentMode:
163
- return processExitPresentMode(e);
163
+ return processExitPresentMode(eventData);
164
164
  case EmbedEvent.CLEAR_INFO_CACHE:
165
165
  return processClearInfoCache();
166
166
  default:
167
167
  }
168
- return e;
168
+ return eventData;
169
169
  }