@thoughtspot/visual-embed-sdk 1.35.5-hostEvent.6 → 1.35.5-hostEvent.8
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 +1 -1
- package/cjs/src/embed/app.d.ts +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.js +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +26 -30
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +10 -10
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +21 -7
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +62 -28
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +43 -39
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +8 -7
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +2 -2
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +4 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +14 -9
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +23 -15
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +4 -4
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.js +2 -2
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.js +2 -2
- package/cjs/src/types.d.ts +26 -21
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +20 -19
- package/cjs/src/types.js.map +1 -1
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/src/embed/app.d.ts +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +26 -30
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +21 -7
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +8 -7
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +14 -9
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/types.d.ts +26 -21
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +118 -76
- package/dist/tsembed-react.js +117 -75
- package/dist/tsembed.es.js +120 -78
- package/dist/tsembed.js +118 -76
- package/dist/visual-embed-sdk-react-full.d.ts +96 -75
- package/dist/visual-embed-sdk-react.d.ts +96 -75
- package/dist/visual-embed-sdk.d.ts +96 -75
- package/lib/package.json +1 -1
- package/lib/src/embed/app.d.ts +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.js +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +26 -30
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +9 -9
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +21 -7
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +64 -30
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +43 -40
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +8 -7
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +2 -2
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +4 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +14 -9
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +23 -15
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +5 -5
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.js +2 -2
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/types.d.ts +26 -21
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +20 -19
- package/lib/src/types.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +99 -78
- package/package.json +1 -1
- package/src/embed/app.ts +1 -1
- package/src/embed/base.ts +1 -1
- package/src/embed/hostEventClient/contracts.ts +43 -32
- package/src/embed/hostEventClient/host-event-client.spec.ts +58 -54
- package/src/embed/hostEventClient/host-event-client.ts +105 -48
- package/src/embed/liveboard.spec.ts +4 -2
- package/src/embed/liveboard.ts +8 -7
- package/src/embed/ts-embed.spec.ts +6 -6
- package/src/embed/ts-embed.ts +39 -28
- package/src/index.ts +2 -2
- package/src/react/all-types-export.ts +1 -1
- package/src/types.ts +26 -21
package/cjs/package.json
CHANGED
package/cjs/src/embed/app.d.ts
CHANGED
|
@@ -404,7 +404,7 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
404
404
|
*/
|
|
405
405
|
showLiveboardVerifiedBadge?: boolean;
|
|
406
406
|
/**
|
|
407
|
-
* This flag is used to enable/disable hide irrelevant filters in
|
|
407
|
+
* This flag is used to enable/disable hide irrelevant filters in Liveboard tab
|
|
408
408
|
* @type {boolean}
|
|
409
409
|
* @default false
|
|
410
410
|
* @version SDK: 1.36.0 | ThoughtSpot:10.6.0.cl
|
package/cjs/src/embed/base.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
|
|
|
37
37
|
/**
|
|
38
38
|
* Initializes the Visual Embed SDK globally and perform
|
|
39
39
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
40
|
-
* component like
|
|
40
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
|
|
41
41
|
* to actually embed. That is handled internally.
|
|
42
42
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
43
43
|
* authentication mechanism and so on.
|
package/cjs/src/embed/base.js
CHANGED
|
@@ -129,7 +129,7 @@ function backwardCompat(embedConfig) {
|
|
|
129
129
|
/**
|
|
130
130
|
* Initializes the Visual Embed SDK globally and perform
|
|
131
131
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
132
|
-
* component like
|
|
132
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
|
|
133
133
|
* to actually embed. That is handled internally.
|
|
134
134
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
135
135
|
* authentication mechanism and so on.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { HostEvent } from '../../types';
|
|
2
|
-
export declare enum
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
export declare enum UIPassthroughEvent {
|
|
3
|
+
PinAnswerToLiveboard = "addVizToPinboard",
|
|
4
|
+
SaveAnswer = "saveAnswer",
|
|
5
|
+
GetDiscoverabilityStatus = "getDiscoverabilityStatus",
|
|
6
|
+
GetAvailableUIPassthroughs = "getAvailableUIPassthroughs",
|
|
7
|
+
GetAnswerConfig = "getAnswerPageConfig",
|
|
8
|
+
GetLiveboardConfig = "getPinboardPageConfig"
|
|
9
9
|
}
|
|
10
|
-
export type
|
|
11
|
-
[
|
|
10
|
+
export type UIPassthroughContractBase = {
|
|
11
|
+
[UIPassthroughEvent.PinAnswerToLiveboard]: {
|
|
12
12
|
request: {
|
|
13
13
|
vizId?: string;
|
|
14
14
|
newVizName: string;
|
|
@@ -24,7 +24,7 @@ export type UiPassthroughContractBase = {
|
|
|
24
24
|
vizId: string;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
-
[
|
|
27
|
+
[UIPassthroughEvent.SaveAnswer]: {
|
|
28
28
|
request: {
|
|
29
29
|
name: string;
|
|
30
30
|
description: string;
|
|
@@ -33,51 +33,47 @@ export type UiPassthroughContractBase = {
|
|
|
33
33
|
};
|
|
34
34
|
response: {
|
|
35
35
|
answerId: string;
|
|
36
|
-
saveResponse
|
|
36
|
+
saveResponse?: any;
|
|
37
37
|
shareResponse?: any;
|
|
38
|
-
errors?: any;
|
|
39
38
|
};
|
|
40
39
|
};
|
|
41
|
-
[
|
|
40
|
+
[UIPassthroughEvent.GetDiscoverabilityStatus]: {
|
|
42
41
|
request: any;
|
|
43
42
|
response: {
|
|
44
43
|
shouldShowDiscoverability: boolean;
|
|
45
44
|
isDiscoverabilityCheckboxUnselectedPerOrg: boolean;
|
|
46
45
|
};
|
|
47
46
|
};
|
|
48
|
-
[
|
|
47
|
+
[UIPassthroughEvent.GetAvailableUIPassthroughs]: {
|
|
49
48
|
request: any;
|
|
50
49
|
response: {
|
|
51
50
|
keys: string[];
|
|
52
51
|
};
|
|
53
52
|
};
|
|
54
|
-
[
|
|
53
|
+
[UIPassthroughEvent.GetAnswerConfig]: {
|
|
55
54
|
request: {
|
|
56
55
|
vizId?: string;
|
|
57
56
|
};
|
|
58
57
|
response: any;
|
|
59
58
|
};
|
|
60
|
-
[
|
|
59
|
+
[UIPassthroughEvent.GetLiveboardConfig]: {
|
|
61
60
|
request: any;
|
|
62
61
|
response: any;
|
|
63
62
|
};
|
|
64
63
|
};
|
|
65
|
-
export type
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
export type UiPassthroughRequest<T extends keyof UiPassthroughContractBase> = FlattenType<UiPassthroughContractBase[T]['request']>;
|
|
69
|
-
export type UiPassthroughResponse<T extends keyof UiPassthroughContractBase> = FlattenType<UiPassthroughContractBase[T]['response']>;
|
|
70
|
-
export type UiPassthroughArrayResponse<ApiName extends keyof UiPassthroughContractBase> = Promise<Array<{
|
|
64
|
+
export type UIPassthroughRequest<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]['request'];
|
|
65
|
+
export type UIPassthroughResponse<T extends keyof UIPassthroughContractBase> = UIPassthroughContractBase[T]['response'];
|
|
66
|
+
export type UIPassthroughArrayResponse<ApiName extends keyof UIPassthroughContractBase> = Array<{
|
|
71
67
|
redId?: string;
|
|
72
|
-
value?:
|
|
68
|
+
value?: UIPassthroughResponse<ApiName>;
|
|
73
69
|
error?: any;
|
|
74
|
-
}
|
|
70
|
+
}>;
|
|
75
71
|
export type EmbedApiHostEventMapping = {
|
|
76
|
-
[HostEvent.Pin]:
|
|
77
|
-
[HostEvent.SaveAnswer]:
|
|
72
|
+
[HostEvent.Pin]: UIPassthroughEvent.PinAnswerToLiveboard;
|
|
73
|
+
[HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer;
|
|
78
74
|
};
|
|
79
|
-
export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ?
|
|
80
|
-
export type HostEventResponse<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ?
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
76
|
+
export type HostEventResponse<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
77
|
+
export type TriggerPayload<PayloadT, HostEventT extends HostEvent> = PayloadT | HostEventRequest<HostEventT>;
|
|
78
|
+
export type TriggerResponse<PayloadT, HostEventT extends HostEvent> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT> : any;
|
|
83
79
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,oBAAY,kBAAkB;IAC5B,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.UIPassthroughEvent = void 0;
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
|
-
var
|
|
6
|
-
(function (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
})(
|
|
5
|
+
var UIPassthroughEvent;
|
|
6
|
+
(function (UIPassthroughEvent) {
|
|
7
|
+
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
8
|
+
UIPassthroughEvent["SaveAnswer"] = "saveAnswer";
|
|
9
|
+
UIPassthroughEvent["GetDiscoverabilityStatus"] = "getDiscoverabilityStatus";
|
|
10
|
+
UIPassthroughEvent["GetAvailableUIPassthroughs"] = "getAvailableUIPassthroughs";
|
|
11
|
+
UIPassthroughEvent["GetAnswerConfig"] = "getAnswerPageConfig";
|
|
12
|
+
UIPassthroughEvent["GetLiveboardConfig"] = "getPinboardPageConfig";
|
|
13
|
+
})(UIPassthroughEvent = exports.UIPassthroughEvent || (exports.UIPassthroughEvent = {}));
|
|
14
14
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AAExC,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AAExC,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,+DAAyC,CAAA;IACzC,+CAAyB,CAAA;IACzB,2EAAqD,CAAA;IACrD,+EAAyD,CAAA;IACzD,6DAAuC,CAAA;IACvC,kEAA4C,CAAA;AAC9C,CAAC,EAPW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAO7B"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import { HostEvent } from '../../types';
|
|
2
|
-
import {
|
|
2
|
+
import { UIPassthroughArrayResponse, UIPassthroughEvent, HostEventRequest, HostEventResponse, UIPassthroughRequest, UIPassthroughResponse, TriggerPayload, TriggerResponse } from './contracts';
|
|
3
3
|
export declare class HostEventClient {
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
iFrame: HTMLIFrameElement;
|
|
5
|
+
constructor(iFrame?: HTMLIFrameElement);
|
|
6
|
+
/**
|
|
7
|
+
* A wrapper over process trigger to
|
|
8
|
+
* @param {HostEvent} message Host event to send
|
|
9
|
+
* @param {any} data Data to send with the host event
|
|
10
|
+
* @returns {Promise<any>} - the response from the process trigger
|
|
11
|
+
*/
|
|
12
|
+
protected processTrigger(message: HostEvent, data: any): Promise<any>;
|
|
13
|
+
handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>): Promise<UIPassthroughResponse<UIPassthroughEventT>>;
|
|
14
|
+
hostEventFallback(hostEvent: HostEvent, data: any): Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* Setter for the iframe element used for host events
|
|
17
|
+
* @param {HTMLIFrameElement} iFrame - the iframe element to set
|
|
18
|
+
*/
|
|
19
|
+
setIframeElement(iFrame: HTMLIFrameElement): void;
|
|
20
|
+
triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
|
|
21
|
+
protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>): Promise<HostEventResponse<HostEvent.Pin>>;
|
|
22
|
+
protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>): Promise<any>;
|
|
23
|
+
triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>): Promise<TriggerResponse<PayloadT, HostEventT>>;
|
|
10
24
|
}
|
|
11
25
|
//# sourceMappingURL=host-event-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-event-client.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"host-event-client.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EACvD,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAC1B,MAAM,EAAE,iBAAiB,CAAC;gBAEd,MAAM,CAAC,EAAE,iBAAiB;IAItC;;;;;OAKG;cACa,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAc9D,wBAAwB,CAAC,mBAAmB,SAAS,kBAAkB,EAChF,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,GACtD,OAAO,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAsBzC,iBAAiB,CAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC;IAIf;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI3C,uBAAuB,CAAC,mBAAmB,SAAS,kBAAkB,EAC/E,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,GACtD,OAAO,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;cAS3C,cAAc,CAC1B,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;cAU5B,qBAAqB,CACjC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,GAChD,OAAO,CAAC,GAAG,CAAC;IAeF,gBAAgB,CAC3B,UAAU,SAAS,SAAS,EAC5B,QAAQ,EAEN,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GAC/C,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAYlD"}
|
|
@@ -3,52 +3,86 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HostEventClient = void 0;
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
const processTrigger_1 = require("../../utils/processTrigger");
|
|
6
|
+
const embedConfig_1 = require("../embedConfig");
|
|
6
7
|
const contracts_1 = require("./contracts");
|
|
7
8
|
class HostEventClient {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
9
|
+
constructor(iFrame) {
|
|
10
|
+
this.iFrame = iFrame;
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
/**
|
|
13
|
+
* A wrapper over process trigger to
|
|
14
|
+
* @param {HostEvent} message Host event to send
|
|
15
|
+
* @param {any} data Data to send with the host event
|
|
16
|
+
* @returns {Promise<any>} - the response from the process trigger
|
|
17
|
+
*/
|
|
18
|
+
async processTrigger(message, data) {
|
|
19
|
+
if (!this.iFrame) {
|
|
20
|
+
throw new Error('Iframe element is not set');
|
|
21
|
+
}
|
|
22
|
+
const thoughtspotHost = (0, embedConfig_1.getEmbedConfig)().thoughtSpotHost;
|
|
23
|
+
return (0, processTrigger_1.processTrigger)(this.iFrame, message, thoughtspotHost, data);
|
|
17
24
|
}
|
|
18
|
-
async
|
|
19
|
-
var _a, _b, _c;
|
|
20
|
-
const response = (_b = (_a = (await this.
|
|
25
|
+
async handleHostEventWithParam(apiName, parameters) {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
const response = (_b = (_a = (await this.triggerUIPassthroughApi(apiName, parameters))) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.call(_a, (r) => r.error || r.value)[0];
|
|
21
28
|
if (!response) {
|
|
22
29
|
const error = `No answer found${parameters.vizId ? ` for vizId: ${parameters.vizId}` : ''}.`;
|
|
23
30
|
// eslint-disable-next-line no-throw-literal
|
|
24
31
|
throw { error };
|
|
25
32
|
}
|
|
26
|
-
const errors = response.error
|
|
33
|
+
const errors = response.error
|
|
34
|
+
|| ((_c = response.value) === null || _c === void 0 ? void 0 : _c.errors)
|
|
35
|
+
|| ((_d = response.value) === null || _d === void 0 ? void 0 : _d.error);
|
|
27
36
|
if (errors) {
|
|
28
37
|
// eslint-disable-next-line no-throw-literal
|
|
29
|
-
throw { error:
|
|
38
|
+
throw { error: errors };
|
|
30
39
|
}
|
|
31
40
|
return { ...response.value };
|
|
32
41
|
}
|
|
33
|
-
async hostEventFallback(
|
|
34
|
-
return
|
|
42
|
+
async hostEventFallback(hostEvent, data) {
|
|
43
|
+
return this.processTrigger(hostEvent, data);
|
|
35
44
|
}
|
|
36
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Setter for the iframe element used for host events
|
|
47
|
+
* @param {HTMLIFrameElement} iFrame - the iframe element to set
|
|
48
|
+
*/
|
|
49
|
+
setIframeElement(iFrame) {
|
|
50
|
+
this.iFrame = iFrame;
|
|
51
|
+
}
|
|
52
|
+
async triggerUIPassthroughApi(apiName, parameters) {
|
|
53
|
+
const res = await this.processTrigger(types_1.HostEvent.UIPassthrough, {
|
|
54
|
+
type: apiName,
|
|
55
|
+
parameters,
|
|
56
|
+
});
|
|
57
|
+
return res;
|
|
58
|
+
}
|
|
59
|
+
async handlePinEvent(payload) {
|
|
60
|
+
if (!payload || !('newVizName' in payload)) {
|
|
61
|
+
return this.hostEventFallback(types_1.HostEvent.Pin, payload);
|
|
62
|
+
}
|
|
63
|
+
return this.handleHostEventWithParam(contracts_1.UIPassthroughEvent.PinAnswerToLiveboard, payload);
|
|
64
|
+
}
|
|
65
|
+
async handleSaveAnswerEvent(payload) {
|
|
37
66
|
var _a, _b, _c, _d;
|
|
38
|
-
if (
|
|
39
|
-
|
|
67
|
+
if (!payload || !('name' in payload) || !('description' in payload)) {
|
|
68
|
+
// Save is the fallback for SaveAnswer
|
|
69
|
+
return this.hostEventFallback(types_1.HostEvent.Save, payload);
|
|
40
70
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
71
|
+
const data = await this.handleHostEventWithParam(contracts_1.UIPassthroughEvent.SaveAnswer, payload);
|
|
72
|
+
return {
|
|
73
|
+
...data,
|
|
74
|
+
answerId: (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.saveResponse) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.Answer__save) === null || _c === void 0 ? void 0 : _c.answer) === null || _d === void 0 ? void 0 : _d.id,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async triggerHostEvent(hostEvent, payload) {
|
|
78
|
+
switch (hostEvent) {
|
|
79
|
+
case types_1.HostEvent.Pin:
|
|
80
|
+
return this.handlePinEvent(payload);
|
|
81
|
+
case types_1.HostEvent.SaveAnswer:
|
|
82
|
+
return this.handleSaveAnswerEvent(payload);
|
|
83
|
+
default:
|
|
84
|
+
return this.hostEventFallback(hostEvent, payload);
|
|
47
85
|
}
|
|
48
|
-
// fallback for save answer is Save
|
|
49
|
-
if (hostEvent === types_1.HostEvent.SaveAnswer)
|
|
50
|
-
hostEvent = types_1.HostEvent.Save;
|
|
51
|
-
return this.hostEventFallback(iFrame, hostEvent, payload);
|
|
52
86
|
}
|
|
53
87
|
}
|
|
54
88
|
exports.HostEventClient = HostEventClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-event-client.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AACxC,+
|
|
1
|
+
{"version":3,"file":"host-event-client.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AACxC,+DAAqF;AACrF,gDAAgD;AAChD,2CAOqB;AAErB,MAAa,eAAe;IAG1B,YAAY,MAA0B;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAAC,OAAkB,EAAE,IAAS;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;QAED,MAAM,eAAe,GAAG,IAAA,4BAAc,GAAE,CAAC,eAAe,CAAC;QACzD,OAAO,IAAA,+BAAqB,EACxB,IAAI,CAAC,MAAM,EACX,OAAO,EACP,eAAe,EACf,IAAI,CACP,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACjC,OAA4B,EAC5B,UAAqD;;QAErD,MAAM,QAAQ,GAAG,MAAA,MAAA,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,0CACpE,MAAM,mDAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,KAAK,GAAG,kBAAkB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC7F,4CAA4C;YAC5C,MAAM,EAAE,KAAK,EAAE,CAAC;SACnB;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK;gBACxB,MAAC,QAAQ,CAAC,KAAa,0CAAE,MAAM,CAAA;gBAC/B,MAAC,QAAQ,CAAC,KAAa,0CAAE,KAAK,CAAA,CAAC;QAEpC,IAAI,MAAM,EAAE;YACZ,4CAA4C;YACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAC3B;QAED,OAAO,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,SAAoB,EACpB,IAAS;QAET,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,MAAyB;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAChC,OAA4B,EAC5B,UAAqD;QAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAS,CAAC,aAAa,EAAE;YAC3D,IAAI,EAAE,OAAO;YACb,UAAU;SACb,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IAES,KAAK,CAAC,cAAc,CAC1B,OAAwC;QAExC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACzD;QAED,OAAO,IAAI,CAAC,wBAAwB,CAChC,8BAAkB,CAAC,oBAAoB,EAAE,OAAO,CACnD,CAAC;IACN,CAAC;IAES,KAAK,CAAC,qBAAqB,CACjC,OAA+C;;QAE/C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,EAAE;YACjE,sCAAsC;YACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC1D;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAC5C,8BAAkB,CAAC,UAAU,EAAE,OAAO,CACzC,CAAC;QACF,OAAO;YACH,GAAG,IAAI;YACP,QAAQ,EAAE,MAAA,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,IAAI,0CAAE,YAAY,0CAAE,MAAM,0CAAE,EAAE;SAC/D,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAIzB,SAAqB,EACrB,OAA8C;QAE9C,QAAQ,SAAS,EAAE;YACf,KAAK,iBAAS,CAAC,GAAG;gBACd,OAAO,IAAI,CAAC,cAAc,CAAC,OAA0C,CAAQ,CAAC;YAClF,KAAK,iBAAS,CAAC,UAAU;gBACrB,OAAO,IAAI,CAAC,qBAAqB,CAC7B,OAAiD,CAC7C,CAAC;YACb;gBACI,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;SACzD;IACL,CAAC;CACF;AA9HD,0CA8HC"}
|
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
const processTrigger_1 = require("../../utils/processTrigger");
|
|
6
|
+
const EmbedConfigService = tslib_1.__importStar(require("../embedConfig"));
|
|
6
7
|
const contracts_1 = require("./contracts");
|
|
7
8
|
const host_event_client_1 = require("./host-event-client");
|
|
8
9
|
jest.mock('../../utils/processTrigger');
|
|
9
10
|
const mockProcessTrigger = processTrigger_1.processTrigger;
|
|
10
11
|
const createHostEventClient = () => {
|
|
11
|
-
const mockIframe =
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
return { client, mockIframe, mockThoughtSpotHost };
|
|
12
|
+
const mockIframe = document.createElement('iframe');
|
|
13
|
+
const client = new host_event_client_1.HostEventClient(mockIframe);
|
|
14
|
+
return { client, mockIframe };
|
|
15
15
|
};
|
|
16
16
|
describe('HostEventClient', () => {
|
|
17
|
+
const mockThoughtSpotHost = 'http://localhost';
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
jest.spyOn(EmbedConfigService, 'getEmbedConfig').mockReturnValue({ thoughtSpotHost: mockThoughtSpotHost });
|
|
20
|
+
});
|
|
17
21
|
afterEach(() => {
|
|
18
22
|
jest.clearAllMocks();
|
|
19
23
|
});
|
|
20
|
-
describe('
|
|
24
|
+
describe('executeUIPassthroughApi', () => {
|
|
21
25
|
it('should call processTrigger with correct parameters and return response', async () => {
|
|
22
|
-
const { client, mockIframe
|
|
23
|
-
const apiName = contracts_1.
|
|
26
|
+
const { client, mockIframe } = createHostEventClient();
|
|
27
|
+
const apiName = contracts_1.UIPassthroughEvent.PinAnswerToLiveboard;
|
|
24
28
|
const parameters = {
|
|
25
29
|
newVizName: 'testViz',
|
|
26
30
|
};
|
|
@@ -28,18 +32,18 @@ describe('HostEventClient', () => {
|
|
|
28
32
|
{ value: { pinboardId: 'testPinboard', tabId: 'testTab', vizId: 'testVizId' } },
|
|
29
33
|
]);
|
|
30
34
|
mockProcessTrigger.mockResolvedValue(triggerResponse);
|
|
31
|
-
const result = await client.
|
|
32
|
-
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.
|
|
35
|
+
const result = await client.triggerUIPassthroughApi(apiName, parameters);
|
|
36
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.UIPassthrough, mockThoughtSpotHost, {
|
|
33
37
|
type: apiName,
|
|
34
38
|
parameters,
|
|
35
39
|
});
|
|
36
40
|
expect(result).toEqual(await triggerResponse);
|
|
37
41
|
});
|
|
38
42
|
});
|
|
39
|
-
describe('
|
|
43
|
+
describe('handleUIPassthroughForHostEvent', () => {
|
|
40
44
|
it('should return the value from the first valid response', async () => {
|
|
41
45
|
const { client } = createHostEventClient();
|
|
42
|
-
const apiName = contracts_1.
|
|
46
|
+
const apiName = contracts_1.UIPassthroughEvent.PinAnswerToLiveboard;
|
|
43
47
|
const parameters = {
|
|
44
48
|
newVizName: 'testViz',
|
|
45
49
|
};
|
|
@@ -47,7 +51,7 @@ describe('HostEventClient', () => {
|
|
|
47
51
|
{ value: { pinboardId: 'testPinboard', tabId: 'testTab', vizId: 'testVizId' } },
|
|
48
52
|
]);
|
|
49
53
|
mockProcessTrigger.mockResolvedValue(triggerResponse);
|
|
50
|
-
const result = await client.
|
|
54
|
+
const result = await client.handleHostEventWithParam(apiName, parameters);
|
|
51
55
|
expect(result).toEqual({
|
|
52
56
|
pinboardId: 'testPinboard',
|
|
53
57
|
tabId: 'testTab',
|
|
@@ -56,44 +60,44 @@ describe('HostEventClient', () => {
|
|
|
56
60
|
});
|
|
57
61
|
it('should throw an error if no valid response is found', async () => {
|
|
58
62
|
const { client } = createHostEventClient();
|
|
59
|
-
const apiName = contracts_1.
|
|
63
|
+
const apiName = contracts_1.UIPassthroughEvent.PinAnswerToLiveboard;
|
|
60
64
|
const parameters = {
|
|
61
65
|
newVizName: 'testViz',
|
|
62
66
|
};
|
|
63
|
-
const triggerResponse =
|
|
67
|
+
const triggerResponse = [];
|
|
64
68
|
mockProcessTrigger.mockResolvedValue(triggerResponse);
|
|
65
|
-
await expect(client.
|
|
69
|
+
await expect(client.handleHostEventWithParam(apiName, parameters))
|
|
66
70
|
.rejects.toEqual({ error: 'No answer found.' });
|
|
67
71
|
});
|
|
68
72
|
it('should throw an error if no valid response is found for vizId', async () => {
|
|
69
73
|
const { client } = createHostEventClient();
|
|
70
|
-
const apiName = contracts_1.
|
|
74
|
+
const apiName = contracts_1.UIPassthroughEvent.PinAnswerToLiveboard;
|
|
71
75
|
const parameters = {
|
|
72
76
|
newVizName: 'testViz',
|
|
73
77
|
vizId: 'testVizId',
|
|
74
78
|
};
|
|
75
|
-
const triggerResponse =
|
|
79
|
+
const triggerResponse = [];
|
|
76
80
|
mockProcessTrigger.mockResolvedValue(triggerResponse);
|
|
77
|
-
await expect(client.
|
|
81
|
+
await expect(client.handleHostEventWithParam(apiName, parameters))
|
|
78
82
|
.rejects.toEqual({ error: 'No answer found for vizId: testVizId.' });
|
|
79
83
|
});
|
|
80
84
|
it('should throw an error if the response contains errors', async () => {
|
|
81
85
|
const { client } = createHostEventClient();
|
|
82
|
-
const apiName = contracts_1.
|
|
86
|
+
const apiName = contracts_1.UIPassthroughEvent.PinAnswerToLiveboard;
|
|
83
87
|
const parameters = {
|
|
84
88
|
newVizName: 'testViz',
|
|
85
89
|
};
|
|
86
|
-
const triggerResponse =
|
|
90
|
+
const triggerResponse = [
|
|
87
91
|
{ error: 'Some error' },
|
|
88
|
-
]
|
|
92
|
+
];
|
|
89
93
|
mockProcessTrigger.mockResolvedValue(triggerResponse);
|
|
90
|
-
await expect(client.
|
|
94
|
+
await expect(client.handleHostEventWithParam(apiName, parameters))
|
|
91
95
|
.rejects.toEqual({ error: 'Some error' });
|
|
92
96
|
});
|
|
93
97
|
});
|
|
94
98
|
describe('executeHostEvent', () => {
|
|
95
|
-
it('should call
|
|
96
|
-
const { client } = createHostEventClient();
|
|
99
|
+
it('should call handleUIPassthroughForHostEvent for Pin event', async () => {
|
|
100
|
+
const { client, mockIframe } = createHostEventClient();
|
|
97
101
|
const hostEvent = types_1.HostEvent.Pin;
|
|
98
102
|
const payload = {
|
|
99
103
|
newVizName: 'testViz',
|
|
@@ -106,12 +110,12 @@ describe('HostEventClient', () => {
|
|
|
106
110
|
},
|
|
107
111
|
};
|
|
108
112
|
mockProcessTrigger.mockResolvedValue([mockResponse]);
|
|
109
|
-
const result = await client.
|
|
110
|
-
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
113
|
+
const result = await client.triggerHostEvent(hostEvent, payload);
|
|
114
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.UIPassthrough, 'http://localhost', { parameters: payload, type: contracts_1.UIPassthroughEvent.PinAnswerToLiveboard });
|
|
111
115
|
expect(result).toEqual(mockResponse.value);
|
|
112
116
|
});
|
|
113
|
-
it('should call
|
|
114
|
-
const { client } = createHostEventClient();
|
|
117
|
+
it('should call handleUIPassthroughForHostEvent for SaveAnswer event', async () => {
|
|
118
|
+
const { client, mockIframe } = createHostEventClient();
|
|
115
119
|
const hostEvent = types_1.HostEvent.SaveAnswer;
|
|
116
120
|
const payload = {
|
|
117
121
|
name: 'Test Answer',
|
|
@@ -133,8 +137,8 @@ describe('HostEventClient', () => {
|
|
|
133
137
|
refId: 'testVizId',
|
|
134
138
|
}];
|
|
135
139
|
mockProcessTrigger.mockResolvedValue(mockResponse);
|
|
136
|
-
const result = await client.
|
|
137
|
-
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
140
|
+
const result = await client.triggerHostEvent(hostEvent, payload);
|
|
141
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.UIPassthrough, mockThoughtSpotHost, {
|
|
138
142
|
parameters: payload,
|
|
139
143
|
type: 'saveAnswer',
|
|
140
144
|
});
|
|
@@ -146,12 +150,12 @@ describe('HostEventClient', () => {
|
|
|
146
150
|
const payload = { data: 'testData' };
|
|
147
151
|
const mockResponse = { fallbackResponse: 'data' };
|
|
148
152
|
jest.spyOn(client, 'hostEventFallback').mockResolvedValue(mockResponse);
|
|
149
|
-
const result = await client.
|
|
150
|
-
expect(client.hostEventFallback).toHaveBeenCalledWith(
|
|
153
|
+
const result = await client.triggerHostEvent(hostEvent, payload);
|
|
154
|
+
expect(client.hostEventFallback).toHaveBeenCalledWith(hostEvent, payload);
|
|
151
155
|
expect(result).toEqual(mockResponse);
|
|
152
156
|
});
|
|
153
157
|
it('should call fallback for Pin event', async () => {
|
|
154
|
-
const { client } = createHostEventClient();
|
|
158
|
+
const { client, mockIframe } = createHostEventClient();
|
|
155
159
|
const hostEvent = types_1.HostEvent.Pin;
|
|
156
160
|
const payload = {};
|
|
157
161
|
const mockResponse = {
|
|
@@ -162,12 +166,12 @@ describe('HostEventClient', () => {
|
|
|
162
166
|
},
|
|
163
167
|
};
|
|
164
168
|
mockProcessTrigger.mockResolvedValue([mockResponse]);
|
|
165
|
-
const result = await client.
|
|
166
|
-
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
169
|
+
const result = await client.triggerHostEvent(hostEvent, payload);
|
|
170
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.Pin, mockThoughtSpotHost, {});
|
|
167
171
|
expect(result).toEqual([mockResponse]);
|
|
168
172
|
});
|
|
169
173
|
it('should call fallback for SaveAnswer event', async () => {
|
|
170
|
-
const { client } = createHostEventClient();
|
|
174
|
+
const { client, mockIframe } = createHostEventClient();
|
|
171
175
|
const hostEvent = types_1.HostEvent.SaveAnswer;
|
|
172
176
|
const payload = {};
|
|
173
177
|
const mockResponse = {
|
|
@@ -178,8 +182,8 @@ describe('HostEventClient', () => {
|
|
|
178
182
|
},
|
|
179
183
|
};
|
|
180
184
|
mockProcessTrigger.mockResolvedValue([mockResponse]);
|
|
181
|
-
const result = await client.
|
|
182
|
-
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
185
|
+
const result = await client.triggerHostEvent(hostEvent, payload);
|
|
186
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(mockIframe, types_1.HostEvent.Save, mockThoughtSpotHost, {});
|
|
183
187
|
expect(result).toEqual([mockResponse]);
|
|
184
188
|
});
|
|
185
189
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-event-client.spec.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host-event-client.spec.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.spec.ts"],"names":[],"mappings":"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"}
|