@thoughtspot/visual-embed-sdk 1.42.0 → 1.42.1-alpha.1
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.
- package/cjs/package.json +2 -2
- package/cjs/src/api-intercept.d.ts +25 -0
- package/cjs/src/api-intercept.d.ts.map +1 -0
- package/cjs/src/api-intercept.js +115 -0
- package/cjs/src/api-intercept.js.map +1 -0
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +7 -2
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +20 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +1 -0
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +4 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +22 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +3 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +15 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +94 -26
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +83 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +2 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/types.d.ts +100 -4
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +39 -1
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processData.d.ts +1 -1
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +8 -8
- package/cjs/src/utils/processData.js.map +1 -1
- package/dist/index-BEzW4MDA.js +7371 -0
- package/dist/{index-BpSohedu.js → index-DvNA626T.js} +1 -1
- package/dist/src/api-intercept.d.ts +25 -0
- package/dist/src/api-intercept.d.ts.map +1 -0
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +15 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/types.d.ts +100 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts +1 -1
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +266 -51
- package/dist/tsembed-react.js +265 -50
- package/dist/tsembed.es.js +267 -52
- package/dist/tsembed.js +265 -50
- package/dist/visual-embed-sdk-react-full.d.ts +124 -4
- package/dist/visual-embed-sdk-react.d.ts +121 -4
- package/dist/visual-embed-sdk.d.ts +124 -4
- package/lib/package.json +2 -2
- package/lib/src/api-intercept.d.ts +25 -0
- package/lib/src/api-intercept.d.ts.map +1 -0
- package/lib/src/api-intercept.js +108 -0
- package/lib/src/api-intercept.js.map +1 -0
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +7 -2
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +20 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +1 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +4 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +22 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +3 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +15 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +94 -26
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +83 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/types.d.ts +100 -4
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +38 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processData.d.ts +1 -1
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +8 -8
- package/lib/src/utils/processData.js.map +1 -1
- package/package.json +2 -2
- package/src/api-intercept.ts +134 -0
- package/src/embed/app.spec.ts +28 -0
- package/src/embed/app.ts +9 -1
- package/src/embed/hostEventClient/contracts.ts +10 -0
- package/src/embed/liveboard.spec.ts +30 -0
- package/src/embed/liveboard.ts +5 -0
- package/src/embed/search.ts +3 -1
- package/src/embed/ts-embed.spec.ts +116 -5
- package/src/embed/ts-embed.ts +129 -43
- package/src/errors.ts +1 -0
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +1 -0
- package/src/types.ts +102 -3
- 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
|
+
}
|
package/src/utils/processData.ts
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
153
|
+
return processCustomAction(eventData, thoughtSpotHost);
|
|
154
154
|
case EmbedEvent.AuthInit:
|
|
155
|
-
return processAuthInit(
|
|
155
|
+
return processAuthInit(eventData);
|
|
156
156
|
case EmbedEvent.NoCookieAccess:
|
|
157
|
-
return processNoCookieAccess(
|
|
157
|
+
return processNoCookieAccess(eventData, containerEl);
|
|
158
158
|
case EmbedEvent.AuthFailure:
|
|
159
|
-
return processAuthFailure(
|
|
159
|
+
return processAuthFailure(eventData, containerEl);
|
|
160
160
|
case EmbedEvent.AuthLogout:
|
|
161
|
-
return processAuthLogout(
|
|
161
|
+
return processAuthLogout(eventData, containerEl);
|
|
162
162
|
case EmbedEvent.ExitPresentMode:
|
|
163
|
-
return processExitPresentMode(
|
|
163
|
+
return processExitPresentMode(eventData);
|
|
164
164
|
case EmbedEvent.CLEAR_INFO_CACHE:
|
|
165
165
|
return processClearInfoCache();
|
|
166
166
|
default:
|
|
167
167
|
}
|
|
168
|
-
return
|
|
168
|
+
return eventData;
|
|
169
169
|
}
|