@thoughtspot/visual-embed-sdk 1.22.0-alpha.4 → 1.22.0-alpha.6
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/sage.d.ts +73 -0
- package/cjs/src/embed/sage.d.ts.map +1 -0
- package/cjs/src/embed/sage.js +81 -0
- package/cjs/src/embed/sage.js.map +1 -0
- package/cjs/src/embed/sage.spec.d.ts +2 -0
- package/cjs/src/embed/sage.spec.d.ts.map +1 -0
- package/cjs/src/embed/sage.spec.js +34 -0
- package/cjs/src/embed/sage.spec.js.map +1 -0
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.d.ts +4 -0
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +3 -1
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/test/test-utils.d.ts +1 -0
- package/cjs/src/test/test-utils.d.ts.map +1 -1
- package/cjs/src/test/test-utils.js +8 -1
- package/cjs/src/test/test-utils.js.map +1 -1
- package/cjs/src/types.d.ts +12 -1
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +5 -0
- package/cjs/src/types.js.map +1 -1
- package/dist/src/embed/sage.d.ts +73 -0
- package/dist/src/embed/sage.d.ts.map +1 -0
- package/dist/src/embed/sage.spec.d.ts +2 -0
- package/dist/src/embed/sage.spec.d.ts.map +1 -0
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +4 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +1 -0
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/types.d.ts +12 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +83 -2
- package/dist/tsembed-react.js +83 -1
- package/dist/tsembed.es.js +82 -2
- package/dist/tsembed.js +82 -1
- package/dist/visual-embed-sdk-react-full.d.ts +80 -2
- package/dist/visual-embed-sdk-react.d.ts +80 -2
- package/dist/visual-embed-sdk.d.ts +77 -2
- package/lib/package.json +1 -1
- package/lib/src/embed/sage.d.ts +73 -0
- package/lib/src/embed/sage.d.ts.map +1 -0
- package/lib/src/embed/sage.js +77 -0
- package/lib/src/embed/sage.js.map +1 -0
- package/lib/src/embed/sage.spec.d.ts +2 -0
- package/lib/src/embed/sage.spec.d.ts.map +1 -0
- package/lib/src/embed/sage.spec.js +32 -0
- package/lib/src/embed/sage.spec.js.map +1 -0
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts +4 -0
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +2 -0
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +1 -0
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +6 -0
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +12 -1
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +5 -0
- package/lib/src/types.js.map +1 -1
- package/package.json +1 -1
- package/src/embed/sage.spec.ts +45 -0
- package/src/embed/sage.ts +127 -0
- package/src/errors.ts +1 -0
- package/src/index.ts +2 -0
- package/src/react/index.tsx +9 -0
- package/src/test/test-utils.ts +7 -0
- package/src/types.ts +13 -2
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2023
|
|
3
|
+
*
|
|
4
|
+
* Embed ThoughtSpot Sage
|
|
5
|
+
*
|
|
6
|
+
* @summary TS Sage embed
|
|
7
|
+
* @author Mourya Balabhadra <mourya.balabhadra@thoughtspot.com>
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
Action, DOMSelector, Param, ViewConfig,
|
|
12
|
+
} from '../types';
|
|
13
|
+
import { getQueryParamString } from '../utils';
|
|
14
|
+
import { V1Embed } from './ts-embed';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The configuration attributes for the embedded search view.
|
|
18
|
+
*
|
|
19
|
+
* @group Embed components
|
|
20
|
+
*/
|
|
21
|
+
export interface SageViewConfig extends ViewConfig {
|
|
22
|
+
/**
|
|
23
|
+
* If set to false, eureka results are hidden
|
|
24
|
+
*/
|
|
25
|
+
hideEurekaResults?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* primary flag to enable eureka(/sage) page embedding.
|
|
28
|
+
*/
|
|
29
|
+
isSageEmbed?: boolean,
|
|
30
|
+
/**
|
|
31
|
+
* flag to disable changing worksheet. default false.
|
|
32
|
+
*/
|
|
33
|
+
disableWorksheetChange?: boolean,
|
|
34
|
+
/**
|
|
35
|
+
* flag to hide worksheet selector. default false.
|
|
36
|
+
*/
|
|
37
|
+
hideWorksheetSelector?: boolean,
|
|
38
|
+
/**
|
|
39
|
+
* If set to true, the eureka search suggestions are not shown
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
42
|
+
hideEurekaSuggestions?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export const HiddenActionItemByDefaultForSageEmbed = [
|
|
45
|
+
Action.Save,
|
|
46
|
+
Action.Pin,
|
|
47
|
+
Action.EditACopy,
|
|
48
|
+
Action.SaveAsView,
|
|
49
|
+
Action.UpdateTML,
|
|
50
|
+
Action.EditTML,
|
|
51
|
+
Action.AnswerDelete,
|
|
52
|
+
Action.Share,
|
|
53
|
+
];
|
|
54
|
+
/**
|
|
55
|
+
* Embed ThoughtSpot search
|
|
56
|
+
*
|
|
57
|
+
* @group Embed components
|
|
58
|
+
*/
|
|
59
|
+
export class SageEmbed extends V1Embed {
|
|
60
|
+
/**
|
|
61
|
+
* The view configuration for the embedded ThoughtSpot sage.
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
protected viewConfig: SageViewConfig;
|
|
65
|
+
|
|
66
|
+
// eslint-disable-next-line no-useless-constructor
|
|
67
|
+
constructor(domSelector: DOMSelector, viewConfig: SageViewConfig) {
|
|
68
|
+
super(domSelector, viewConfig);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Constructs a map of parameters to be passed on to the
|
|
73
|
+
* embedded Eureka or Sage search page.
|
|
74
|
+
*
|
|
75
|
+
* @returns {string} query string
|
|
76
|
+
*/
|
|
77
|
+
protected getEmbedParams(): string {
|
|
78
|
+
const {
|
|
79
|
+
hideEurekaResults,
|
|
80
|
+
isSageEmbed,
|
|
81
|
+
disableWorksheetChange,
|
|
82
|
+
hideWorksheetSelector,
|
|
83
|
+
hideEurekaSuggestions,
|
|
84
|
+
} = this.viewConfig;
|
|
85
|
+
|
|
86
|
+
const params = {};
|
|
87
|
+
params[Param.EmbedApp] = true;
|
|
88
|
+
params[Param.HideEurekaResults] = !!hideEurekaResults;
|
|
89
|
+
params[Param.IsSageEmbed] = !!isSageEmbed;
|
|
90
|
+
params[Param.DisableWorksheetChange] = !!disableWorksheetChange;
|
|
91
|
+
params[Param.HideWorksheetSelector] = !!hideWorksheetSelector;
|
|
92
|
+
params[Param.HideEurekaSuggestions] = !!hideEurekaSuggestions;
|
|
93
|
+
params[Param.HideActions] = [
|
|
94
|
+
...(params[Param.HideActions] ?? []),
|
|
95
|
+
...HiddenActionItemByDefaultForSageEmbed,
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
return getQueryParamString(params, true);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Construct the URL of the embedded ThoughtSpot sage to be
|
|
103
|
+
* loaded in the iframe
|
|
104
|
+
*
|
|
105
|
+
* @returns {string} iframe url
|
|
106
|
+
*/
|
|
107
|
+
private getIFrameSrc() {
|
|
108
|
+
const path = 'eureka';
|
|
109
|
+
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
110
|
+
|
|
111
|
+
return `${this.getRootIframeSrc()}/embed/${path}${tsPostHashParams}`;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Render the embedded ThoughtSpot Sage
|
|
116
|
+
*
|
|
117
|
+
* @returns {SageEmbed} Eureka/Sage embed
|
|
118
|
+
*/
|
|
119
|
+
public render(): SageEmbed {
|
|
120
|
+
super.render();
|
|
121
|
+
|
|
122
|
+
const src = this.getIFrameSrc();
|
|
123
|
+
this.renderV1Embed(src);
|
|
124
|
+
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
}
|
package/src/errors.ts
CHANGED
|
@@ -3,4 +3,5 @@ export const ERROR_MESSAGE = {
|
|
|
3
3
|
LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
|
|
4
4
|
TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
|
|
5
5
|
SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
|
|
6
|
+
SAGE_EMBED_BETA_WARNING_MESSAGE: 'Sage Embed is in Beta in this release.',
|
|
6
7
|
};
|
package/src/index.ts
CHANGED
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
ContextMenuTriggerOptions,
|
|
39
39
|
} from './types';
|
|
40
40
|
import { CustomCssVariables } from './css-variables';
|
|
41
|
+
import { SageEmbed } from './embed/sage';
|
|
41
42
|
|
|
42
43
|
export {
|
|
43
44
|
init,
|
|
@@ -51,6 +52,7 @@ export {
|
|
|
51
52
|
SearchBarEmbed,
|
|
52
53
|
PinboardEmbed,
|
|
53
54
|
LiveboardEmbed,
|
|
55
|
+
SageEmbed,
|
|
54
56
|
AppEmbed,
|
|
55
57
|
AuthFailureType,
|
|
56
58
|
AuthStatus,
|
package/src/react/index.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
|
3
3
|
import { deepMerge } from '../utils';
|
|
4
4
|
import { SearchBarEmbed as _SearchBarEmbed, SearchBarViewConfig } from '../embed/search-bar';
|
|
5
|
+
import { SageEmbed as _SageEmbed, SageViewConfig } from '../embed/sage';
|
|
5
6
|
import { SearchEmbed as _SearchEmbed, SearchViewConfig } from '../embed/search';
|
|
6
7
|
import { AppEmbed as _AppEmbed, AppViewConfig } from '../embed/app';
|
|
7
8
|
import { LiveboardEmbed as _LiveboardEmbed, LiveboardViewConfig } from '../embed/liveboard';
|
|
@@ -150,6 +151,14 @@ export const SearchBarEmbed = componentFactory<
|
|
|
150
151
|
SearchBarViewConfig
|
|
151
152
|
>(_SearchBarEmbed);
|
|
152
153
|
|
|
154
|
+
interface SageEmbedProps extends EmbedProps, SageViewConfig {}
|
|
155
|
+
|
|
156
|
+
export const SageEmbed = componentFactory<
|
|
157
|
+
typeof _SageEmbed,
|
|
158
|
+
SageEmbedProps,
|
|
159
|
+
SageViewConfig
|
|
160
|
+
>(_SageEmbed);
|
|
161
|
+
|
|
153
162
|
/**
|
|
154
163
|
* Get a reference to the embed component to trigger events on the component.
|
|
155
164
|
*
|
package/src/test/test-utils.ts
CHANGED
|
@@ -109,3 +109,10 @@ export const expectUrlMatchesWithParams = (source: string, target: string) => {
|
|
|
109
109
|
const targetParamsObj = Object.fromEntries(targetUrl.searchParams);
|
|
110
110
|
expect(sourceParamsObj).toMatchObject(targetParamsObj);
|
|
111
111
|
};
|
|
112
|
+
|
|
113
|
+
export const expectUrlMatch = (source: string, target: string) => {
|
|
114
|
+
expectUrlMatchesWithParams(source, target);
|
|
115
|
+
const sourceUrl = new URL(source);
|
|
116
|
+
const targetUrl = new URL(target);
|
|
117
|
+
expect(sourceUrl.hash).toBe(targetUrl.hash);
|
|
118
|
+
};
|
package/src/types.ts
CHANGED
|
@@ -195,16 +195,17 @@ export interface customCssInterface {
|
|
|
195
195
|
/**
|
|
196
196
|
* Can be used to define a custom font face
|
|
197
197
|
* like:
|
|
198
|
+
*
|
|
198
199
|
* @example
|
|
199
200
|
* ```js
|
|
200
201
|
* rules_UNSTABLE?: {
|
|
201
202
|
* "@font-face": {
|
|
202
203
|
* "font-family": "custom-font",
|
|
203
|
-
* "src": url("/path/")
|
|
204
|
+
* "src": url("/path/")
|
|
204
205
|
* };
|
|
205
206
|
* };
|
|
206
207
|
* ```
|
|
207
|
-
*
|
|
208
|
+
*
|
|
208
209
|
* Also, custom css rules outside of variables.
|
|
209
210
|
* @example
|
|
210
211
|
* ```js
|
|
@@ -447,6 +448,11 @@ export interface EmbedConfig {
|
|
|
447
448
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw*
|
|
448
449
|
*/
|
|
449
450
|
suppressSearchEmbedBetaWarning?: boolean;
|
|
451
|
+
/**
|
|
452
|
+
* Hide beta alert warning message for SageEmbed.
|
|
453
|
+
*
|
|
454
|
+
*/
|
|
455
|
+
suppressSageEmbedBetaWarning?: boolean;
|
|
450
456
|
/**
|
|
451
457
|
* Custom style params for embed Config.
|
|
452
458
|
*
|
|
@@ -1882,6 +1888,11 @@ export enum Param {
|
|
|
1882
1888
|
HideProfleAndHelp = 'profileAndHelpInNavBarHidden',
|
|
1883
1889
|
HideApplicationSwitcher= 'applicationSwitcherHidden',
|
|
1884
1890
|
HideOrgSwitcher= 'orgSwitcherHidden',
|
|
1891
|
+
IsSageEmbed = 'isSageEmbed',
|
|
1892
|
+
HideWorksheetSelector = 'hideWorksheetSelector',
|
|
1893
|
+
DisableWorksheetChange = 'disableWorksheetChange',
|
|
1894
|
+
HideEurekaResults = 'hideEurekaResults',
|
|
1895
|
+
HideEurekaSuggestions = 'hideEurekaSuggestions',
|
|
1885
1896
|
}
|
|
1886
1897
|
|
|
1887
1898
|
/**
|