@thoughtspot/visual-embed-sdk 1.21.0-alpha.2 → 1.21.0-alpha.3
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 +170 -0
- package/cjs/src/auth.d.ts +183 -0
- package/cjs/src/auth.d.ts.map +1 -0
- package/cjs/src/auth.js +457 -0
- package/cjs/src/auth.js.map +1 -0
- package/cjs/src/auth.spec.d.ts +13 -0
- package/cjs/src/auth.spec.d.ts.map +1 -0
- package/cjs/src/auth.spec.js +397 -0
- package/cjs/src/auth.spec.js.map +1 -0
- package/cjs/src/config.d.ts +22 -0
- package/cjs/src/config.d.ts.map +1 -0
- package/cjs/src/config.js +70 -0
- package/cjs/src/config.js.map +1 -0
- package/cjs/src/config.spec.d.ts +5 -0
- package/cjs/src/config.spec.d.ts.map +1 -0
- package/cjs/src/config.spec.js +65 -0
- package/cjs/src/config.spec.js.map +1 -0
- package/cjs/src/embed/app.d.ts +151 -0
- package/cjs/src/embed/app.d.ts.map +1 -0
- package/cjs/src/embed/app.js +186 -0
- package/cjs/src/embed/app.js.map +1 -0
- package/cjs/src/embed/app.spec.d.ts +2 -0
- package/cjs/src/embed/app.spec.d.ts.map +1 -0
- package/cjs/src/embed/app.spec.js +210 -0
- package/cjs/src/embed/app.spec.js.map +1 -0
- package/cjs/src/embed/base.d.ts +79 -0
- package/cjs/src/embed/base.d.ts.map +1 -0
- package/cjs/src/embed/base.js +229 -0
- package/cjs/src/embed/base.js.map +1 -0
- package/cjs/src/embed/base.spec.d.ts +2 -0
- package/cjs/src/embed/base.spec.d.ts.map +1 -0
- package/cjs/src/embed/base.spec.js +198 -0
- package/cjs/src/embed/base.spec.js.map +1 -0
- package/cjs/src/embed/embed.spec.d.ts +2 -0
- package/cjs/src/embed/embed.spec.d.ts.map +1 -0
- package/cjs/src/embed/embed.spec.js +74 -0
- package/cjs/src/embed/embed.spec.js.map +1 -0
- package/cjs/src/embed/events.spec.d.ts +2 -0
- package/cjs/src/embed/events.spec.d.ts.map +1 -0
- package/cjs/src/embed/events.spec.js +238 -0
- package/cjs/src/embed/events.spec.js.map +1 -0
- package/cjs/src/embed/liveboard.d.ts +150 -0
- package/cjs/src/embed/liveboard.d.ts.map +1 -0
- package/cjs/src/embed/liveboard.js +168 -0
- package/cjs/src/embed/liveboard.js.map +1 -0
- package/cjs/src/embed/liveboard.spec.d.ts +2 -0
- package/cjs/src/embed/liveboard.spec.d.ts.map +1 -0
- package/cjs/src/embed/liveboard.spec.js +229 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -0
- package/cjs/src/embed/pinboard.spec.d.ts +2 -0
- package/cjs/src/embed/pinboard.spec.d.ts.map +1 -0
- package/cjs/src/embed/pinboard.spec.js +148 -0
- package/cjs/src/embed/pinboard.spec.js.map +1 -0
- package/cjs/src/embed/search-bar.d.ts +50 -0
- package/cjs/src/embed/search-bar.d.ts.map +1 -0
- package/cjs/src/embed/search-bar.js +63 -0
- package/cjs/src/embed/search-bar.js.map +1 -0
- package/cjs/src/embed/search.d.ts +125 -0
- package/cjs/src/embed/search.d.ts.map +1 -0
- package/cjs/src/embed/search.js +121 -0
- package/cjs/src/embed/search.js.map +1 -0
- package/cjs/src/embed/search.spec.d.ts +2 -0
- package/cjs/src/embed/search.spec.d.ts.map +1 -0
- package/cjs/src/embed/search.spec.js +238 -0
- package/cjs/src/embed/search.spec.js.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +103 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +323 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -0
- package/cjs/src/embed/ts-embed.js +716 -0
- package/cjs/src/embed/ts-embed.js.map +1 -0
- package/cjs/src/embed/ts-embed.spec.d.ts +2 -0
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -0
- package/cjs/src/embed/ts-embed.spec.js +771 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -0
- package/cjs/src/errors.d.ts +7 -0
- package/cjs/src/errors.d.ts.map +1 -0
- package/cjs/src/errors.js +10 -0
- package/cjs/src/errors.js.map +1 -0
- package/cjs/src/index.d.ts +18 -0
- package/cjs/src/index.d.ts.map +1 -0
- package/cjs/src/index.js +41 -0
- package/cjs/src/index.js.map +1 -0
- package/cjs/src/mixpanel-service.d.ts +29 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -0
- package/cjs/src/mixpanel-service.js +76 -0
- package/cjs/src/mixpanel-service.js.map +1 -0
- package/cjs/src/mixpanel-service.spec.d.ts +2 -0
- package/cjs/src/mixpanel-service.spec.d.ts.map +1 -0
- package/cjs/src/mixpanel-service.spec.js +63 -0
- package/cjs/src/mixpanel-service.spec.js.map +1 -0
- package/cjs/src/react/index.d.ts +38 -0
- package/cjs/src/react/index.d.ts.map +1 -0
- package/cjs/src/react/index.js +64 -0
- package/cjs/src/react/index.js.map +1 -0
- package/cjs/src/react/index.spec.d.ts +3 -0
- package/cjs/src/react/index.spec.d.ts.map +1 -0
- package/cjs/src/react/index.spec.js +126 -0
- package/cjs/src/react/index.spec.js.map +1 -0
- package/cjs/src/react/util.d.ts +19 -0
- package/cjs/src/react/util.d.ts.map +1 -0
- package/cjs/src/react/util.js +25 -0
- package/cjs/src/react/util.js.map +1 -0
- package/cjs/src/test/test-utils.d.ts +48 -0
- package/cjs/src/test/test-utils.d.ts.map +1 -0
- package/cjs/src/test/test-utils.js +108 -0
- package/cjs/src/test/test-utils.js.map +1 -0
- package/cjs/src/types.d.ts +1846 -0
- package/cjs/src/types.d.ts.map +1 -0
- package/cjs/src/types.js +1415 -0
- package/cjs/src/types.js.map +1 -0
- package/cjs/src/utils/answerService.d.ts +10 -0
- package/cjs/src/utils/answerService.d.ts.map +1 -0
- package/cjs/src/utils/answerService.js +61 -0
- package/cjs/src/utils/answerService.js.map +1 -0
- package/cjs/src/utils/answerService.spec.d.ts +2 -0
- package/cjs/src/utils/answerService.spec.d.ts.map +1 -0
- package/cjs/src/utils/answerService.spec.js +31 -0
- package/cjs/src/utils/answerService.spec.js.map +1 -0
- package/cjs/src/utils/authService.d.ts +37 -0
- package/cjs/src/utils/authService.d.ts.map +1 -0
- package/cjs/src/utils/authService.js +106 -0
- package/cjs/src/utils/authService.js.map +1 -0
- package/cjs/src/utils/authService.spec.d.ts +2 -0
- package/cjs/src/utils/authService.spec.d.ts.map +1 -0
- package/cjs/src/utils/authService.spec.js +72 -0
- package/cjs/src/utils/authService.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts +16 -0
- package/cjs/src/utils/processData.d.ts.map +1 -0
- package/cjs/src/utils/processData.js +110 -0
- package/cjs/src/utils/processData.js.map +1 -0
- package/cjs/src/utils/processData.spec.d.ts +2 -0
- package/cjs/src/utils/processData.spec.d.ts.map +1 -0
- package/cjs/src/utils/processData.spec.js +142 -0
- package/cjs/src/utils/processData.spec.js.map +1 -0
- package/cjs/src/utils/processTrigger.d.ts +10 -0
- package/cjs/src/utils/processTrigger.d.ts.map +1 -0
- package/cjs/src/utils/processTrigger.js +63 -0
- package/cjs/src/utils/processTrigger.js.map +1 -0
- package/cjs/src/utils/processTrigger.spec.d.ts +2 -0
- package/cjs/src/utils/processTrigger.spec.d.ts.map +1 -0
- package/cjs/src/utils/processTrigger.spec.js +58 -0
- package/cjs/src/utils/processTrigger.spec.js.map +1 -0
- package/cjs/src/utils.d.ts +68 -0
- package/cjs/src/utils.d.ts.map +1 -0
- package/cjs/src/utils.js +196 -0
- package/cjs/src/utils.js.map +1 -0
- package/cjs/src/utils.spec.d.ts +5 -0
- package/cjs/src/utils.spec.d.ts.map +1 -0
- package/cjs/src/utils.spec.js +98 -0
- package/cjs/src/utils.spec.js.map +1 -0
- package/dist/tsembed.es.js +1 -1
- package/dist/tsembed.js +1 -1
- package/lib/package.json +8 -3
- package/package.json +8 -3
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022
|
|
3
|
+
*
|
|
4
|
+
* Full application embedding
|
|
5
|
+
* https://developers.thoughtspot.com/docs/?pageid=full-embed
|
|
6
|
+
*
|
|
7
|
+
* @summary Full app embed
|
|
8
|
+
* @module
|
|
9
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
|
+
*/
|
|
11
|
+
import { DOMSelector, ViewConfig } from '../types';
|
|
12
|
+
import { V1Embed } from './ts-embed';
|
|
13
|
+
/**
|
|
14
|
+
* Pages within the ThoughtSpot app that can be embedded.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum Page {
|
|
17
|
+
/**
|
|
18
|
+
* Home page
|
|
19
|
+
*/
|
|
20
|
+
Home = "home",
|
|
21
|
+
/**
|
|
22
|
+
* Search page
|
|
23
|
+
*/
|
|
24
|
+
Search = "search",
|
|
25
|
+
/**
|
|
26
|
+
* Saved answers listing page
|
|
27
|
+
*/
|
|
28
|
+
Answers = "answers",
|
|
29
|
+
/**
|
|
30
|
+
* Liveboards listing page
|
|
31
|
+
*/
|
|
32
|
+
Liveboards = "liveboards",
|
|
33
|
+
/**
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
|
+
Pinboards = "pinboards",
|
|
37
|
+
/**
|
|
38
|
+
* Data management page
|
|
39
|
+
*/
|
|
40
|
+
Data = "data",
|
|
41
|
+
/**
|
|
42
|
+
* SpotIQ listing page
|
|
43
|
+
*/
|
|
44
|
+
SpotIQ = "spotiq"
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The view configuration for full app embedding.
|
|
48
|
+
*
|
|
49
|
+
* @group Embed components
|
|
50
|
+
*/
|
|
51
|
+
export interface AppViewConfig extends ViewConfig {
|
|
52
|
+
/**
|
|
53
|
+
* If true, the main navigation bar within the ThoughtSpot app
|
|
54
|
+
* is displayed. By default, the navigation bar is hidden.
|
|
55
|
+
*/
|
|
56
|
+
showPrimaryNavbar?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* If true, help and profile buttons will hide on NavBar. By default,
|
|
59
|
+
* they are shown.
|
|
60
|
+
*/
|
|
61
|
+
disableProfileAndHelp?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* A URL path within the app that is to be embedded.
|
|
64
|
+
* If both path and pageId attributes are defined, the path definition
|
|
65
|
+
* takes precedence.
|
|
66
|
+
*/
|
|
67
|
+
path?: string;
|
|
68
|
+
/**
|
|
69
|
+
* The application page to set as the start page
|
|
70
|
+
* in the embedded view.
|
|
71
|
+
*/
|
|
72
|
+
pageId?: Page;
|
|
73
|
+
/**
|
|
74
|
+
* This puts a filter tag on the application. All metadata lists in the
|
|
75
|
+
* application, such as Liveboards and answers, would be filtered by this
|
|
76
|
+
* tag.
|
|
77
|
+
*/
|
|
78
|
+
tag?: string;
|
|
79
|
+
/**
|
|
80
|
+
* The array of GUIDs to be hidden
|
|
81
|
+
*/
|
|
82
|
+
hideObjects?: string[];
|
|
83
|
+
/**
|
|
84
|
+
* Render liveboards using the new v2 rendering mode
|
|
85
|
+
* This is a transient flag which is primarily meant for internal use
|
|
86
|
+
*
|
|
87
|
+
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1-sw
|
|
88
|
+
* @hidden
|
|
89
|
+
*/
|
|
90
|
+
liveboardV2?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* If set to true, the Search Assist feature is enabled.
|
|
93
|
+
*
|
|
94
|
+
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
|
|
95
|
+
*/
|
|
96
|
+
enableSearchAssist?: boolean;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Embeds full ThoughtSpot experience in a host application.
|
|
100
|
+
*
|
|
101
|
+
* @group Embed components
|
|
102
|
+
*/
|
|
103
|
+
export declare class AppEmbed extends V1Embed {
|
|
104
|
+
protected viewConfig: AppViewConfig;
|
|
105
|
+
constructor(domSelector: DOMSelector, viewConfig: AppViewConfig);
|
|
106
|
+
/**
|
|
107
|
+
* Constructs a map of parameters to be passed on to the
|
|
108
|
+
* embedded Liveboard or visualization.
|
|
109
|
+
*/
|
|
110
|
+
protected getEmbedParams(): string;
|
|
111
|
+
/**
|
|
112
|
+
* Constructs the URL of the ThoughtSpot app page to be rendered.
|
|
113
|
+
*
|
|
114
|
+
* @param pageId The ID of the page to be embedded.
|
|
115
|
+
*/
|
|
116
|
+
private getIFrameSrc;
|
|
117
|
+
/**
|
|
118
|
+
* Gets the ThoughtSpot route of the page for a particular page ID.
|
|
119
|
+
*
|
|
120
|
+
* @param pageId The identifier for a page in the ThoughtSpot app.
|
|
121
|
+
*/
|
|
122
|
+
private getPageRoute;
|
|
123
|
+
/**
|
|
124
|
+
* Formats the path provided by the user.
|
|
125
|
+
*
|
|
126
|
+
* @param path The URL path.
|
|
127
|
+
* @returns The URL path that the embedded app understands.
|
|
128
|
+
*/
|
|
129
|
+
private formatPath;
|
|
130
|
+
/**
|
|
131
|
+
* Navigate to particular page for app embed. eg:answers/pinboards/home
|
|
132
|
+
* This is used for embedding answers, pinboards, visualizations and full application
|
|
133
|
+
* only.
|
|
134
|
+
*
|
|
135
|
+
* @param path string | number The string, set to iframe src and navigate to new page
|
|
136
|
+
* eg: appEmbed.navigateToPage('pinboards')
|
|
137
|
+
* When used with `noReload` (default: true) this can also be a number
|
|
138
|
+
* like 1/-1 to go forward/back.
|
|
139
|
+
* @param noReload boolean Trigger the navigation without reloading the page
|
|
140
|
+
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
|
|
141
|
+
*/
|
|
142
|
+
navigateToPage(path: string | number, noReload?: boolean): void;
|
|
143
|
+
/**
|
|
144
|
+
* Renders the embedded application pages in the ThoughtSpot app.
|
|
145
|
+
*
|
|
146
|
+
* @param renderOptions An object containing the page ID
|
|
147
|
+
* to be embedded.
|
|
148
|
+
*/
|
|
149
|
+
render(): AppEmbed;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACmB,WAAW,EAAa,UAAU,EAC3D,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AAEH,oBAAY,IAAI;IACZ;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,UAAU,eAAe;IACzB;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,WAAW;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACjC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;gBAGxB,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAI/D;;;OAGG;IACH,SAAS,CAAC,cAAc;IAoCxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;;;;OAWG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAsBpE;;;;;OAKG;IACI,MAAM,IAAI,QAAQ;CAO5B"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2022
|
|
4
|
+
*
|
|
5
|
+
* Full application embedding
|
|
6
|
+
* https://developers.thoughtspot.com/docs/?pageid=full-embed
|
|
7
|
+
*
|
|
8
|
+
* @summary Full app embed
|
|
9
|
+
* @module
|
|
10
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.AppEmbed = exports.Page = void 0;
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
const types_1 = require("../types");
|
|
16
|
+
const ts_embed_1 = require("./ts-embed");
|
|
17
|
+
/**
|
|
18
|
+
* Pages within the ThoughtSpot app that can be embedded.
|
|
19
|
+
*/
|
|
20
|
+
// eslint-disable-next-line no-shadow
|
|
21
|
+
var Page;
|
|
22
|
+
(function (Page) {
|
|
23
|
+
/**
|
|
24
|
+
* Home page
|
|
25
|
+
*/
|
|
26
|
+
Page["Home"] = "home";
|
|
27
|
+
/**
|
|
28
|
+
* Search page
|
|
29
|
+
*/
|
|
30
|
+
Page["Search"] = "search";
|
|
31
|
+
/**
|
|
32
|
+
* Saved answers listing page
|
|
33
|
+
*/
|
|
34
|
+
Page["Answers"] = "answers";
|
|
35
|
+
/**
|
|
36
|
+
* Liveboards listing page
|
|
37
|
+
*/
|
|
38
|
+
Page["Liveboards"] = "liveboards";
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
Page["Pinboards"] = "pinboards";
|
|
43
|
+
/**
|
|
44
|
+
* Data management page
|
|
45
|
+
*/
|
|
46
|
+
Page["Data"] = "data";
|
|
47
|
+
/**
|
|
48
|
+
* SpotIQ listing page
|
|
49
|
+
*/
|
|
50
|
+
Page["SpotIQ"] = "spotiq";
|
|
51
|
+
})(Page = exports.Page || (exports.Page = {}));
|
|
52
|
+
/**
|
|
53
|
+
* Embeds full ThoughtSpot experience in a host application.
|
|
54
|
+
*
|
|
55
|
+
* @group Embed components
|
|
56
|
+
*/
|
|
57
|
+
class AppEmbed extends ts_embed_1.V1Embed {
|
|
58
|
+
// eslint-disable-next-line no-useless-constructor
|
|
59
|
+
constructor(domSelector, viewConfig) {
|
|
60
|
+
super(domSelector, viewConfig);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Constructs a map of parameters to be passed on to the
|
|
64
|
+
* embedded Liveboard or visualization.
|
|
65
|
+
*/
|
|
66
|
+
getEmbedParams() {
|
|
67
|
+
const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, enableSearchAssist, } = this.viewConfig;
|
|
68
|
+
let params = {};
|
|
69
|
+
params[types_1.Param.EmbedApp] = true;
|
|
70
|
+
params[types_1.Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
71
|
+
params[types_1.Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
72
|
+
params = this.getBaseQueryParams(params);
|
|
73
|
+
if (tag) {
|
|
74
|
+
params[types_1.Param.Tag] = tag;
|
|
75
|
+
}
|
|
76
|
+
if (hideObjects && hideObjects.length) {
|
|
77
|
+
params[types_1.Param.HideObjects] = JSON.stringify(hideObjects);
|
|
78
|
+
}
|
|
79
|
+
if (liveboardV2 !== undefined) {
|
|
80
|
+
params[types_1.Param.LiveboardV2Enabled] = liveboardV2;
|
|
81
|
+
}
|
|
82
|
+
if (enableSearchAssist !== undefined) {
|
|
83
|
+
params[types_1.Param.EnableSearchAssist] = enableSearchAssist;
|
|
84
|
+
}
|
|
85
|
+
const queryParams = (0, utils_1.getQueryParamString)(params, true);
|
|
86
|
+
return queryParams;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Constructs the URL of the ThoughtSpot app page to be rendered.
|
|
90
|
+
*
|
|
91
|
+
* @param pageId The ID of the page to be embedded.
|
|
92
|
+
*/
|
|
93
|
+
getIFrameSrc() {
|
|
94
|
+
const { pageId, path } = this.viewConfig;
|
|
95
|
+
const pageRoute = this.formatPath(path) || this.getPageRoute(pageId);
|
|
96
|
+
let url = `${this.getRootIframeSrc()}/${pageRoute}`;
|
|
97
|
+
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
98
|
+
url = `${url}${tsPostHashParams}`;
|
|
99
|
+
return url;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Gets the ThoughtSpot route of the page for a particular page ID.
|
|
103
|
+
*
|
|
104
|
+
* @param pageId The identifier for a page in the ThoughtSpot app.
|
|
105
|
+
*/
|
|
106
|
+
getPageRoute(pageId) {
|
|
107
|
+
switch (pageId) {
|
|
108
|
+
case Page.Search:
|
|
109
|
+
return 'answer';
|
|
110
|
+
case Page.Answers:
|
|
111
|
+
return 'answers';
|
|
112
|
+
case Page.Liveboards:
|
|
113
|
+
return 'pinboards';
|
|
114
|
+
case Page.Pinboards:
|
|
115
|
+
return 'pinboards';
|
|
116
|
+
case Page.Data:
|
|
117
|
+
return 'data/tables';
|
|
118
|
+
case Page.SpotIQ:
|
|
119
|
+
return 'insights/results';
|
|
120
|
+
case Page.Home:
|
|
121
|
+
default:
|
|
122
|
+
return 'home';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Formats the path provided by the user.
|
|
127
|
+
*
|
|
128
|
+
* @param path The URL path.
|
|
129
|
+
* @returns The URL path that the embedded app understands.
|
|
130
|
+
*/
|
|
131
|
+
formatPath(path) {
|
|
132
|
+
if (!path) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
// remove leading slash
|
|
136
|
+
if (path.indexOf('/') === 0) {
|
|
137
|
+
return path.substring(1);
|
|
138
|
+
}
|
|
139
|
+
return path;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Navigate to particular page for app embed. eg:answers/pinboards/home
|
|
143
|
+
* This is used for embedding answers, pinboards, visualizations and full application
|
|
144
|
+
* only.
|
|
145
|
+
*
|
|
146
|
+
* @param path string | number The string, set to iframe src and navigate to new page
|
|
147
|
+
* eg: appEmbed.navigateToPage('pinboards')
|
|
148
|
+
* When used with `noReload` (default: true) this can also be a number
|
|
149
|
+
* like 1/-1 to go forward/back.
|
|
150
|
+
* @param noReload boolean Trigger the navigation without reloading the page
|
|
151
|
+
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
|
|
152
|
+
*/
|
|
153
|
+
navigateToPage(path, noReload = false) {
|
|
154
|
+
if (!this.iFrame) {
|
|
155
|
+
console.log('Please call render before invoking this method');
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (noReload) {
|
|
159
|
+
this.trigger(types_1.HostEvent.Navigate, path);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
if (typeof path !== 'string') {
|
|
163
|
+
console.warn('Path can only by a string when triggered without noReload');
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const iframeSrc = this.iFrame.src;
|
|
167
|
+
const embedPath = '#/embed';
|
|
168
|
+
const currentPath = iframeSrc.includes(embedPath) ? embedPath : '#';
|
|
169
|
+
this.iFrame.src = `${iframeSrc.split(currentPath)[0]}${currentPath}/${path.replace(/^\/?#?\//, '')}`;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Renders the embedded application pages in the ThoughtSpot app.
|
|
174
|
+
*
|
|
175
|
+
* @param renderOptions An object containing the page ID
|
|
176
|
+
* to be embedded.
|
|
177
|
+
*/
|
|
178
|
+
render() {
|
|
179
|
+
super.render();
|
|
180
|
+
const src = this.getIFrameSrc();
|
|
181
|
+
this.renderV1Embed(src);
|
|
182
|
+
return this;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.AppEmbed = AppEmbed;
|
|
186
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/app.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const app_1 = require("./app");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
const types_1 = require("../types");
|
|
7
|
+
const test_utils_1 = require("../test/test-utils");
|
|
8
|
+
const config = tslib_1.__importStar(require("../config"));
|
|
9
|
+
const defaultViewConfig = {
|
|
10
|
+
frameParams: {
|
|
11
|
+
width: 1280,
|
|
12
|
+
height: 720,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const thoughtSpotHost = 'tshost';
|
|
16
|
+
const defaultParamsPost = '';
|
|
17
|
+
beforeAll(() => {
|
|
18
|
+
(0, index_1.init)({
|
|
19
|
+
thoughtSpotHost,
|
|
20
|
+
authType: types_1.AuthType.None,
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
const cleanUp = () => {
|
|
24
|
+
document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
|
|
25
|
+
};
|
|
26
|
+
describe('App embed tests', () => {
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
cleanUp();
|
|
29
|
+
});
|
|
30
|
+
test('should render home page by default', async () => {
|
|
31
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
|
|
32
|
+
appEmbed.render();
|
|
33
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
34
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false${test_utils_1.defaultParams}${defaultParamsPost}#/home`);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
test('should hide the primary nav bar', async () => {
|
|
38
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
39
|
+
...defaultViewConfig,
|
|
40
|
+
showPrimaryNavbar: true,
|
|
41
|
+
});
|
|
42
|
+
appEmbed.render();
|
|
43
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
44
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false${test_utils_1.defaultParams}${defaultParamsPost}#/home`);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
test('should hide the help and profile buttons from nav bar', async () => {
|
|
48
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
49
|
+
...defaultViewConfig,
|
|
50
|
+
disableProfileAndHelp: true,
|
|
51
|
+
});
|
|
52
|
+
appEmbed.render();
|
|
53
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
54
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=true${test_utils_1.defaultParams}${defaultParamsPost}#/home`);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('should render the correct routes for pages', () => {
|
|
58
|
+
/* eslint-disable no-loop-func */
|
|
59
|
+
const pageRouteMap = {
|
|
60
|
+
[app_1.Page.Search]: 'answer',
|
|
61
|
+
[app_1.Page.Answers]: 'answers',
|
|
62
|
+
[app_1.Page.Pinboards]: 'pinboards',
|
|
63
|
+
[app_1.Page.Liveboards]: 'pinboards',
|
|
64
|
+
[app_1.Page.Data]: 'data/tables',
|
|
65
|
+
[app_1.Page.Home]: 'home',
|
|
66
|
+
[app_1.Page.SpotIQ]: 'insights/results',
|
|
67
|
+
};
|
|
68
|
+
const pageIds = Object.keys(pageRouteMap);
|
|
69
|
+
for (let i = 0; i < pageIds.length; i++) {
|
|
70
|
+
const pageId = pageIds[i];
|
|
71
|
+
test(`${pageId}`, async () => {
|
|
72
|
+
const route = pageRouteMap[pageId];
|
|
73
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
74
|
+
...defaultViewConfig,
|
|
75
|
+
pageId: pageId,
|
|
76
|
+
});
|
|
77
|
+
appEmbed.render();
|
|
78
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
79
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false${test_utils_1.defaultParams}${defaultParamsPost}#/${route}`);
|
|
80
|
+
cleanUp();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
test('should navigate to a path', async () => {
|
|
86
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
87
|
+
...defaultViewConfig,
|
|
88
|
+
path: 'foo/bar',
|
|
89
|
+
});
|
|
90
|
+
appEmbed.render();
|
|
91
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
92
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false${test_utils_1.defaultParams}${defaultParamsPost}#/foo/bar`);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
test('should apply runtime filters', async () => {
|
|
96
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
97
|
+
...defaultViewConfig,
|
|
98
|
+
showPrimaryNavbar: true,
|
|
99
|
+
runtimeFilters: [
|
|
100
|
+
{
|
|
101
|
+
columnName: 'sales',
|
|
102
|
+
operator: types_1.RuntimeFilterOp.EQ,
|
|
103
|
+
values: [1000],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
});
|
|
107
|
+
appEmbed.render();
|
|
108
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
109
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false&col1=sales&op1=EQ&val1=1000${test_utils_1.defaultParams}${defaultParamsPost}#/home`);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
test('should disable and hide actions', async () => {
|
|
113
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
114
|
+
...defaultViewConfig,
|
|
115
|
+
showPrimaryNavbar: true,
|
|
116
|
+
disabledActions: [types_1.Action.Save, types_1.Action.Update],
|
|
117
|
+
disabledActionReason: 'Access denied',
|
|
118
|
+
hiddenActions: [types_1.Action.Download],
|
|
119
|
+
});
|
|
120
|
+
appEmbed.render();
|
|
121
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
122
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false&${test_utils_1.defaultParamsWithoutHiddenActions}&disableAction=[%22save%22,%22update%22]&disableHint=Access%20denied&hideAction=[%22${types_1.Action.ReportError}%22,%22download%22]${defaultParamsPost}#/home`);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
test('Should add the tag to the iframe src', async () => {
|
|
126
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
127
|
+
...defaultViewConfig,
|
|
128
|
+
showPrimaryNavbar: false,
|
|
129
|
+
tag: 'Finance',
|
|
130
|
+
});
|
|
131
|
+
appEmbed.render();
|
|
132
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
133
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false${test_utils_1.defaultParams}&tag=Finance${defaultParamsPost}#/home`);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
test('Should add enableSearchAssist flagto the iframe src', async () => {
|
|
137
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
138
|
+
...defaultViewConfig,
|
|
139
|
+
enableSearchAssist: true,
|
|
140
|
+
});
|
|
141
|
+
appEmbed.render();
|
|
142
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
143
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&enableSearchAssist=true${test_utils_1.defaultParams}${defaultParamsPost}#/home`);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('Navigate to Page API', () => {
|
|
147
|
+
const path = 'pinboard/e0836cad-4fdf-42d4-bd97-567a6b2a6058';
|
|
148
|
+
beforeEach(() => {
|
|
149
|
+
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
|
|
150
|
+
});
|
|
151
|
+
test('when app is AppEmbed after navigateToPage function call, new path should be set to iframe', async () => {
|
|
152
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
153
|
+
frameParams: {
|
|
154
|
+
width: '100%',
|
|
155
|
+
height: '100%',
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
await appEmbed.render();
|
|
159
|
+
appEmbed.navigateToPage(path);
|
|
160
|
+
(0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${test_utils_1.defaultParamsForPinboardEmbed}${defaultParamsPost}#/${path}`);
|
|
161
|
+
});
|
|
162
|
+
test('navigateToPage with noReload should trigger the appropriate event', async () => {
|
|
163
|
+
(0, test_utils_1.mockMessageChannel)();
|
|
164
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
165
|
+
frameParams: {
|
|
166
|
+
width: '100%',
|
|
167
|
+
height: '100%',
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
await appEmbed.render();
|
|
171
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
172
|
+
iframe.contentWindow.postMessage = jest.fn();
|
|
173
|
+
appEmbed.navigateToPage(path, true);
|
|
174
|
+
expect(iframe.contentWindow.postMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
175
|
+
type: types_1.HostEvent.Navigate,
|
|
176
|
+
data: path,
|
|
177
|
+
}), `http://${thoughtSpotHost}`, expect.anything());
|
|
178
|
+
appEmbed.navigateToPage(-1, true);
|
|
179
|
+
expect(iframe.contentWindow.postMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
180
|
+
type: types_1.HostEvent.Navigate,
|
|
181
|
+
data: -1,
|
|
182
|
+
}), `http://${thoughtSpotHost}`, expect.anything());
|
|
183
|
+
});
|
|
184
|
+
test('Do not allow number path without noReload in navigateToPage', async () => {
|
|
185
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
186
|
+
frameParams: {
|
|
187
|
+
width: '100%',
|
|
188
|
+
height: '100%',
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
await appEmbed.render();
|
|
192
|
+
spyOn(console, 'warn');
|
|
193
|
+
appEmbed.navigateToPage(-1);
|
|
194
|
+
expect(console.warn).toHaveBeenCalledWith('Path can only by a string when triggered without noReload');
|
|
195
|
+
});
|
|
196
|
+
test('navigateToPage function use before render', async () => {
|
|
197
|
+
spyOn(console, 'log');
|
|
198
|
+
const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
|
|
199
|
+
frameParams: {
|
|
200
|
+
width: '100%',
|
|
201
|
+
height: '100%',
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
appEmbed.navigateToPage(path);
|
|
205
|
+
await appEmbed.render();
|
|
206
|
+
expect(console.log).toHaveBeenCalledWith('Please call render before invoking this method');
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
//# sourceMappingURL=app.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.spec.js","sourceRoot":"","sources":["../../../src/embed/app.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { EmbedConfig, PrefetchFeatures } from '../types';
|
|
2
|
+
import { notifyAuthFailure, notifyAuthSDKSuccess, notifyAuthSuccess, notifyLogout, AuthEventEmitter } from '../auth';
|
|
3
|
+
export declare let authPromise: Promise<boolean>;
|
|
4
|
+
/**
|
|
5
|
+
* Gets the configuration embed was initialized with.
|
|
6
|
+
*
|
|
7
|
+
* @returns {@link EmbedConfig} The configuration embed was initialized with.
|
|
8
|
+
* @version SDK: 1.19.0 | ThoughtSpot: *
|
|
9
|
+
* @group Global methods
|
|
10
|
+
*/
|
|
11
|
+
export declare const getEmbedConfig: () => EmbedConfig;
|
|
12
|
+
export declare const getAuthPromise: () => Promise<boolean>;
|
|
13
|
+
export { notifyAuthFailure, notifyAuthSDKSuccess, notifyAuthSuccess, notifyLogout, };
|
|
14
|
+
/**
|
|
15
|
+
* Perform authentication on the ThoughtSpot app as applicable.
|
|
16
|
+
*/
|
|
17
|
+
export declare const handleAuth: () => Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Prefetches static resources from the specified URL. Web browsers can then cache the
|
|
20
|
+
* prefetched resources and serve them from the user's local disk to provide faster access
|
|
21
|
+
* to your app.
|
|
22
|
+
*
|
|
23
|
+
* @param url The URL provided for prefetch
|
|
24
|
+
* @param prefetchFeatures Specify features which needs to be prefetched.
|
|
25
|
+
* @version SDK: 1.4.0 | ThoughtSpot: ts7.sep.cl, 7.2.1
|
|
26
|
+
* @group Global methods
|
|
27
|
+
*/
|
|
28
|
+
export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeatures[]) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Initializes the Visual Embed SDK globally and perform
|
|
31
|
+
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
32
|
+
* component like liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
|
|
33
|
+
* to actually embed. That is handled internally.
|
|
34
|
+
*
|
|
35
|
+
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
36
|
+
* authentication mechanism and so on.
|
|
37
|
+
* @example
|
|
38
|
+
* ```js
|
|
39
|
+
* const authStatus = init({
|
|
40
|
+
* thoughtSpotHost: 'https://my.thoughtspot.cloud',
|
|
41
|
+
* authType: AuthType.None,
|
|
42
|
+
* });
|
|
43
|
+
* authStatus.on(AuthStatus.FAILURE, (reason) => { // do something here });
|
|
44
|
+
* ```
|
|
45
|
+
* @returns {@link AuthEventEmitter} event emitter which emits events on authentication success,
|
|
46
|
+
* failure and logout. See {@link AuthStatus}
|
|
47
|
+
* @version SDK: 1.0.0 | ThoughtSpot ts7.april.cl, 7.2.1
|
|
48
|
+
* @group Authentication / Init
|
|
49
|
+
*/
|
|
50
|
+
export declare const init: (embedConfig: EmbedConfig) => AuthEventEmitter;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
export declare function disableAutoLogin(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Logs out from ThoughtSpot. This also sets the autoLogin flag to false, to
|
|
57
|
+
* prevent the SDK from automatically logging in again.
|
|
58
|
+
*
|
|
59
|
+
* You can call the `init` method again to re login, if autoLogin is set to
|
|
60
|
+
* true in this second call it will be honored.
|
|
61
|
+
*
|
|
62
|
+
* @param doNotDisableAutoLogin This flag when passed will not disable autoLogin
|
|
63
|
+
* @returns Promise which resolves when logout completes.
|
|
64
|
+
* @version SDK: 1.10.1 | ThoughtSpot: 8.2.0.cl, 8.4.1-sw
|
|
65
|
+
* @group Global methods
|
|
66
|
+
*/
|
|
67
|
+
export declare const logout: (doNotDisableAutoLogin?: boolean) => Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Renders functions in a queue, resolves to next function only after the callback next
|
|
70
|
+
* is called
|
|
71
|
+
*
|
|
72
|
+
* @param fn The function being registered
|
|
73
|
+
*/
|
|
74
|
+
export declare const renderInQueue: (fn: (next?: (val?: any) => void) => Promise<any>) => Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
export declare function reset(): void;
|
|
79
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAYA,OAAO,EAAY,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EAEZ,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAUjB,eAAO,IAAI,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACzC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,WAAqB,CAAC;AAExD,eAAO,MAAM,cAAc,QAAO,QAAQ,OAAO,CAAgB,CAAC;AAElE,OAAO,EACH,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,GAC3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,QAAQ,OAAO,CAe5C,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,qBAAqB,gBAAgB,EAAE,KAAG,IAqB9E,CAAC;AAiCF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,IAAI,gBAAiB,WAAW,KAAG,gBA2B/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,uCAAoC,QAAQ,OAAO,CAQrE,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sBAAuB,GAAG,KAAK,IAAI,KAAK,QAAQ,GAAG,CAAC,KAAG,QAAQ,GAAG,CAQ3F,CAAC;AAGF;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
|