@thoughtspot/visual-embed-sdk 1.28.3 → 1.28.4

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 (129) hide show
  1. package/cjs/package.json +2 -1
  2. package/cjs/src/embed/app.d.ts +38 -0
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +7 -1
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/app.spec.js +10 -0
  7. package/cjs/src/embed/app.spec.js.map +1 -1
  8. package/cjs/src/embed/liveboard.d.ts +16 -0
  9. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  10. package/cjs/src/embed/liveboard.js +8 -3
  11. package/cjs/src/embed/liveboard.js.map +1 -1
  12. package/cjs/src/embed/liveboard.spec.js +61 -4
  13. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  14. package/cjs/src/embed/sage.d.ts +4 -4
  15. package/cjs/src/embed/sage.d.ts.map +1 -1
  16. package/cjs/src/embed/sage.js +2 -18
  17. package/cjs/src/embed/sage.js.map +1 -1
  18. package/cjs/src/embed/sage.spec.js +20 -31
  19. package/cjs/src/embed/sage.spec.js.map +1 -1
  20. package/cjs/src/embed/search.d.ts +22 -0
  21. package/cjs/src/embed/search.d.ts.map +1 -1
  22. package/cjs/src/embed/search.js +3 -1
  23. package/cjs/src/embed/search.js.map +1 -1
  24. package/cjs/src/embed/search.spec.js +2 -1
  25. package/cjs/src/embed/search.spec.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +9 -0
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.js +18 -0
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/errors.js +1 -1
  32. package/cjs/src/errors.js.map +1 -1
  33. package/cjs/src/react/index.spec.js +1 -1
  34. package/cjs/src/react/index.spec.js.map +1 -1
  35. package/cjs/src/types.d.ts +86 -5
  36. package/cjs/src/types.d.ts.map +1 -1
  37. package/cjs/src/types.js +67 -4
  38. package/cjs/src/types.js.map +1 -1
  39. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  40. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  41. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
  42. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  43. package/cjs/src/utils/sessionInfoService.d.ts +66 -0
  44. package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
  45. package/cjs/src/utils/sessionInfoService.js +92 -0
  46. package/cjs/src/utils/sessionInfoService.js.map +1 -0
  47. package/dist/src/embed/app.d.ts +38 -0
  48. package/dist/src/embed/app.d.ts.map +1 -1
  49. package/dist/src/embed/liveboard.d.ts +16 -0
  50. package/dist/src/embed/liveboard.d.ts.map +1 -1
  51. package/dist/src/embed/sage.d.ts +4 -4
  52. package/dist/src/embed/sage.d.ts.map +1 -1
  53. package/dist/src/embed/search.d.ts +22 -0
  54. package/dist/src/embed/search.d.ts.map +1 -1
  55. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  56. package/dist/src/types.d.ts +86 -5
  57. package/dist/src/types.d.ts.map +1 -1
  58. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  59. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  60. package/dist/src/utils/sessionInfoService.d.ts +66 -0
  61. package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
  62. package/dist/tsembed-react.es.js +97 -28
  63. package/dist/tsembed-react.js +97 -28
  64. package/dist/tsembed.es.js +97 -28
  65. package/dist/tsembed.js +97 -28
  66. package/dist/visual-embed-sdk-react-full.d.ts +165 -8
  67. package/dist/visual-embed-sdk-react.d.ts +165 -8
  68. package/dist/visual-embed-sdk.d.ts +165 -8
  69. package/lib/package.json +2 -1
  70. package/lib/src/embed/app.d.ts +38 -0
  71. package/lib/src/embed/app.d.ts.map +1 -1
  72. package/lib/src/embed/app.js +7 -1
  73. package/lib/src/embed/app.js.map +1 -1
  74. package/lib/src/embed/app.spec.js +10 -0
  75. package/lib/src/embed/app.spec.js.map +1 -1
  76. package/lib/src/embed/liveboard.d.ts +16 -0
  77. package/lib/src/embed/liveboard.d.ts.map +1 -1
  78. package/lib/src/embed/liveboard.js +8 -3
  79. package/lib/src/embed/liveboard.js.map +1 -1
  80. package/lib/src/embed/liveboard.spec.js +61 -4
  81. package/lib/src/embed/liveboard.spec.js.map +1 -1
  82. package/lib/src/embed/sage.d.ts +4 -4
  83. package/lib/src/embed/sage.d.ts.map +1 -1
  84. package/lib/src/embed/sage.js +2 -18
  85. package/lib/src/embed/sage.js.map +1 -1
  86. package/lib/src/embed/sage.spec.js +20 -31
  87. package/lib/src/embed/sage.spec.js.map +1 -1
  88. package/lib/src/embed/search.d.ts +22 -0
  89. package/lib/src/embed/search.d.ts.map +1 -1
  90. package/lib/src/embed/search.js +3 -1
  91. package/lib/src/embed/search.js.map +1 -1
  92. package/lib/src/embed/search.spec.js +2 -1
  93. package/lib/src/embed/search.spec.js.map +1 -1
  94. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  95. package/lib/src/embed/ts-embed.js +9 -0
  96. package/lib/src/embed/ts-embed.js.map +1 -1
  97. package/lib/src/embed/ts-embed.spec.js +18 -0
  98. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  99. package/lib/src/errors.js +1 -1
  100. package/lib/src/errors.js.map +1 -1
  101. package/lib/src/react/index.spec.js +1 -1
  102. package/lib/src/react/index.spec.js.map +1 -1
  103. package/lib/src/types.d.ts +86 -5
  104. package/lib/src/types.d.ts.map +1 -1
  105. package/lib/src/types.js +67 -4
  106. package/lib/src/types.js.map +1 -1
  107. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  108. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  109. package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
  110. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  111. package/lib/src/utils/sessionInfoService.d.ts +66 -0
  112. package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
  113. package/lib/src/utils/sessionInfoService.js +85 -0
  114. package/lib/src/utils/sessionInfoService.js.map +1 -0
  115. package/lib/src/visual-embed-sdk.d.ts +166 -9
  116. package/package.json +2 -1
  117. package/src/embed/app.spec.ts +15 -0
  118. package/src/embed/app.ts +48 -0
  119. package/src/embed/liveboard.spec.ts +82 -9
  120. package/src/embed/liveboard.ts +26 -2
  121. package/src/embed/sage.spec.ts +20 -35
  122. package/src/embed/sage.ts +4 -21
  123. package/src/embed/search.spec.ts +2 -1
  124. package/src/embed/search.ts +26 -0
  125. package/src/embed/ts-embed.spec.ts +22 -0
  126. package/src/embed/ts-embed.ts +9 -0
  127. package/src/errors.ts +1 -1
  128. package/src/react/index.spec.tsx +1 -1
  129. package/src/types.ts +85 -4
