@thoughtspot/visual-embed-sdk 1.35.5-hostEvent.5 → 1.35.5-hostEvent.7
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/hostEventClient/contracts.d.ts +27 -31
- 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 +61 -27
- 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.spec.js +4 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +13 -8
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +22 -14
- 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 +1 -1
- package/cjs/src/types.js +1 -1
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/src/embed/hostEventClient/contracts.d.ts +27 -31
- 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/ts-embed.d.ts +13 -8
- 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 +1 -1
- package/dist/tsembed-react.es.js +95 -54
- package/dist/tsembed-react.js +94 -53
- package/dist/tsembed.es.js +96 -55
- package/dist/tsembed.js +94 -53
- package/dist/visual-embed-sdk-react-full.d.ts +61 -46
- package/dist/visual-embed-sdk-react.d.ts +61 -46
- package/dist/visual-embed-sdk.d.ts +61 -46
- package/lib/package.json +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +27 -31
- 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 +63 -29
- 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.spec.js +4 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +13 -8
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +22 -14
- 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 +1 -1
- package/lib/src/types.js +1 -1
- package/lib/src/visual-embed-sdk.d.ts +64 -49
- package/package.json +1 -1
- package/src/embed/hostEventClient/contracts.ts +44 -33
- package/src/embed/hostEventClient/host-event-client.spec.ts +58 -54
- package/src/embed/hostEventClient/host-event-client.ts +109 -47
- package/src/embed/liveboard.spec.ts +4 -2
- package/src/embed/ts-embed.spec.ts +6 -6
- package/src/embed/ts-embed.ts +38 -27
- package/src/index.ts +2 -2
- package/src/react/all-types-export.ts +1 -1
- package/src/types.ts +1 -1
package/cjs/package.json
CHANGED
|
@@ -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,60 +24,56 @@ 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;
|
|
31
|
-
vizId
|
|
31
|
+
vizId?: string;
|
|
32
32
|
isDiscoverable?: boolean;
|
|
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;AAOrB,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
38
|
throw { error: response.error };
|
|
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":"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"}
|
|
@@ -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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"}
|
|
@@ -364,8 +364,10 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
364
364
|
liveboardId,
|
|
365
365
|
});
|
|
366
366
|
liveboardEmbed.render();
|
|
367
|
-
|
|
368
|
-
|
|
367
|
+
await (0, test_utils_1.executeAfterWait)(async () => {
|
|
368
|
+
await liveboardEmbed.trigger(types_1.HostEvent.Pin);
|
|
369
|
+
expect(mockProcessTrigger).toBeCalled();
|
|
370
|
+
});
|
|
369
371
|
});
|
|
370
372
|
test('should render active tab when activeTab present', async () => {
|
|
371
373
|
const liveboardEmbed = new liveboard_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
|