@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.
Files changed (111) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/app.d.ts +35 -1
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +5 -1
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/app.spec.js +19 -0
  7. package/cjs/src/embed/app.spec.js.map +1 -1
  8. package/cjs/src/embed/liveboard.d.ts +35 -1
  9. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  10. package/cjs/src/embed/liveboard.js +11 -1
  11. package/cjs/src/embed/liveboard.js.map +1 -1
  12. package/cjs/src/embed/liveboard.spec.js +11 -0
  13. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  14. package/cjs/src/embed/sage.d.ts +45 -7
  15. package/cjs/src/embed/sage.d.ts.map +1 -1
  16. package/cjs/src/embed/sage.js +9 -3
  17. package/cjs/src/embed/sage.js.map +1 -1
  18. package/cjs/src/embed/sage.spec.js +85 -6
  19. package/cjs/src/embed/sage.spec.js.map +1 -1
  20. package/cjs/src/embed/search-bar.d.ts +1 -1
  21. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  22. package/cjs/src/embed/search-bar.js.map +1 -1
  23. package/cjs/src/embed/search.d.ts +1 -1
  24. package/cjs/src/embed/search.d.ts.map +1 -1
  25. package/cjs/src/embed/search.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +1 -10
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.js +3 -3
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/types.d.ts +18 -23
  32. package/cjs/src/types.d.ts.map +1 -1
  33. package/cjs/src/types.js +15 -0
  34. package/cjs/src/types.js.map +1 -1
  35. package/cjs/src/utils.js +2 -2
  36. package/cjs/src/utils.js.map +1 -1
  37. package/cjs/src/utils.spec.js +10 -0
  38. package/cjs/src/utils.spec.js.map +1 -1
  39. package/dist/src/embed/app.d.ts +35 -1
  40. package/dist/src/embed/app.d.ts.map +1 -1
  41. package/dist/src/embed/liveboard.d.ts +35 -1
  42. package/dist/src/embed/liveboard.d.ts.map +1 -1
  43. package/dist/src/embed/sage.d.ts +45 -7
  44. package/dist/src/embed/sage.d.ts.map +1 -1
  45. package/dist/src/embed/search-bar.d.ts +1 -1
  46. package/dist/src/embed/search-bar.d.ts.map +1 -1
  47. package/dist/src/embed/search.d.ts +1 -1
  48. package/dist/src/embed/search.d.ts.map +1 -1
  49. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  50. package/dist/src/types.d.ts +18 -23
  51. package/dist/src/types.d.ts.map +1 -1
  52. package/dist/tsembed-react.es.js +44 -18
  53. package/dist/tsembed-react.js +44 -18
  54. package/dist/tsembed.es.js +44 -18
  55. package/dist/tsembed.js +44 -18
  56. package/dist/visual-embed-sdk-react-full.d.ts +135 -34
  57. package/dist/visual-embed-sdk-react.d.ts +135 -34
  58. package/dist/visual-embed-sdk.d.ts +135 -34
  59. package/lib/package.json +1 -1
  60. package/lib/src/embed/app.d.ts +35 -1
  61. package/lib/src/embed/app.d.ts.map +1 -1
  62. package/lib/src/embed/app.js +5 -1
  63. package/lib/src/embed/app.js.map +1 -1
  64. package/lib/src/embed/app.spec.js +19 -0
  65. package/lib/src/embed/app.spec.js.map +1 -1
  66. package/lib/src/embed/liveboard.d.ts +35 -1
  67. package/lib/src/embed/liveboard.d.ts.map +1 -1
  68. package/lib/src/embed/liveboard.js +11 -1
  69. package/lib/src/embed/liveboard.js.map +1 -1
  70. package/lib/src/embed/liveboard.spec.js +11 -0
  71. package/lib/src/embed/liveboard.spec.js.map +1 -1
  72. package/lib/src/embed/sage.d.ts +45 -7
  73. package/lib/src/embed/sage.d.ts.map +1 -1
  74. package/lib/src/embed/sage.js +9 -3
  75. package/lib/src/embed/sage.js.map +1 -1
  76. package/lib/src/embed/sage.spec.js +85 -6
  77. package/lib/src/embed/sage.spec.js.map +1 -1
  78. package/lib/src/embed/search-bar.d.ts +1 -1
  79. package/lib/src/embed/search-bar.d.ts.map +1 -1
  80. package/lib/src/embed/search-bar.js.map +1 -1
  81. package/lib/src/embed/search.d.ts +1 -1
  82. package/lib/src/embed/search.d.ts.map +1 -1
  83. package/lib/src/embed/search.js.map +1 -1
  84. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  85. package/lib/src/embed/ts-embed.js +1 -10
  86. package/lib/src/embed/ts-embed.js.map +1 -1
  87. package/lib/src/embed/ts-embed.spec.js +3 -3
  88. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  89. package/lib/src/types.d.ts +18 -23
  90. package/lib/src/types.d.ts.map +1 -1
  91. package/lib/src/types.js +15 -0
  92. package/lib/src/types.js.map +1 -1
  93. package/lib/src/utils.js +2 -2
  94. package/lib/src/utils.js.map +1 -1
  95. package/lib/src/utils.spec.js +10 -0
  96. package/lib/src/utils.spec.js.map +1 -1
  97. package/lib/src/visual-embed-sdk.d.ts +135 -34
  98. package/package.json +1 -1
  99. package/src/embed/app.spec.ts +29 -0
  100. package/src/embed/app.ts +43 -1
  101. package/src/embed/liveboard.spec.ts +16 -0
  102. package/src/embed/liveboard.ts +51 -1
  103. package/src/embed/sage.spec.ts +119 -6
  104. package/src/embed/sage.ts +63 -13
  105. package/src/embed/search-bar.tsx +11 -1
  106. package/src/embed/search.ts +5 -1
  107. package/src/embed/ts-embed.spec.ts +3 -3
  108. package/src/embed/ts-embed.ts +0 -12
  109. package/src/types.ts +16 -21
  110. package/src/utils.spec.ts +13 -0
  111. package/src/utils.ts +2 -2
@@ -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: true,
16
- showObjectSuggestions: false,
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&hideEurekaResults=false&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=true&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
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&hideEurekaResults=false&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=true&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?worksheet=worksheet-id&query=test-query`,
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&hideEurekaResults=false&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=true&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?query=test-query&executeSearch=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 tml string to load the answer
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 extends ViewConfig {
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 contain existing
57
- * liveboards and answers in addition with the autocomplete
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
- showObjectSuggestions?: boolean;
95
+ hideAutocompleteSuggestions?: boolean;
61
96
  /**
62
- * The query string to pre-fill in natual language search bar
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
- searchQuery?: string;
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] = !showObjectSuggestions;
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,
@@ -7,7 +7,17 @@ import { SearchOptions } from './search';
7
7
  * @group Embed components
8
8
  */
9
9
  export interface SearchBarViewConfig
10
- extends Omit<ViewConfig, 'runtimeFilters' | 'showAlerts' | 'dataPanelV2'> {
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.
@@ -50,7 +50,11 @@ export interface SearchOptions {
50
50
  *
51
51
  * @group Embed components
52
52
  */
53
- export interface SearchViewConfig extends ViewConfig {
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 SearchEmbed(getRootEl(), {
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 SearchEmbed(getRootEl(), {
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 SearchEmbed(getRootEl(), {
320
+ const searchEmbed = new AppEmbed(getRootEl(), {
321
321
  ...defaultViewConfig,
322
322
  hiddenHomeLeftNavItems: mockedHiddenHomeLeftNavItems,
323
323
  });
@@ -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
  });