@@ -12,7 +12,6 @@ import {
12
12
  const defaultConfig: SageViewConfig = {
13
13
  disableWorksheetChange: false,
14
14
  hideWorksheetSelector: false,
15
- hideSearchBarTitle: false,
16
15
  hideSageAnswerHeader: false,
17
16
  hideAutocompleteSuggestions: false,
18
17
  hideSampleQuestions: false,
@@ -36,22 +35,22 @@ describe('Sage embed tests', () => {
36
35
 
37
36
  test('should render sage', async () => {
38
37
  const sageEmbed = new SageEmbed(getRootEl(), defaultConfig);
39
- sageEmbed.render();
38
+ await sageEmbed.render();
40
39
  await executeAfterWait(() => {
41
40
  expectUrlMatch(
42
41
  getIFrameSrc(),
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`,
42
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
44
43
  );
45
44
  });
46
45
  });
47
46
 
48
47
  test('should render sage with product tour flag set', async () => {
49
48
  const sageEmbed = new SageEmbed(getRootEl(), { ...defaultConfig, isProductTour: true });
50
- sageEmbed.render();
49
+ await sageEmbed.render();
51
50
  await executeAfterWait(() => {
52
51
  expectUrlMatch(
53
52
  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`,
53
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=true&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
55
54
  );
56
55
  });
57
56
  });
@@ -61,11 +60,11 @@ describe('Sage embed tests', () => {
61
60
  ...defaultConfig,
62
61
  disableWorksheetChange: true,
63
62
  });
64
- sageEmbed.render();
63
+ await sageEmbed.render();
65
64
  await executeAfterWait(() => {
66
65
  expectUrlMatch(
67
66
  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`,
67
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=true&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
69
68
  );
70
69
  });
71
70
  });
@@ -75,25 +74,11 @@ describe('Sage embed tests', () => {
75
74
  ...defaultConfig,
76
75
  hideWorksheetSelector: true,
77
76
  });
78
- sageEmbed.render();
77
+ await sageEmbed.render();
79
78
  await executeAfterWait(() => {
80
79
  expectUrlMatch(
81
80
  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`,
81
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
97
82
  );
98
83
  });
99
84
  });
@@ -103,11 +88,11 @@ describe('Sage embed tests', () => {
103
88
  ...defaultConfig,
104
89
  hideSageAnswerHeader: true,
105
90
  });
106
- sageEmbed.render();
91
+ await sageEmbed.render();
107
92
  await executeAfterWait(() => {
108
93
  expectUrlMatch(
109
94
  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`,
95
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=true&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
111
96
  );
112
97
  });
113
98
  });
@@ -117,11 +102,11 @@ describe('Sage embed tests', () => {
117
102
  ...defaultConfig,
118
103
  hideAutocompleteSuggestions: true,
119
104
  });
120
- sageEmbed.render();
105
+ await sageEmbed.render();
121
106
  await executeAfterWait(() => {
122
107
  expectUrlMatch(
123
108
  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`,
109
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=true&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
125
110
  );
126
111
  });
127
112
  });
