@thoughtspot/visual-embed-sdk 1.25.0-alpha.2 → 1.25.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 +1 -1
- package/cjs/src/embed/app.d.ts +35 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +5 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +19 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +35 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +11 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +11 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +45 -7
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +9 -3
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +85 -6
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +1 -1
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +1 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +1 -10
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +3 -3
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/types.d.ts +18 -23
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +15 -0
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils.js +2 -2
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +10 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/src/embed/app.d.ts +35 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +35 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +45 -7
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +1 -1
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +1 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/types.d.ts +18 -23
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +44 -18
- package/dist/tsembed-react.js +44 -18
- package/dist/tsembed.es.js +44 -18
- package/dist/tsembed.js +44 -18
- package/dist/visual-embed-sdk-react-full.d.ts +135 -34
- package/dist/visual-embed-sdk-react.d.ts +135 -34
- package/dist/visual-embed-sdk.d.ts +135 -34
- package/lib/package.json +1 -1
- package/lib/src/embed/app.d.ts +35 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +5 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +19 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +35 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +11 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +11 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +45 -7
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +9 -3
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/sage.spec.js +85 -6
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +1 -1
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +1 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +1 -10
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +3 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/types.d.ts +18 -23
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +15 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils.js +2 -2
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +10 -0
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +135 -34
- package/package.json +1 -1
- package/src/embed/app.spec.ts +29 -0
- package/src/embed/app.ts +43 -1
- package/src/embed/liveboard.spec.ts +16 -0
- package/src/embed/liveboard.ts +51 -1
- package/src/embed/sage.spec.ts +119 -6
- package/src/embed/sage.ts +63 -13
- package/src/embed/search-bar.tsx +11 -1
- package/src/embed/search.ts +5 -1
- package/src/embed/ts-embed.spec.ts +3 -3
- package/src/embed/ts-embed.ts +0 -12
- package/src/types.ts +16 -21
- package/src/utils.spec.ts +13 -0
- package/src/utils.ts +2 -2
package/src/embed/sage.spec.ts
CHANGED
|
@@ -10,10 +10,13 @@ import {
|
|
|
10
10
|
} from '../test/test-utils';
|
|
11
11
|
|
|
12
12
|
const defaultConfig: SageViewConfig = {
|
|
13
|
-
showObjectResults: true,
|
|
14
13
|
disableWorksheetChange: false,
|
|
15
|
-
hideWorksheetSelector:
|
|
16
|
-
|
|
14
|
+
hideWorksheetSelector: false,
|
|
15
|
+
hideSearchBarTitle: false,
|
|
16
|
+
hideSageAnswerHeader: false,
|
|
17
|
+
hideAutocompleteSuggestions: false,
|
|
18
|
+
hideSampleQuestions: false,
|
|
19
|
+
isProductTour: false,
|
|
17
20
|
};
|
|
18
21
|
|
|
19
22
|
const thoughtSpotHost = 'tshost';
|
|
@@ -37,10 +40,119 @@ describe('Sage embed tests', () => {
|
|
|
37
40
|
await executeAfterWait(() => {
|
|
38
41
|
expectUrlMatch(
|
|
39
42
|
getIFrameSrc(),
|
|
40
|
-
`http://${thoughtSpotHost}/?embedApp=true&
|
|
43
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
41
44
|
);
|
|
42
45
|
});
|
|
43
46
|
});
|
|
47
|
+
|
|
48
|
+
test('should render sage with product tour flag set', async () => {
|
|
49
|
+
const sageEmbed = new SageEmbed(getRootEl(), { ...defaultConfig, isProductTour: true });
|
|
50
|
+
sageEmbed.render();
|
|
51
|
+
await executeAfterWait(() => {
|
|
52
|
+
expectUrlMatch(
|
|
53
|
+
getIFrameSrc(),
|
|
54
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=true&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('should render sage with disable worksheet change flag', async () => {
|
|
60
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
61
|
+
...defaultConfig,
|
|
62
|
+
disableWorksheetChange: true,
|
|
63
|
+
});
|
|
64
|
+
sageEmbed.render();
|
|
65
|
+
await executeAfterWait(() => {
|
|
66
|
+
expectUrlMatch(
|
|
67
|
+
getIFrameSrc(),
|
|
68
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=true&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test('should render sage with hide worksheet selector flag', async () => {
|
|
74
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
75
|
+
...defaultConfig,
|
|
76
|
+
hideWorksheetSelector: true,
|
|
77
|
+
});
|
|
78
|
+
sageEmbed.render();
|
|
79
|
+
await executeAfterWait(() => {
|
|
80
|
+
expectUrlMatch(
|
|
81
|
+
getIFrameSrc(),
|
|
82
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
83
|
+
);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test('should render sage with hideSearchBarTitle flag', async () => {
|
|
88
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
89
|
+
...defaultConfig,
|
|
90
|
+
hideSearchBarTitle: true,
|
|
91
|
+
});
|
|
92
|
+
sageEmbed.render();
|
|
93
|
+
await executeAfterWait(() => {
|
|
94
|
+
expectUrlMatch(
|
|
95
|
+
getIFrameSrc(),
|
|
96
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=true&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
97
|
+
);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
test('should render sage with hide Sage Answer Header flag', async () => {
|
|
102
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
103
|
+
...defaultConfig,
|
|
104
|
+
hideSageAnswerHeader: true,
|
|
105
|
+
});
|
|
106
|
+
sageEmbed.render();
|
|
107
|
+
await executeAfterWait(() => {
|
|
108
|
+
expectUrlMatch(
|
|
109
|
+
getIFrameSrc(),
|
|
110
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=true&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
111
|
+
);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
test('should render sage with hide Autocomplete suggestions flag', async () => {
|
|
116
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
117
|
+
...defaultConfig,
|
|
118
|
+
hideAutocompleteSuggestions: true,
|
|
119
|
+
});
|
|
120
|
+
sageEmbed.render();
|
|
121
|
+
await executeAfterWait(() => {
|
|
122
|
+
expectUrlMatch(
|
|
123
|
+
getIFrameSrc(),
|
|
124
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=true&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
125
|
+
);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
test('should render sage with deprecated showObjectSuggestions flag', async () => {
|
|
130
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
131
|
+
showObjectSuggestions: true,
|
|
132
|
+
});
|
|
133
|
+
sageEmbed.render();
|
|
134
|
+
await executeAfterWait(() => {
|
|
135
|
+
expectUrlMatch(
|
|
136
|
+
getIFrameSrc(),
|
|
137
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
|
|
138
|
+
);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
test('embed url include pre-seed dataSource without populating searchOptions', async () => {
|
|
143
|
+
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
144
|
+
...defaultConfig,
|
|
145
|
+
dataSource: 'worksheet-id',
|
|
146
|
+
});
|
|
147
|
+
sageEmbed.render();
|
|
148
|
+
await executeAfterWait(() => {
|
|
149
|
+
expectUrlMatch(
|
|
150
|
+
getIFrameSrc(),
|
|
151
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?worksheet=worksheet-id`,
|
|
152
|
+
);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
|
|
44
156
|
test('embed url include pre-seed dataSource and query', async () => {
|
|
45
157
|
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
46
158
|
...defaultConfig,
|
|
@@ -53,10 +165,11 @@ describe('Sage embed tests', () => {
|
|
|
53
165
|
await executeAfterWait(() => {
|
|
54
166
|
expectUrlMatch(
|
|
55
167
|
getIFrameSrc(),
|
|
56
|
-
`http://${thoughtSpotHost}/?embedApp=true&
|
|
168
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?worksheet=worksheet-id&query=test-query`,
|
|
57
169
|
);
|
|
58
170
|
});
|
|
59
171
|
});
|
|
172
|
+
|
|
60
173
|
test('embed url include pre-seed execute flag with query', async () => {
|
|
61
174
|
const sageEmbed = new SageEmbed(getRootEl(), {
|
|
62
175
|
...defaultConfig,
|
|
@@ -69,7 +182,7 @@ describe('Sage embed tests', () => {
|
|
|
69
182
|
await executeAfterWait(() => {
|
|
70
183
|
expectUrlMatch(
|
|
71
184
|
getIFrameSrc(),
|
|
72
|
-
`http://${thoughtSpotHost}/?embedApp=true&
|
|
185
|
+
`http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?query=test-query&executeSearch=true`,
|
|
73
186
|
);
|
|
74
187
|
});
|
|
75
188
|
});
|
package/src/embed/sage.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { V1Embed } from './ts-embed';
|
|
|
18
18
|
*/
|
|
19
19
|
export interface SearchOptions {
|
|
20
20
|
/**
|
|
21
|
-
* The
|
|
21
|
+
* The query string to pre-fill in natual language search bar
|
|
22
22
|
*/
|
|
23
23
|
searchQuery: string;
|
|
24
24
|
/**
|
|
@@ -37,34 +37,74 @@ export interface SearchOptions {
|
|
|
37
37
|
* @version: SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
|
|
38
38
|
* @group Embed components
|
|
39
39
|
*/
|
|
40
|
-
export interface SageViewConfig
|
|
40
|
+
export interface SageViewConfig
|
|
41
|
+
extends Omit<
|
|
42
|
+
ViewConfig,
|
|
43
|
+
'hiddenHomepageModules' | 'hiddenHomeLeftNavItems' | 'hiddenTabs' | 'visibleTabs' | 'reorderedHomepageModules'
|
|
44
|
+
> {
|
|
41
45
|
/**
|
|
42
46
|
* If set to true, a list of liveboard and answers related
|
|
43
47
|
* to the natural language search will be shown below the
|
|
44
48
|
* AI generated answer.
|
|
49
|
+
*
|
|
50
|
+
* @deprecated Currently liveboard and answers related
|
|
51
|
+
* to the natural language search will not be shown for sage
|
|
52
|
+
* embed
|
|
45
53
|
*/
|
|
46
54
|
showObjectResults?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* flag used by the TS product tour page to show the blue search bar
|
|
57
|
+
* even after the search is completed. This is different from TSE Sage Embed
|
|
58
|
+
* experience where it mimics closer to the non-embed case.
|
|
59
|
+
* The Sample questions container is collapsed when this value is set after
|
|
60
|
+
* does a search.
|
|
61
|
+
*
|
|
62
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl
|
|
63
|
+
* @hidden
|
|
64
|
+
*/
|
|
65
|
+
isProductTour?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* flag to hide search bar title. default false.
|
|
68
|
+
*
|
|
69
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl
|
|
70
|
+
*/
|
|
71
|
+
hideSearchBarTitle?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* flag to disable Sage Answer header(`AI Answer` title section on top of the Sage
|
|
74
|
+
* answer). default false.
|
|
75
|
+
*
|
|
76
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
|
|
77
|
+
*/
|
|
78
|
+
hideSageAnswerHeader?: boolean;
|
|
47
79
|
/**
|
|
48
80
|
* flag to disable changing worksheet. default false.
|
|
81
|
+
*
|
|
82
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
|
|
49
83
|
*/
|
|
50
|
-
disableWorksheetChange?: boolean
|
|
84
|
+
disableWorksheetChange?: boolean;
|
|
51
85
|
/**
|
|
52
86
|
* flag to hide worksheet selector. default false.
|
|
53
87
|
*/
|
|
54
|
-
hideWorksheetSelector?: boolean
|
|
88
|
+
hideWorksheetSelector?: boolean;
|
|
55
89
|
/**
|
|
56
|
-
* If set to true, the search suggestions will
|
|
57
|
-
*
|
|
90
|
+
* If set to true, the search bar auto complete search suggestions will not be shown.
|
|
91
|
+
* default false
|
|
58
92
|
*
|
|
93
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
|
|
59
94
|
*/
|
|
60
|
-
|
|
95
|
+
hideAutocompleteSuggestions?: boolean;
|
|
61
96
|
/**
|
|
62
|
-
*
|
|
97
|
+
* If set to false, the auto complete search suggestions not be shown
|
|
98
|
+
*
|
|
99
|
+
* @deprecated currently, object suggestions will not be shown for sage embed
|
|
100
|
+
* earlier this flag was used to show Auto complete suggestions
|
|
63
101
|
*/
|
|
64
|
-
|
|
102
|
+
showObjectSuggestions?: boolean;
|
|
65
103
|
/**
|
|
66
104
|
* If set to true, sample questions would be hidden to user.
|
|
67
105
|
* These sample questions are autogenerated based on selected datasource.
|
|
106
|
+
*
|
|
107
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.10.0.cl
|
|
68
108
|
*/
|
|
69
109
|
hideSampleQuestions?: boolean;
|
|
70
110
|
/**
|
|
@@ -73,9 +113,10 @@ export interface SageViewConfig extends ViewConfig {
|
|
|
73
113
|
dataSource?: string;
|
|
74
114
|
/**
|
|
75
115
|
* Configuration for search options
|
|
116
|
+
*
|
|
117
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl
|
|
76
118
|
*/
|
|
77
119
|
searchOptions?: SearchOptions;
|
|
78
|
-
|
|
79
120
|
}
|
|
80
121
|
export const HiddenActionItemByDefaultForSageEmbed = [
|
|
81
122
|
Action.Save,
|
|
@@ -115,21 +156,30 @@ export class SageEmbed extends V1Embed {
|
|
|
115
156
|
*/
|
|
116
157
|
protected getEmbedParams(): string {
|
|
117
158
|
const {
|
|
118
|
-
showObjectResults,
|
|
119
159
|
disableWorksheetChange,
|
|
120
160
|
hideWorksheetSelector,
|
|
121
161
|
showObjectSuggestions,
|
|
122
162
|
hideSampleQuestions,
|
|
163
|
+
isProductTour,
|
|
164
|
+
hideSearchBarTitle,
|
|
165
|
+
hideSageAnswerHeader,
|
|
166
|
+
hideAutocompleteSuggestions,
|
|
123
167
|
} = this.viewConfig;
|
|
124
168
|
|
|
125
169
|
const params = this.getBaseQueryParams();
|
|
126
170
|
params[Param.EmbedApp] = true;
|
|
127
|
-
params[Param.HideEurekaResults] = !showObjectResults;
|
|
128
171
|
params[Param.IsSageEmbed] = true;
|
|
129
172
|
params[Param.DisableWorksheetChange] = !!disableWorksheetChange;
|
|
130
173
|
params[Param.HideWorksheetSelector] = !!hideWorksheetSelector;
|
|
131
|
-
params[Param.HideEurekaSuggestions] =
|
|
174
|
+
params[Param.HideEurekaSuggestions] = !!hideAutocompleteSuggestions;
|
|
175
|
+
if (showObjectSuggestions) {
|
|
176
|
+
params[Param.HideEurekaSuggestions] = !showObjectSuggestions;
|
|
177
|
+
// support backwards compatibility
|
|
178
|
+
}
|
|
132
179
|
params[Param.HideSampleQuestions] = !!hideSampleQuestions;
|
|
180
|
+
params[Param.IsProductTour] = !!isProductTour;
|
|
181
|
+
params[Param.HideSearchBarTitle] = !!hideSearchBarTitle;
|
|
182
|
+
params[Param.HideSageAnswerHeader] = !!hideSageAnswerHeader;
|
|
133
183
|
params[Param.HideActions] = [
|
|
134
184
|
...(params[Param.HideActions] ?? []),
|
|
135
185
|
...HiddenActionItemByDefaultForSageEmbed,
|
package/src/embed/search-bar.tsx
CHANGED
|
@@ -7,7 +7,17 @@ import { SearchOptions } from './search';
|
|
|
7
7
|
* @group Embed components
|
|
8
8
|
*/
|
|
9
9
|
export interface SearchBarViewConfig
|
|
10
|
-
extends Omit<
|
|
10
|
+
extends Omit<
|
|
11
|
+
ViewConfig,
|
|
12
|
+
| 'runtimeFilters'
|
|
13
|
+
| 'showAlerts'
|
|
14
|
+
| 'dataPanelV2'
|
|
15
|
+
| 'hiddenHomepageModules'
|
|
16
|
+
| 'hiddenHomeLeftNavItems'
|
|
17
|
+
| 'hiddenTabs'
|
|
18
|
+
| 'visibleTabs'
|
|
19
|
+
| 'reorderedHomepageModules'
|
|
20
|
+
> {
|
|
11
21
|
/**
|
|
12
22
|
* The array of data source GUIDs to set on load.
|
|
13
23
|
* Only a single dataSource supported currently.
|
package/src/embed/search.ts
CHANGED
|
@@ -50,7 +50,11 @@ export interface SearchOptions {
|
|
|
50
50
|
*
|
|
51
51
|
* @group Embed components
|
|
52
52
|
*/
|
|
53
|
-
export interface SearchViewConfig
|
|
53
|
+
export interface SearchViewConfig
|
|
54
|
+
extends Omit<
|
|
55
|
+
ViewConfig,
|
|
56
|
+
'hiddenHomepageModules' | 'hiddenHomeLeftNavItems' | 'hiddenTabs' | 'visibleTabs' | 'reorderedHomepageModules'
|
|
57
|
+
> {
|
|
54
58
|
/**
|
|
55
59
|
* If set to true, the data sources panel is collapsed on load,
|
|
56
60
|
* but can be expanded manually.
|
|
@@ -163,7 +163,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
163
163
|
HomepageModule.Learning,
|
|
164
164
|
];
|
|
165
165
|
|
|
166
|
-
const searchEmbed = new
|
|
166
|
+
const searchEmbed = new AppEmbed(getRootEl(), {
|
|
167
167
|
...defaultViewConfig,
|
|
168
168
|
hiddenHomepageModules: mockedHiddenHomepageModules,
|
|
169
169
|
});
|
|
@@ -200,7 +200,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
200
200
|
HomepageModule.Watchlist,
|
|
201
201
|
];
|
|
202
202
|
|
|
203
|
-
const searchEmbed = new
|
|
203
|
+
const searchEmbed = new AppEmbed(getRootEl(), {
|
|
204
204
|
...defaultViewConfig,
|
|
205
205
|
reorderedHomepageModules: mockedReorderedHomepageModules,
|
|
206
206
|
});
|
|
@@ -317,7 +317,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
317
317
|
HomeLeftNavItem.Documentation,
|
|
318
318
|
];
|
|
319
319
|
|
|
320
|
-
const searchEmbed = new
|
|
320
|
+
const searchEmbed = new AppEmbed(getRootEl(), {
|
|
321
321
|
...defaultViewConfig,
|
|
322
322
|
hiddenHomeLeftNavItems: mockedHiddenHomeLeftNavItems,
|
|
323
323
|
});
|
package/src/embed/ts-embed.ts
CHANGED
|
@@ -384,9 +384,6 @@ export class TsEmbed {
|
|
|
384
384
|
contextMenuTrigger,
|
|
385
385
|
linkOverride,
|
|
386
386
|
insertInToSlide,
|
|
387
|
-
hideLiveboardHeader,
|
|
388
|
-
showLiveboardDescription,
|
|
389
|
-
showLiveboardTitle,
|
|
390
387
|
} = this.viewConfig;
|
|
391
388
|
|
|
392
389
|
if (Array.isArray(visibleActions) && Array.isArray(hiddenActions)) {
|
|
@@ -454,15 +451,6 @@ export class TsEmbed {
|
|
|
454
451
|
if (insertInToSlide) {
|
|
455
452
|
queryParams[Param.ShowInsertToSlide] = insertInToSlide;
|
|
456
453
|
}
|
|
457
|
-
if (hideLiveboardHeader) {
|
|
458
|
-
queryParams[Param.HideLiveboardHeader] = hideLiveboardHeader;
|
|
459
|
-
}
|
|
460
|
-
if (showLiveboardDescription) {
|
|
461
|
-
queryParams[Param.ShowLiveboardDescription] = showLiveboardDescription;
|
|
462
|
-
}
|
|
463
|
-
if (showLiveboardTitle) {
|
|
464
|
-
queryParams[Param.ShowLiveboardTitle] = showLiveboardTitle;
|
|
465
|
-
}
|
|
466
454
|
|
|
467
455
|
return queryParams;
|
|
468
456
|
}
|
package/src/types.ts
CHANGED
|
@@ -712,27 +712,6 @@ export interface ViewConfig {
|
|
|
712
712
|
* @hidden
|
|
713
713
|
*/
|
|
714
714
|
excludeRuntimeFiltersfromURL?: boolean;
|
|
715
|
-
/**
|
|
716
|
-
* Boolean to hide liveboard header
|
|
717
|
-
*
|
|
718
|
-
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
719
|
-
* @default false
|
|
720
|
-
*/
|
|
721
|
-
hideLiveboardHeader?: boolean;
|
|
722
|
-
/**
|
|
723
|
-
* Boolean to show liveboard title
|
|
724
|
-
*
|
|
725
|
-
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
726
|
-
* @default false
|
|
727
|
-
*/
|
|
728
|
-
showLiveboardTitle?: boolean;
|
|
729
|
-
/**
|
|
730
|
-
* Boolean to show liveboard description
|
|
731
|
-
*
|
|
732
|
-
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
733
|
-
* @default false
|
|
734
|
-
*/
|
|
735
|
-
showLiveboardDescription?: boolean;
|
|
736
715
|
/**
|
|
737
716
|
* The list of tab IDs to hide from the embedded.
|
|
738
717
|
* This Tabs will be hidden from their respective LBs.
|
|
@@ -760,6 +739,7 @@ export interface ViewConfig {
|
|
|
760
739
|
/**
|
|
761
740
|
* reordering the home page modules
|
|
762
741
|
* eg: reorderedHomepageModules = [HomepageModule.MyLibrary, HomepageModule.Watchlist]
|
|
742
|
+
*
|
|
763
743
|
* @version SDK: 1.28.0 | Thoughtspot: 9.9.0.cl
|
|
764
744
|
*/
|
|
765
745
|
reorderedHomepageModules?: HomepageModule[];
|
|
@@ -2275,6 +2255,7 @@ export enum Param {
|
|
|
2275
2255
|
DisableWorksheetChange = 'disableWorksheetChange',
|
|
2276
2256
|
HideEurekaResults = 'hideEurekaResults',
|
|
2277
2257
|
HideEurekaSuggestions = 'hideEurekaSuggestions',
|
|
2258
|
+
HideAutocompleteSuggestions = 'hideAutocompleteSuggestions',
|
|
2278
2259
|
HideLiveboardHeader = 'hideLiveboardHeader',
|
|
2279
2260
|
ShowLiveboardDescription = 'showLiveboardDescription',
|
|
2280
2261
|
ShowLiveboardTitle = 'showLiveboardTitle',
|
|
@@ -2287,6 +2268,10 @@ export enum Param {
|
|
|
2287
2268
|
HideHomepageLeftNav = 'hideHomepageLeftNav',
|
|
2288
2269
|
ModularHomeExperienceEnabled = 'modularHomeExperience',
|
|
2289
2270
|
PendoTrackingKey = 'additionalPendoKey',
|
|
2271
|
+
LiveboardHeaderSticky = 'isLiveboardHeaderSticky',
|
|
2272
|
+
IsProductTour = 'isProductTour',
|
|
2273
|
+
HideSearchBarTitle = 'hideSearchBarTitle',
|
|
2274
|
+
HideSageAnswerHeader = 'hideSageAnswerHeader',
|
|
2290
2275
|
}
|
|
2291
2276
|
|
|
2292
2277
|
/**
|
|
@@ -3126,6 +3111,16 @@ export enum Action {
|
|
|
3126
3111
|
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
3127
3112
|
*/
|
|
3128
3113
|
PersonalisedViewsDropdown = 'personalisedViewsDropdown',
|
|
3114
|
+
/**
|
|
3115
|
+
* Action ID for Liveboard Users ( Recently Visited / social proof )
|
|
3116
|
+
*
|
|
3117
|
+
* @example
|
|
3118
|
+
* ```js
|
|
3119
|
+
* disabledActions: [Action.LiveboardUsers]
|
|
3120
|
+
* ```
|
|
3121
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
3122
|
+
*/
|
|
3123
|
+
LiveboardUsers = 'liveboardUsers',
|
|
3129
3124
|
}
|
|
3130
3125
|
|
|
3131
3126
|
export interface AnswerServiceType {
|
package/src/utils.spec.ts
CHANGED
|
@@ -32,6 +32,19 @@ describe('unit test for utils', () => {
|
|
|
32
32
|
).toBe('bar=baz');
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
+
test('getFilterQuery should encode URL params', () => {
|
|
36
|
+
expect(getFilterQuery([])).toBe(null);
|
|
37
|
+
|
|
38
|
+
expect(
|
|
39
|
+
getFilterQuery([
|
|
40
|
+
{
|
|
41
|
+
columnName: 'foo+foo',
|
|
42
|
+
operator: RuntimeFilterOp.NE,
|
|
43
|
+
values: ['bar+'],
|
|
44
|
+
},
|
|
45
|
+
]),
|
|
46
|
+
).toBe('col1=foo%2Bfoo&op1=NE&val1=bar%2B');
|
|
47
|
+
});
|
|
35
48
|
test('getFilterQuery', () => {
|
|
36
49
|
expect(getFilterQuery([])).toBe(null);
|
|
37
50
|
|
package/src/utils.ts
CHANGED
|
@@ -31,9 +31,9 @@ export const getFilterQuery = (runtimeFilters: RuntimeFilter[]): string => {
|
|
|
31
31
|
const filters = runtimeFilters.map((filter, valueIndex) => {
|
|
32
32
|
const index = valueIndex + 1;
|
|
33
33
|
const filterExpr = [];
|
|
34
|
-
filterExpr.push(`col${index}=${filter.columnName}`);
|
|
34
|
+
filterExpr.push(`col${index}=${encodeURIComponent(filter.columnName)}`);
|
|
35
35
|
filterExpr.push(`op${index}=${filter.operator}`);
|
|
36
|
-
filterExpr.push(filter.values.map((value) => `val${index}=${value}`).join('&'));
|
|
36
|
+
filterExpr.push(filter.values.map((value) => `val${index}=${encodeURIComponent(value)}`).join('&'));
|
|
37
37
|
|
|
38
38
|
return filterExpr.join('&');
|
|
39
39
|
});
|