@thoughtspot/visual-embed-sdk 1.12.0-alpha.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -6
- package/dist/src/auth.d.ts +4 -1
- package/dist/src/auth.spec.d.ts +1 -0
- package/dist/src/embed/liveboard.d.ts +7 -1
- package/dist/src/embed/search.d.ts +5 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
- package/dist/src/embed/ts-embed.d.ts +3 -2
- package/dist/src/errors.d.ts +2 -0
- package/dist/src/test/test-utils.d.ts +6 -0
- package/dist/src/types.d.ts +24 -2
- package/dist/src/utils/processTrigger.d.ts +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/tsembed.es.js +88 -17
- package/dist/tsembed.js +88 -17
- package/lib/package.json +4 -2
- package/lib/src/auth.d.ts +4 -1
- package/lib/src/auth.js +10 -2
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +1 -0
- package/lib/src/auth.spec.js +4 -1
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/app.spec.js +8 -6
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +2 -0
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +3 -1
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +7 -1
- package/lib/src/embed/liveboard.js +12 -0
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +18 -4
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +4 -3
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +5 -0
- package/lib/src/embed/search.js +10 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +9 -1
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +90 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +3 -2
- package/lib/src/embed/ts-embed.js +8 -7
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +12 -5
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +2 -0
- package/lib/src/errors.js +2 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/react/index.js +3 -2
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +6 -4
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +6 -0
- package/lib/src/test/test-utils.js +15 -0
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +24 -2
- package/lib/src/types.js +16 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +1 -1
- package/lib/src/utils/processTrigger.js +28 -8
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js +11 -1
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +1 -0
- package/lib/src/utils.js +8 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +16 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +42 -6
- package/package.json +4 -2
- package/src/auth.spec.ts +10 -1
- package/src/auth.ts +11 -2
- package/src/embed/app.spec.ts +8 -3
- package/src/embed/embed.spec.ts +2 -0
- package/src/embed/events.spec.ts +3 -0
- package/src/embed/liveboard.spec.ts +27 -4
- package/src/embed/liveboard.ts +13 -0
- package/src/embed/pinboard.spec.ts +4 -3
- package/src/embed/search.spec.ts +11 -1
- package/src/embed/search.ts +20 -1
- package/src/embed/searchEmbed-basic-auth.spec.ts +110 -0
- package/src/embed/ts-embed.spec.ts +19 -5
- package/src/embed/ts-embed.ts +15 -11
- package/src/errors.ts +3 -0
- package/src/react/index.spec.tsx +7 -2
- package/src/react/index.tsx +3 -2
- package/src/test/test-utils.ts +16 -0
- package/src/types.ts +22 -0
- package/src/utils/processTrigger.spec.ts +11 -1
- package/src/utils/processTrigger.ts +36 -12
- package/src/utils.spec.ts +21 -0
- package/src/utils.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,20 @@ This project follows Semantic Versioning.
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
8
|
### New Features
|
|
9
|
-
-
|
|
9
|
+
- Event for navigating to a specific page in App embed without any reload
|
|
10
|
+
- Ability to turn on search assist in Search embed
|
|
11
|
+
|
|
12
|
+
## 1.11.2 (06-10-2022)
|
|
13
|
+
### Fixed
|
|
14
|
+
- Typescript build that was affecting some Angular project configurations
|
|
15
|
+
|
|
16
|
+
## 1.11.1 (05-30-2022)
|
|
17
|
+
### Fixed
|
|
18
|
+
- Whitelabeling - new [action](https://developers.thoughtspot.com/docs/typedoc/enums/Action.html#ReportError) for the ability to turn off TS specific error reporting by end users.
|
|
19
|
+
|
|
20
|
+
## 1.11.0 (05-20-2022)
|
|
21
|
+
- Release to support TS version 8.3.0.cl
|
|
22
|
+
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
|
|
10
23
|
|
|
11
24
|
## 1.10.4 (05-06-2022)
|
|
12
25
|
### New Features
|
|
@@ -32,7 +45,7 @@ This project follows Semantic Versioning.
|
|
|
32
45
|
## 1.10.0 (04-22-2022)
|
|
33
46
|
|
|
34
47
|
- Release to support TS version 8.2.0.cl
|
|
35
|
-
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=
|
|
48
|
+
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
|
|
36
49
|
|
|
37
50
|
## 1.9.5 (04-06-2022)
|
|
38
51
|
|
|
@@ -48,12 +61,12 @@ This project follows Semantic Versioning.
|
|
|
48
61
|
|
|
49
62
|
## 1.9.3 (03-22-2022)
|
|
50
63
|
|
|
51
|
-
### New Features
|
|
64
|
+
### New Features
|
|
52
65
|
- `disableLoginRedirect` option in `EmbedConfig`
|
|
53
66
|
|
|
54
67
|
## 1.9.2 (03-17-2022)
|
|
55
68
|
|
|
56
|
-
### New Features
|
|
69
|
+
### New Features
|
|
57
70
|
- Ability to trigger events on React components
|
|
58
71
|
- Added new `useEmbedRef` hook, check README for usage.
|
|
59
72
|
|
|
@@ -73,7 +86,7 @@ This project follows Semantic Versioning.
|
|
|
73
86
|
## 1.9.0
|
|
74
87
|
|
|
75
88
|
- Release to support TS version 8.1.0.cl
|
|
76
|
-
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=
|
|
89
|
+
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
|
|
77
90
|
|
|
78
91
|
|
|
79
92
|
## 1.8.1
|
|
@@ -94,4 +107,4 @@ This project follows Semantic Versioning.
|
|
|
94
107
|
|
|
95
108
|
## 1.7.0 (and earlier)
|
|
96
109
|
|
|
97
|
-
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=
|
|
110
|
+
- Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
|
package/dist/src/auth.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { EmbedConfig } from './types';
|
|
|
2
2
|
export declare let loggedInStatus: boolean;
|
|
3
3
|
export declare let samlAuthWindow: Window;
|
|
4
4
|
export declare let samlCompletionPromise: Promise<void>;
|
|
5
|
-
export declare let sessionInfo: any;
|
|
6
5
|
export declare const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
|
|
7
6
|
export declare const EndPoints: {
|
|
8
7
|
AUTH_VERIFICATION: string;
|
|
@@ -23,6 +22,10 @@ export declare enum AuthStatus {
|
|
|
23
22
|
SUCCESS = "SUCCESS",
|
|
24
23
|
LOGOUT = "LOGOUT"
|
|
25
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Return releaseVersion if available
|
|
27
|
+
*/
|
|
28
|
+
export declare function getReleaseVersion(): string;
|
|
26
29
|
/**
|
|
27
30
|
* Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
|
|
28
31
|
*/
|
package/dist/src/auth.spec.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @summary Liveboard & visualization embed
|
|
9
9
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
10
|
*/
|
|
11
|
-
import { DOMSelector } from '../types';
|
|
11
|
+
import { DOMSelector, HostEvent } from '../types';
|
|
12
12
|
import { V1Embed, ViewConfig } from './ts-embed';
|
|
13
13
|
/**
|
|
14
14
|
* The configuration for the embedded Liveboard or visualization page view.
|
|
@@ -102,6 +102,12 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
102
102
|
private updateIFrameHeight;
|
|
103
103
|
private embedIframeCenter;
|
|
104
104
|
private setIframeHeightForNonEmbedLiveboard;
|
|
105
|
+
/**
|
|
106
|
+
* Triggers an event to the embedded app
|
|
107
|
+
* @param messageType The event type
|
|
108
|
+
* @param data The payload to send with the message
|
|
109
|
+
*/
|
|
110
|
+
trigger(messageType: HostEvent, data?: any): Promise<any>;
|
|
105
111
|
/**
|
|
106
112
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
107
113
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -44,8 +44,13 @@ export interface SearchViewConfig extends ViewConfig {
|
|
|
44
44
|
* using raw answer data.
|
|
45
45
|
*/
|
|
46
46
|
hideResults?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* If set to true, expands all the data sources panel.
|
|
49
|
+
*/
|
|
50
|
+
expandAllDataSource?: boolean;
|
|
47
51
|
/**
|
|
48
52
|
* If set to true, the Search Assist feature is enabled.
|
|
53
|
+
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
|
|
49
54
|
*/
|
|
50
55
|
enableSearchAssist?: boolean;
|
|
51
56
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -29,7 +29,7 @@ export interface FrameParams {
|
|
|
29
29
|
* This parameters will be passed on the iframe
|
|
30
30
|
* as is.
|
|
31
31
|
*/
|
|
32
|
-
[key: string]: string | number | boolean;
|
|
32
|
+
[key: string]: string | number | boolean | undefined;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* The configuration object for an embedded view.
|
|
@@ -142,6 +142,7 @@ export declare class TsEmbed {
|
|
|
142
142
|
* @default false
|
|
143
143
|
*/
|
|
144
144
|
private shouldEncodeUrlQueryParams;
|
|
145
|
+
private defaultHiddenActions;
|
|
145
146
|
constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
|
|
146
147
|
/**
|
|
147
148
|
* Gets a reference to the root DOM node where
|
|
@@ -265,7 +266,7 @@ export declare class TsEmbed {
|
|
|
265
266
|
* @param messageType The event type
|
|
266
267
|
* @param data The payload to send with the message
|
|
267
268
|
*/
|
|
268
|
-
trigger(messageType: HostEvent, data: any):
|
|
269
|
+
trigger(messageType: HostEvent, data: any): Promise<any>;
|
|
269
270
|
/**
|
|
270
271
|
* Marks the ThoughtSpot object to have been rendered
|
|
271
272
|
* Needs to be overridden by subclasses to do the actual
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -25,4 +25,10 @@ export declare const executeAfterWait: (fn: (...args: any[]) => void, waitTime?:
|
|
|
25
25
|
*/
|
|
26
26
|
export declare const EVENT_WAIT_TIME = 1000;
|
|
27
27
|
export declare function fixedEncodeURI(str: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* MessageChannel is available in Node > 15.0.0. Since the current node environment's
|
|
30
|
+
* used for github actions is not above 14, we are mocking this for the current unit tests.
|
|
31
|
+
*/
|
|
32
|
+
export declare const messageChannelMock: any;
|
|
33
|
+
export declare const mockMessageChannel: () => void;
|
|
28
34
|
export {};
|
package/dist/src/types.d.ts
CHANGED
|
@@ -161,6 +161,12 @@ export interface EmbedConfig {
|
|
|
161
161
|
* @version SDK: 1.10.4 | ThoughtSpot: *
|
|
162
162
|
*/
|
|
163
163
|
detectCookieAccessSlow?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Hide beta alert warning message for SearchEmbed.
|
|
166
|
+
*
|
|
167
|
+
* @version SDK: 1.12.0 | ThoughtSpot: *
|
|
168
|
+
*/
|
|
169
|
+
suppressSearchEmbedBetaWarning?: boolean;
|
|
164
170
|
}
|
|
165
171
|
/**
|
|
166
172
|
* MessagePayload: Embed event payload: message type, data and status (start/end)
|
|
@@ -570,7 +576,19 @@ export declare enum HostEvent {
|
|
|
570
576
|
* @param path - the path to navigate to (can be a number[1/-1] to go forward/back)
|
|
571
577
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl
|
|
572
578
|
*/
|
|
573
|
-
Navigate = "Navigate"
|
|
579
|
+
Navigate = "Navigate",
|
|
580
|
+
/**
|
|
581
|
+
* Gets the current pinboard content.
|
|
582
|
+
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
|
|
583
|
+
*/
|
|
584
|
+
getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
|
|
585
|
+
/**
|
|
586
|
+
* Fires the pin action on an embedded object
|
|
587
|
+
* @param - incase of liveboard embed, takes in an object with vizId as a key
|
|
588
|
+
* can be left empty for search and viz embeds
|
|
589
|
+
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
|
|
590
|
+
*/
|
|
591
|
+
Pin = "pin"
|
|
574
592
|
}
|
|
575
593
|
/**
|
|
576
594
|
* The different visual modes that the data sources panel within
|
|
@@ -764,7 +782,11 @@ export declare enum Action {
|
|
|
764
782
|
/**
|
|
765
783
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
|
|
766
784
|
*/
|
|
767
|
-
CreateMonitor = "createMonitor"
|
|
785
|
+
CreateMonitor = "createMonitor",
|
|
786
|
+
/**
|
|
787
|
+
* @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
|
|
788
|
+
*/
|
|
789
|
+
ReportError = "reportError"
|
|
768
790
|
}
|
|
769
791
|
export interface SessionInterface {
|
|
770
792
|
sessionId: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { HostEvent } from '../types';
|
|
2
|
-
export declare function processTrigger(iFrame: HTMLIFrameElement, messageType: HostEvent, thoughtSpotHost: string, data: any):
|
|
2
|
+
export declare function processTrigger(iFrame: HTMLIFrameElement, messageType: HostEvent, thoughtSpotHost: string, data: any): Promise<any>;
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -42,3 +42,4 @@ export declare const embedEventStatus: {
|
|
|
42
42
|
export declare const setAttributes: (element: HTMLElement, attributes: {
|
|
43
43
|
[key: string]: string | number | boolean;
|
|
44
44
|
}) => void;
|
|
45
|
+
export declare const checkReleaseVersionInBeta: (releaseVersion: string, suppressBetaWarning: boolean) => boolean;
|
package/dist/tsembed.es.js
CHANGED
|
@@ -121,6 +121,14 @@ const setAttributes = (element, attributes) => {
|
|
|
121
121
|
Object.keys(attributes).forEach((key) => {
|
|
122
122
|
element.setAttribute(key, attributes[key].toString());
|
|
123
123
|
});
|
|
124
|
+
};
|
|
125
|
+
/* For Search Embed: ReleaseVersionInBeta */
|
|
126
|
+
const checkReleaseVersionInBeta = (releaseVersion, suppressBetaWarning) => {
|
|
127
|
+
const splittedReleaseVersion = releaseVersion.split('.'); // splitting releasonversion
|
|
128
|
+
const majorVersion = Number(splittedReleaseVersion[0]);
|
|
129
|
+
const minorVersion = Number(splittedReleaseVersion[1]);
|
|
130
|
+
const isBetaVersion = majorVersion < 8 || (majorVersion === 8 && minorVersion < 4);
|
|
131
|
+
return !suppressBetaWarning && isBetaVersion;
|
|
124
132
|
};
|
|
125
133
|
|
|
126
134
|
/**
|
|
@@ -529,6 +537,18 @@ var HostEvent;
|
|
|
529
537
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl
|
|
530
538
|
*/
|
|
531
539
|
HostEvent["Navigate"] = "Navigate";
|
|
540
|
+
/**
|
|
541
|
+
* Gets the current pinboard content.
|
|
542
|
+
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
|
|
543
|
+
*/
|
|
544
|
+
HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
545
|
+
/**
|
|
546
|
+
* Fires the pin action on an embedded object
|
|
547
|
+
* @param - incase of liveboard embed, takes in an object with vizId as a key
|
|
548
|
+
* can be left empty for search and viz embeds
|
|
549
|
+
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
|
|
550
|
+
*/
|
|
551
|
+
HostEvent["Pin"] = "pin";
|
|
532
552
|
})(HostEvent || (HostEvent = {}));
|
|
533
553
|
/**
|
|
534
554
|
* The different visual modes that the data sources panel within
|
|
@@ -729,6 +749,10 @@ var Action;
|
|
|
729
749
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
|
|
730
750
|
*/
|
|
731
751
|
Action["CreateMonitor"] = "createMonitor";
|
|
752
|
+
/**
|
|
753
|
+
* @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
|
|
754
|
+
*/
|
|
755
|
+
Action["ReportError"] = "reportError";
|
|
732
756
|
})(Action || (Action = {}));
|
|
733
757
|
// eslint-disable-next-line no-shadow
|
|
734
758
|
var OperationType;
|
|
@@ -740,6 +764,8 @@ var OperationType;
|
|
|
740
764
|
const ERROR_MESSAGE = {
|
|
741
765
|
INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
|
|
742
766
|
LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
|
|
767
|
+
TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
|
|
768
|
+
SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
|
|
743
769
|
};
|
|
744
770
|
|
|
745
771
|
/**
|
|
@@ -7227,8 +7253,8 @@ let loggedInStatus = false;
|
|
|
7227
7253
|
let samlAuthWindow = null;
|
|
7228
7254
|
// eslint-disable-next-line import/no-mutable-exports
|
|
7229
7255
|
let samlCompletionPromise = null;
|
|
7230
|
-
// eslint-disable-next-line import/no-mutable-exports
|
|
7231
7256
|
let sessionInfo = null;
|
|
7257
|
+
let releaseVersion = '';
|
|
7232
7258
|
const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
7233
7259
|
const EndPoints = {
|
|
7234
7260
|
AUTH_VERIFICATION: '/callosum/v1/session/info',
|
|
@@ -7260,12 +7286,20 @@ async function isLoggedIn(thoughtSpotHost) {
|
|
|
7260
7286
|
let response = null;
|
|
7261
7287
|
try {
|
|
7262
7288
|
response = await fetchSessionInfoService(authVerificationUrl);
|
|
7289
|
+
const sessionInfoResp = await response.json();
|
|
7290
|
+
releaseVersion = sessionInfoResp.releaseVersion;
|
|
7263
7291
|
}
|
|
7264
7292
|
catch (e) {
|
|
7265
7293
|
return false;
|
|
7266
7294
|
}
|
|
7267
7295
|
return response.status === 200;
|
|
7268
7296
|
}
|
|
7297
|
+
/**
|
|
7298
|
+
* Return releaseVersion if available
|
|
7299
|
+
*/
|
|
7300
|
+
function getReleaseVersion() {
|
|
7301
|
+
return releaseVersion;
|
|
7302
|
+
}
|
|
7269
7303
|
function initSession(sessionDetails) {
|
|
7270
7304
|
sessionInfo = sessionDetails;
|
|
7271
7305
|
initMixpanel(sessionInfo);
|
|
@@ -7726,19 +7760,38 @@ function reload(iFrame) {
|
|
|
7726
7760
|
/**
|
|
7727
7761
|
* Post Iframe message.
|
|
7728
7762
|
*/
|
|
7729
|
-
function postIframeMessage(iFrame, message, thoughtSpotHost) {
|
|
7730
|
-
return iFrame.contentWindow.postMessage(message, thoughtSpotHost
|
|
7763
|
+
function postIframeMessage(iFrame, message, thoughtSpotHost, channel) {
|
|
7764
|
+
return iFrame.contentWindow.postMessage(message, thoughtSpotHost, [
|
|
7765
|
+
channel === null || channel === void 0 ? void 0 : channel.port2,
|
|
7766
|
+
]);
|
|
7731
7767
|
}
|
|
7768
|
+
const TRIGGER_TIMEOUT = 30000;
|
|
7732
7769
|
function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
|
|
7738
|
-
|
|
7770
|
+
return new Promise((res, rej) => {
|
|
7771
|
+
if (messageType === HostEvent.Reload) {
|
|
7772
|
+
reload(iFrame);
|
|
7773
|
+
return res(null);
|
|
7774
|
+
}
|
|
7775
|
+
const channel = new MessageChannel();
|
|
7776
|
+
channel.port1.onmessage = ({ data: responseData }) => {
|
|
7777
|
+
channel.port1.close();
|
|
7778
|
+
if (responseData.error) {
|
|
7779
|
+
rej(responseData.error);
|
|
7780
|
+
}
|
|
7781
|
+
else {
|
|
7782
|
+
res(responseData);
|
|
7783
|
+
}
|
|
7784
|
+
};
|
|
7785
|
+
// Close the messageChannel and resolve the promise if timeout.
|
|
7786
|
+
setTimeout(() => {
|
|
7787
|
+
channel.port1.close();
|
|
7788
|
+
res(new Error(ERROR_MESSAGE.TRIGGER_TIMED_OUT));
|
|
7789
|
+
}, TRIGGER_TIMEOUT);
|
|
7790
|
+
return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost, channel);
|
|
7791
|
+
});
|
|
7739
7792
|
}
|
|
7740
7793
|
|
|
7741
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.12.0
|
|
7794
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.12.0";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**"];var exports={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","html-react-parser":"^1.4.12","mixpanel-browser":"^2.45.0","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
7742
7795
|
|
|
7743
7796
|
/**
|
|
7744
7797
|
* Copyright (c) 2022
|
|
@@ -7776,6 +7829,7 @@ class TsEmbed {
|
|
|
7776
7829
|
* @default false
|
|
7777
7830
|
*/
|
|
7778
7831
|
this.shouldEncodeUrlQueryParams = false;
|
|
7832
|
+
this.defaultHiddenActions = [Action.ReportError];
|
|
7779
7833
|
this.el = this.getDOMNode(domSelector);
|
|
7780
7834
|
// TODO: handle error
|
|
7781
7835
|
this.embedConfig = getEmbedConfig();
|
|
@@ -7812,7 +7866,7 @@ class TsEmbed {
|
|
|
7812
7866
|
error,
|
|
7813
7867
|
});
|
|
7814
7868
|
// Log error
|
|
7815
|
-
console.
|
|
7869
|
+
console.error(error);
|
|
7816
7870
|
}
|
|
7817
7871
|
/**
|
|
7818
7872
|
* Extracts the type field from the event payload
|
|
@@ -7918,9 +7972,10 @@ class TsEmbed {
|
|
|
7918
7972
|
if (disabledActionReason) {
|
|
7919
7973
|
queryParams[Param.DisableActionReason] = disabledActionReason;
|
|
7920
7974
|
}
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7975
|
+
queryParams[Param.HideActions] = [
|
|
7976
|
+
...this.defaultHiddenActions,
|
|
7977
|
+
...(hiddenActions !== null && hiddenActions !== void 0 ? hiddenActions : []),
|
|
7978
|
+
];
|
|
7924
7979
|
if (Array.isArray(visibleActions)) {
|
|
7925
7980
|
queryParams[Param.VisibleActions] = visibleActions;
|
|
7926
7981
|
}
|
|
@@ -8165,9 +8220,8 @@ class TsEmbed {
|
|
|
8165
8220
|
* @param data The payload to send with the message
|
|
8166
8221
|
*/
|
|
8167
8222
|
trigger(messageType, data) {
|
|
8168
|
-
processTrigger(this.iFrame, messageType, this.thoughtSpotHost, data);
|
|
8169
8223
|
uploadMixpanelEvent(`${MIXPANEL_EVENT.VISUAL_SDK_TRIGGER}-${messageType}`);
|
|
8170
|
-
return this;
|
|
8224
|
+
return processTrigger(this.iFrame, messageType, this.thoughtSpotHost, data);
|
|
8171
8225
|
}
|
|
8172
8226
|
/**
|
|
8173
8227
|
* Marks the ThoughtSpot object to have been rendered
|
|
@@ -8482,6 +8536,18 @@ class LiveboardEmbed extends V1Embed {
|
|
|
8482
8536
|
url = `${url}${tsPostHashParams}`;
|
|
8483
8537
|
return url;
|
|
8484
8538
|
}
|
|
8539
|
+
/**
|
|
8540
|
+
* Triggers an event to the embedded app
|
|
8541
|
+
* @param messageType The event type
|
|
8542
|
+
* @param data The payload to send with the message
|
|
8543
|
+
*/
|
|
8544
|
+
trigger(messageType, data = {}) {
|
|
8545
|
+
const dataWithVizId = data;
|
|
8546
|
+
if (this.viewConfig.vizId) {
|
|
8547
|
+
dataWithVizId.vizId = this.viewConfig.vizId;
|
|
8548
|
+
}
|
|
8549
|
+
return super.trigger(messageType, dataWithVizId);
|
|
8550
|
+
}
|
|
8485
8551
|
/**
|
|
8486
8552
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
8487
8553
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -8558,7 +8624,7 @@ class SearchEmbed extends TsEmbed {
|
|
|
8558
8624
|
*/
|
|
8559
8625
|
getIFrameSrc(answerId, dataSources) {
|
|
8560
8626
|
var _a;
|
|
8561
|
-
const { hideResults, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
|
|
8627
|
+
const { hideResults, expandAllDataSource, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
|
|
8562
8628
|
const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
|
|
8563
8629
|
const queryParams = this.getBaseQueryParams();
|
|
8564
8630
|
queryParams[Param.HideActions] = [
|
|
@@ -8602,6 +8668,11 @@ class SearchEmbed extends TsEmbed {
|
|
|
8602
8668
|
const { answerId, dataSources } = this.viewConfig;
|
|
8603
8669
|
const src = this.getIFrameSrc(answerId, dataSources);
|
|
8604
8670
|
this.renderIFrame(src, this.viewConfig.frameParams);
|
|
8671
|
+
getAuthPromise().then(() => {
|
|
8672
|
+
if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
|
|
8673
|
+
alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
|
|
8674
|
+
}
|
|
8675
|
+
});
|
|
8605
8676
|
return this;
|
|
8606
8677
|
}
|
|
8607
8678
|
}
|