@@ -130,11 +115,11 @@ describe('Sage embed tests', () => {
130
115
  const sageEmbed = new SageEmbed(getRootEl(), {
131
116
  showObjectSuggestions: true,
132
117
  });
133
- sageEmbed.render();
118
+ await sageEmbed.render();
134
119
  await executeAfterWait(() => {
135
120
  expectUrlMatch(
136
121
  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`,
122
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
138
123
  );
139
124
  });
140
125
  });
@@ -144,11 +129,11 @@ describe('Sage embed tests', () => {
144
129
  ...defaultConfig,
145
130
  dataSource: 'worksheet-id',
146
131
  });
147
- sageEmbed.render();
132
+ await sageEmbed.render();
148
133
  await executeAfterWait(() => {
149
134
  expectUrlMatch(
150
135
  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`,
136
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?worksheet=worksheet-id`,
152
137
  );
153
138
  });
154
139
  });
@@ -161,11 +146,11 @@ describe('Sage embed tests', () => {
161
146
  searchQuery: 'test query', // also tests for query with spaces
162
147
  },
163
148
  });
164
- sageEmbed.render();
149
+ await sageEmbed.render();
165
150
  await executeAfterWait(() => {
166
151
  expectUrlMatch(
167
152
  getIFrameSrc(),
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%20query`,
153
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?worksheet=worksheet-id&query=test%20query`,
169
154
  );
170
155
  });
171
156
  });
@@ -178,11 +163,11 @@ describe('Sage embed tests', () => {
178
163
  executeSearch: true,
179
164
  },
180
165
  });
181
- sageEmbed.render();
166
+ await sageEmbed.render();
182
167
  await executeAfterWait(() => {
183
168
  expectUrlMatch(
184
169
  getIFrameSrc(),
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?executeSearch=true&query=test-query`,
170
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?executeSearch=true&query=test-query`,
186
171
  );
187
172
  });
188
173
  });
package/src/embed/sage.ts CHANGED
@@ -7,9 +7,7 @@
7
7
  * @author Mourya Balabhadra <mourya.balabhadra@thoughtspot.com>
8
8
  */
9
9
 
10
- import {
11
- Action, DOMSelector, Param, ViewConfig,
12
- } from '../types';
10
+ import { DOMSelector, Param, ViewConfig } from '../types';
13
11
  import { getQueryParamString } from '../utils';
14
12
  import { V1Embed } from './ts-embed';
15
13
 
@@ -54,7 +52,7 @@ export interface SageViewConfig
54
52
  showObjectResults?: boolean;
55
53
  /**
56
54
  * 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
55
+ * even after the search is completed. This is different from Thoughtspot Embedded Sage Embed
58
56
  * experience where it mimics closer to the non-embed case.
59
57
  * The Sample questions container is collapsed when this value is set after
60
58
  * does a search.
@@ -65,8 +63,9 @@ export interface SageViewConfig
65
63
  isProductTour?: boolean;
66
64
  /**
67
65
  * Show or hide the search bar title.
66
+ * @version SDK: 1.29.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
68
67
  *
69
- * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
68
+ * @deprecated Thoughtspot: 9.10.0.cl | search bar doesn't have the title from 9.10.0.cl
70
69
  */
71
70
  hideSearchBarTitle?: boolean;
72
71
  /**
@@ -136,16 +135,6 @@ export interface SageViewConfig
136
135
  */
137
136
  searchOptions?: SearchOptions;
138
137
  }
139
- export const HiddenActionItemByDefaultForSageEmbed = [
140
- Action.Save,
141
- Action.Pin,
142
- Action.EditACopy,
143
- Action.SaveAsView,
144
- Action.UpdateTML,
145
- Action.EditTML,
146
- Action.AnswerDelete,
147
- Action.Share,
148
- ];
149
138
  /**
150
139
  * Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
151
140
  *
@@ -178,7 +167,6 @@ export class SageEmbed extends V1Embed {
178
167
  showObjectSuggestions,
179
168
  hideSampleQuestions,
180
169
  isProductTour,
181
- hideSearchBarTitle,
182
170
  hideSageAnswerHeader,
183
171
  hideAutocompleteSuggestions,
184
172
  } = this.viewConfig;
@@ -195,12 +183,7 @@ export class SageEmbed extends V1Embed {
195
183
  }
196
184
  params[Param.HideSampleQuestions] = !!hideSampleQuestions;
197
185
  params[Param.IsProductTour] = !!isProductTour;
198
- params[Param.HideSearchBarTitle] = !!hideSearchBarTitle;
199
186
  params[Param.HideSageAnswerHeader] = !!hideSageAnswerHeader;
200
- params[Param.HideActions] = [
201
- ...(params[Param.HideActions] ?? []),
202
- ...HiddenActionItemByDefaultForSageEmbed,
203
- ];
204
187
 
205
188
  return getQueryParamString(params, true);
206
189
  }
@@ -356,12 +356,13 @@ describe('Search embed tests', () => {
356
356
  const searchEmbed = new SearchEmbed(getRootEl(), {
357
357
  ...defaultViewConfig,
358
358
  answerId,
359
+ collapseSearchBarInitially: true,
359
360
  });
360
361
  searchEmbed.render();
361
362
  await executeAfterWait(() => {
362
363
  expectUrlMatchesWithParams(
363
364
  getIFrameSrc(),
364
- `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/saved-answer/${answerId}`,
365
+ `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false&collapseSearchBarInitially=true${prefixParams}#/embed/saved-answer/${answerId}`,
365
366
  );
366
367
  });
367
368
  });
@@ -228,6 +228,28 @@ export interface SearchViewConfig
228
228
  * @version: SDK: 1.24.0
229
229
  */
230
230
  useLastSelectedSources?: boolean;
231
+ /**
232
+ * To set the initial state of the search bar in case of saved-answers.
233
+ *
234
+ * @default false
235
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
236
+ */
237
+ collapseSearchBarInitially?: boolean;
238
+ /**
239
+ * To enable custom column groups in data panel v2
240
+ *
241
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
242
+ * @default false
243
+ *
244
+ * @example
245
+ * ```js
246
+ * const embed = new SearchEmbed('#tsEmbed', {
247
+ * ... // other options
248
+ * enableCustomColumnGroups: true,
249
+ * });
250
+ * ```
251
+ */
252
+ enableCustomColumnGroups?: boolean;
231
253
  }
232
254
 
233
255
  export const HiddenActionItemByDefaultForSearchEmbed = [
@@ -285,6 +307,8 @@ export class SearchEmbed extends TsEmbed {
285
307
  dataPanelV2 = false,
286
308
  useLastSelectedSources = false,
287
309
  runtimeParameters,
310
+ collapseSearchBarInitially = false,
311
+ enableCustomColumnGroups = false,
288
312
  } = this.viewConfig;
289
313
  const queryParams = this.getBaseQueryParams();
290
314
 
@@ -331,6 +355,8 @@ export class SearchEmbed extends TsEmbed {
331
355
  }
332
356
 
333
357
  queryParams[Param.searchEmbed] = true;
358
+ queryParams[Param.CollapseSearchBarInitially] = collapseSearchBarInitially;
359
+ queryParams[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
334
360
  let query = '';
335
361
  const queryParamsString = getQueryParamString(queryParams, true);
336
362
  if (queryParamsString) {
@@ -1331,6 +1331,28 @@ describe('Unit test case for ts embed', () => {
1331
1331
  done();
1332
1332
  });
1333
1333
  });
1334
+
1335
+ it('Should set the override locale for number/date and currency format', async () => {
1336
+ jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
1337
+ init({
1338
+ thoughtSpotHost: 'tshost',
1339
+ authType: AuthType.None,
1340
+ numberFormatLocale: 'en-US',
1341
+ dateFormatLocale: 'en-IN',
1342
+ currencyFormat: 'USD',
1343
+ });
1344
+ const appEmbed = new AppEmbed(getRootEl(), {
1345
+ frameParams: {
1346
+ width: '100%',
1347
+ height: '100%',
1348
+ },
1349
+ });
1350
+ await appEmbed.render();
1351
+ expectUrlMatchesWithParams(
1352
+ getIFrameSrc(),
1353
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&numberFormatLocale=en-US&dateFormatLocale=en-IN&currencyFormat=USD${defaultParamsPost}#/home`,
1354
+ );
1355
+ });
1334
1356
  });
1335
1357
 
1336
1358
  describe('When destroyed', () => {
@@ -414,6 +414,15 @@ export class TsEmbed {
414
414
  if (this.embedConfig.pendoTrackingKey) {
415
415
  queryParams[Param.PendoTrackingKey] = this.embedConfig.pendoTrackingKey;
416
416
  }
417
+ if (this.embedConfig.numberFormatLocale) {
418
+ queryParams[Param.NumberFormatLocale] = this.embedConfig.numberFormatLocale;
419
+ }
420
+ if (this.embedConfig.dateFormatLocale) {
421
+ queryParams[Param.DateFormatLocale] = this.embedConfig.dateFormatLocale;
422
+ }
423
+ if (this.embedConfig.currencyFormat) {
424
+ queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
425
+ }
417
426
 
418
427
  const {
419
428
  disabledActions,
package/src/errors.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export const ERROR_MESSAGE = {
2
2
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
3
- LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
3
+ LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a liveboard to embed.',
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
6
  SAGE_EMBED_BETA_WARNING_MESSAGE: 'Sage Embed is in Beta in this release.',
@@ -49,7 +49,7 @@ describe('React Components', () => {
49
49
  ),
50
50
  ).toBe(true);
51
51
  expect(getIFrameSrc(container)).toBe(
52
- `http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&authType=None&blockNonEmbedFullAppAccess=true&hideAction=[%22${Action.ReportError}%22,%22editACopy%22,%22saveAsView%22,%22updateTSL%22,%22editTSL%22,%22onDeleteAnswer%22]&overrideConsoleLogs=true&clientLogLevel=ERROR&enableDataPanelV2=false&dataSourceMode=hide&useLastSelectedSources=false&isSearchEmbed=true#/embed/answer`,
52
+ `http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&authType=None&blockNonEmbedFullAppAccess=true&hideAction=[%22${Action.ReportError}%22,%22editACopy%22,%22saveAsView%22,%22updateTSL%22,%22editTSL%22,%22onDeleteAnswer%22]&overrideConsoleLogs=true&clientLogLevel=ERROR&enableDataPanelV2=false&dataSourceMode=hide&useLastSelectedSources=false&isSearchEmbed=true&collapseSearchBarInitially=false&enableCustomColumnGroups=false#/embed/answer`,
53
53
  );
54
54
  });
55
55
 
package/src/types.ts CHANGED
@@ -594,6 +594,24 @@ export interface EmbedConfig {
594
594
  * @version SDK: 1.27.9
595
595
  */
596
596
  disableSDKTracking?: boolean;
597
+ /**
598
+ * Overrides default/user preffered locale for date formatting
599
+ *
600
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
601
+ */
602
+ dateFormatLocale?: string;
603
+ /**
604
+ * Overrides default/user preffered locale for number formatting
605
+ *
606
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
607
+ */
608
+ numberFormatLocale?: string;
609
+ /**
610
+ * Format to be used for currency when currency format is set to infer from browser
611
+ *
612
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
613
+ */
614
+ currencyFormat?: string;
597
615
  }
598
616
 
599
617
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -3082,6 +3100,13 @@ export enum Param {
3082
3100
  ClientLogLevel = 'clientLogLevel',
3083
3101
  OverrideNativeConsole = 'overrideConsoleLogs',
3084
3102
  enableAskSage = 'enableAskSage',
3103
+ CollapseSearchBarInitially= 'collapseSearchBarInitially',
3104
+ EnableCustomColumnGroups = 'enableCustomColumnGroups',
3105
+ DateFormatLocale = 'dateFormatLocale',
3106
+ NumberFormatLocale = 'numberFormatLocale',
3107
+ CurrencyFormat = 'currencyFormat',
3108
+ Enable2ColumnLayout = 'enable2ColumnLayout',
3109
+ IsFullAppEmbed = 'isFullAppEmbed',
3085
3110
  }
3086
3111
 
3087
3112
  /**
@@ -3219,6 +3244,18 @@ export enum Action {
3219
3244
  * ```
3220
3245
  */
3221
3246
  AddFilter = 'addFilter',
3247
+ /**
3248
+ * The **Add Data Panel Objects** action on the data panel v2.
3249
+ * Allows to show action menu to add different objects (like
3250
+ * formulas, parameters) in data panel v2.
3251
+ *
3252
+ * @example
3253
+ * ```js
3254
+ * disabledActions: [Action.AddDataPanelObjects]
3255
+ * ```
3256
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3257
+ */
3258
+ AddDataPanelObjects = 'addDataPanelObjects',
3222
3259
  /**
3223
3260
  * Filter configuration options on a Liveboard and Search page.
3224
3261
  * Allows configuring filter options when adding filters to a
@@ -3261,6 +3298,28 @@ export enum Action {
3261
3298
  * ```
3262
3299
  */
3263
3300
  AddParameter = 'addParameter',
3301
+ /**
3302
+ * The **Add Column Set** action on a Answer.
3303
+ * Allows adding column sets to a Answer.
3304
+ *
3305
+ * @example
3306
+ * ```js
3307
+ * disabledActions: [Action.AddColumnSet]
3308
+ * ```
3309
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3310
+ */
3311
+ AddColumnSet = 'addSimpleCohort',
3312
+ /**
3313
+ * The **Add Query Set** action on a Answer.
3314
+ * Allows adding query sets to a Answer.
3315
+ *
3316
+ * @example
3317
+ * ```js
3318
+ * disabledActions: [Action.AddQuerySet]
3319
+ * ```
3320
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3321
+ */
3322
+ AddQuerySet = 'addAdvancedCohort',
3264
3323
  /**
3265
3324
  * @hidden
3266
3325
  */
@@ -3693,6 +3752,28 @@ export enum Action {
3693
3752
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
3694
3753
  */
3695
3754
  CrossFilter = 'context-menu-item-cross-filter',
3755
+ /**
3756
+ * The **Sync to Slack** action on Liveboard visualizations.
3757
+ * Allows sending data to third-party apps Slack
3758
+ *
3759
+ * @example
3760
+ * ```js
3761
+ * disabledActions: [Action.SyncToSlack]
3762
+ * ```
3763
+ * @version @version SDK : 1.32.0 | Thoughtspot: 10.1.0.cl
3764
+ */
3765
+ SyncToSlack = 'syncToSlack',
3766
+ /**
3767
+ * The **Sync to Teams** action on Liveboard visualizations.
3768
+ * Allows sending data to third-party apps Team
3769
+ *
3770
+ * @example
3771
+ * ```js
3772
+ * disabledActions: [Action.SyncToTeams]
3773
+ * ```
3774
+ * @version @version SDK : 1.32.0 | Thoughtspot: 10.1.0.cl
3775
+ */
3776
+ SyncToTeams = 'syncToTeams',
3696
3777
  /**
3697
3778
  * The **Remove** action that appears when cross filters are applied
3698
3779
  * on a Liveboard.
@@ -4001,15 +4082,15 @@ export enum Action {
4001
4082
  RemoveFromWatchlist = 'removeFromWatchlist',
4002
4083
 
4003
4084
  /**
4004
- * The **Copy KPI Link** menu action on KPI watchlist.
4085
+ * The **Organise Favourites** action on Homepage Favourite Module.
4005
4086
  *
4006
4087
  * @example
4007
4088
  * ```js
4008
- * disabledActions: [Action.CopyKpiLink]
4089
+ * disabledActions: [Action.OrganiseFavourites]
4009
4090
  * ```
4010
- * @version SDK : 1.27.9 | Thoughtspot: 9.12.5.cl
4091
+ * @version SDK : 1.32.0 | Thoughtspot: 10.0.0.cl
4011
4092
  */
4012
- CopyKpiLink = 'copyKpiLink',
4093
+ OrganiseFavourites = 'organiseFavourites',
4013
4094
 
4014
4095
  /**
4015
4096
  * Action ID for AI Highlights button