@thoughtspot/visual-embed-sdk 1.36.3 → 1.36.5

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 (185) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/css-variables.d.ts +1 -1
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts.map +1 -1
  5. package/cjs/src/embed/app.js +1 -1
  6. package/cjs/src/embed/app.js.map +1 -1
  7. package/cjs/src/embed/base.d.ts +4 -0
  8. package/cjs/src/embed/base.d.ts.map +1 -1
  9. package/cjs/src/embed/base.js +27 -1
  10. package/cjs/src/embed/base.js.map +1 -1
  11. package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/bodyless-conversation.js +1 -1
  13. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.d.ts.map +1 -1
  15. package/cjs/src/embed/conversation.js +1 -1
  16. package/cjs/src/embed/conversation.js.map +1 -1
  17. package/cjs/src/embed/embedConfig.d.ts.map +1 -1
  18. package/cjs/src/embed/embedConfig.js.map +1 -1
  19. package/cjs/src/embed/liveboard.d.ts +2 -2
  20. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  21. package/cjs/src/embed/liveboard.js +4 -5
  22. package/cjs/src/embed/liveboard.js.map +1 -1
  23. package/cjs/src/embed/liveboard.spec.js +11 -11
  24. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  25. package/cjs/src/embed/sage.d.ts.map +1 -1
  26. package/cjs/src/embed/sage.js +1 -1
  27. package/cjs/src/embed/sage.js.map +1 -1
  28. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  29. package/cjs/src/embed/search-bar.js +1 -1
  30. package/cjs/src/embed/search-bar.js.map +1 -1
  31. package/cjs/src/embed/search.d.ts.map +1 -1
  32. package/cjs/src/embed/search.js +1 -1
  33. package/cjs/src/embed/search.js.map +1 -1
  34. package/cjs/src/embed/ts-embed.d.ts +4 -3
  35. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  36. package/cjs/src/embed/ts-embed.js +25 -16
  37. package/cjs/src/embed/ts-embed.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  39. package/cjs/src/embed/ts-embed.spec.js +71 -5
  40. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  41. package/cjs/src/errors.d.ts +1 -0
  42. package/cjs/src/errors.d.ts.map +1 -1
  43. package/cjs/src/errors.js +1 -0
  44. package/cjs/src/errors.js.map +1 -1
  45. package/cjs/src/react/all-types-export.d.ts +1 -1
  46. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  47. package/cjs/src/react/all-types-export.js +2 -1
  48. package/cjs/src/react/all-types-export.js.map +1 -1
  49. package/cjs/src/react/index.d.ts +16 -0
  50. package/cjs/src/react/index.d.ts.map +1 -1
  51. package/cjs/src/react/index.js +25 -2
  52. package/cjs/src/react/index.js.map +1 -1
  53. package/cjs/src/types.d.ts +43 -19
  54. package/cjs/src/types.d.ts.map +1 -1
  55. package/cjs/src/types.js +43 -19
  56. package/cjs/src/types.js.map +1 -1
  57. package/cjs/src/utils/with-resolvers-polyfill.d.ts +1 -0
  58. package/cjs/src/utils/with-resolvers-polyfill.d.ts.map +1 -0
  59. package/cjs/src/utils/with-resolvers-polyfill.js +12 -0
  60. package/cjs/src/utils/with-resolvers-polyfill.js.map +1 -0
  61. package/cjs/src/utils.d.ts +17 -2
  62. package/cjs/src/utils.d.ts.map +1 -1
  63. package/cjs/src/utils.js +27 -3
  64. package/cjs/src/utils.js.map +1 -1
  65. package/dist/{index-BJx3m5_V.js → index-Cyvfex-A.js} +1 -1
  66. package/dist/src/css-variables.d.ts +1 -1
  67. package/dist/src/css-variables.d.ts.map +1 -1
  68. package/dist/src/embed/app.d.ts.map +1 -1
  69. package/dist/src/embed/base.d.ts +4 -0
  70. package/dist/src/embed/base.d.ts.map +1 -1
  71. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  72. package/dist/src/embed/conversation.d.ts.map +1 -1
  73. package/dist/src/embed/embedConfig.d.ts.map +1 -1
  74. package/dist/src/embed/liveboard.d.ts +2 -2
  75. package/dist/src/embed/liveboard.d.ts.map +1 -1
  76. package/dist/src/embed/sage.d.ts.map +1 -1
  77. package/dist/src/embed/search-bar.d.ts.map +1 -1
  78. package/dist/src/embed/search.d.ts.map +1 -1
  79. package/dist/src/embed/ts-embed.d.ts +4 -3
  80. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  81. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  82. package/dist/src/errors.d.ts +1 -0
  83. package/dist/src/errors.d.ts.map +1 -1
  84. package/dist/src/react/all-types-export.d.ts +1 -1
  85. package/dist/src/react/all-types-export.d.ts.map +1 -1
  86. package/dist/src/react/index.d.ts +16 -0
  87. package/dist/src/react/index.d.ts.map +1 -1
  88. package/dist/src/types.d.ts +43 -19
  89. package/dist/src/types.d.ts.map +1 -1
  90. package/dist/src/utils/with-resolvers-polyfill.d.ts +1 -0
  91. package/dist/src/utils/with-resolvers-polyfill.d.ts.map +1 -0
  92. package/dist/src/utils.d.ts +17 -2
  93. package/dist/src/utils.d.ts.map +1 -1
  94. package/dist/tsembed-react.es.js +392 -64
  95. package/dist/tsembed-react.js +390 -61
  96. package/dist/tsembed.es.js +128 -51
  97. package/dist/tsembed.js +127 -50
  98. package/dist/visual-embed-sdk-react-full.d.ts +1277 -1234
  99. package/dist/visual-embed-sdk-react.d.ts +711 -668
  100. package/dist/visual-embed-sdk.d.ts +53 -24
  101. package/lib/package.json +1 -1
  102. package/lib/src/css-variables.d.ts +1 -1
  103. package/lib/src/css-variables.d.ts.map +1 -1
  104. package/lib/src/embed/app.d.ts.map +1 -1
  105. package/lib/src/embed/app.js +1 -1
  106. package/lib/src/embed/app.js.map +1 -1
  107. package/lib/src/embed/base.d.ts +4 -0
  108. package/lib/src/embed/base.d.ts.map +1 -1
  109. package/lib/src/embed/base.js +24 -1
  110. package/lib/src/embed/base.js.map +1 -1
  111. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  112. package/lib/src/embed/bodyless-conversation.js +1 -1
  113. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  114. package/lib/src/embed/conversation.d.ts.map +1 -1
  115. package/lib/src/embed/conversation.js +1 -1
  116. package/lib/src/embed/conversation.js.map +1 -1
  117. package/lib/src/embed/embedConfig.d.ts.map +1 -1
  118. package/lib/src/embed/embedConfig.js.map +1 -1
  119. package/lib/src/embed/liveboard.d.ts +2 -2
  120. package/lib/src/embed/liveboard.d.ts.map +1 -1
  121. package/lib/src/embed/liveboard.js +4 -5
  122. package/lib/src/embed/liveboard.js.map +1 -1
  123. package/lib/src/embed/liveboard.spec.js +11 -11
  124. package/lib/src/embed/liveboard.spec.js.map +1 -1
  125. package/lib/src/embed/sage.d.ts.map +1 -1
  126. package/lib/src/embed/sage.js +1 -1
  127. package/lib/src/embed/sage.js.map +1 -1
  128. package/lib/src/embed/search-bar.d.ts.map +1 -1
  129. package/lib/src/embed/search-bar.js +1 -1
  130. package/lib/src/embed/search-bar.js.map +1 -1
  131. package/lib/src/embed/search.d.ts.map +1 -1
  132. package/lib/src/embed/search.js +1 -1
  133. package/lib/src/embed/search.js.map +1 -1
  134. package/lib/src/embed/ts-embed.d.ts +4 -3
  135. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  136. package/lib/src/embed/ts-embed.js +26 -17
  137. package/lib/src/embed/ts-embed.js.map +1 -1
  138. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  139. package/lib/src/embed/ts-embed.spec.js +71 -5
  140. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  141. package/lib/src/errors.d.ts +1 -0
  142. package/lib/src/errors.d.ts.map +1 -1
  143. package/lib/src/errors.js +1 -0
  144. package/lib/src/errors.js.map +1 -1
  145. package/lib/src/react/all-types-export.d.ts +1 -1
  146. package/lib/src/react/all-types-export.d.ts.map +1 -1
  147. package/lib/src/react/all-types-export.js +1 -1
  148. package/lib/src/react/all-types-export.js.map +1 -1
  149. package/lib/src/react/index.d.ts +16 -0
  150. package/lib/src/react/index.d.ts.map +1 -1
  151. package/lib/src/react/index.js +23 -1
  152. package/lib/src/react/index.js.map +1 -1
  153. package/lib/src/types.d.ts +43 -19
  154. package/lib/src/types.d.ts.map +1 -1
  155. package/lib/src/types.js +43 -19
  156. package/lib/src/types.js.map +1 -1
  157. package/lib/src/utils/with-resolvers-polyfill.d.ts +1 -0
  158. package/lib/src/utils/with-resolvers-polyfill.d.ts.map +1 -0
  159. package/lib/src/utils/with-resolvers-polyfill.js +12 -0
  160. package/lib/src/utils/with-resolvers-polyfill.js.map +1 -0
  161. package/lib/src/utils.d.ts +17 -2
  162. package/lib/src/utils.d.ts.map +1 -1
  163. package/lib/src/utils.js +25 -2
  164. package/lib/src/utils.js.map +1 -1
  165. package/lib/src/visual-embed-sdk.d.ts +54 -25
  166. package/package.json +1 -1
  167. package/src/css-variables.ts +1 -1
  168. package/src/embed/app.ts +2 -1
  169. package/src/embed/base.ts +41 -1
  170. package/src/embed/bodyless-conversation.ts +2 -1
  171. package/src/embed/conversation.ts +2 -1
  172. package/src/embed/embedConfig.ts +1 -1
  173. package/src/embed/liveboard.spec.ts +11 -11
  174. package/src/embed/liveboard.ts +5 -6
  175. package/src/embed/sage.ts +1 -2
  176. package/src/embed/search-bar.tsx +1 -2
  177. package/src/embed/search.ts +1 -2
  178. package/src/embed/ts-embed.spec.ts +83 -5
  179. package/src/embed/ts-embed.ts +33 -17
  180. package/src/errors.ts +1 -0
  181. package/src/react/all-types-export.ts +1 -0
  182. package/src/react/index.tsx +27 -2
  183. package/src/types.ts +43 -19
  184. package/src/utils/with-resolvers-polyfill.ts +11 -0
  185. package/src/utils.ts +35 -4
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -553,6 +553,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/app' {
553
553
  declare module '@thoughtspot/visual-embed-sdk/embed/base' {
554
554
  import { EmbedConfig, PrefetchFeatures } from '@thoughtspot/visual-embed-sdk/types';
555
555
  import { notifyAuthFailure, notifyAuthSDKSuccess, notifyAuthSuccess, notifyLogout, AuthEventEmitter } from '@thoughtspot/visual-embed-sdk/auth';
556
+ import '../utils/with-resolvers-polyfill';
556
557
  export interface executeTMLInput {
557
558
  metadata_tmls: string[];
558
559
  import_policy?: 'PARTIAL' | 'ALL_OR_NONE' | 'VALIDATE_ONLY';
@@ -587,6 +588,9 @@ declare module '@thoughtspot/visual-embed-sdk/embed/base' {
587
588
  export const prefetch: (url?: string, prefetchFeatures?: PrefetchFeatures[], additionalFlags?: {
588
589
  [key: string]: string | number | boolean;
589
590
  }) => void;
591
+ export const createAndSetInitPromise: () => void;
592
+ export const getInitPromise: () => Promise<ReturnType<typeof init>>;
593
+ export const getIsInitCalled: () => boolean;
590
594
  /**
591
595
  * Initializes the Visual Embed SDK globally and perform
592
596
  * authentication if applicable. This function needs to be called before any ThoughtSpot
@@ -702,7 +706,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
702
706
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
703
707
  */
704
708
  import { DOMSelector, HostEvent, ViewConfig } from '@thoughtspot/visual-embed-sdk/types';
705
- import { V1Embed } from '@thoughtspot/visual-embed-sdk/embed/ts-embed';
709
+ import { TsEmbed, V1Embed } from '@thoughtspot/visual-embed-sdk/embed/ts-embed';
706
710
  import { TriggerPayload, TriggerResponse } from '@thoughtspot/visual-embed-sdk/embed/hostEventClient/contracts';
707
711
  /**
708
712
  * The configuration for the embedded Liveboard or visualization page view.
@@ -1081,7 +1085,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
1081
1085
  */
1082
1086
  protected getEmbedParams(): string;
1083
1087
  protected beforePrerenderVisible(): void;
1084
- protected handleRenderForPrerender(): void;
1088
+ protected handleRenderForPrerender(): Promise<TsEmbed>;
1085
1089
  /**
1086
1090
  * Triggers an event to the embedded app
1087
1091
  * @param {HostEvent} messageType The event type
@@ -3325,8 +3329,9 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
3325
3329
  */
3326
3330
  Load = "load",
3327
3331
  /**
3328
- * Data pertaining to an Answer or Liveboard is received
3329
- * @return data - The Answer or Liveboard data
3332
+ * Data pertaining to an Answer or Liveboard is received.
3333
+ * The event payload includes the raw data of the object.
3334
+ * @return data - Answer of Liveboard data
3330
3335
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3331
3336
  * @example
3332
3337
  *```js
@@ -4230,17 +4235,39 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4230
4235
  */
4231
4236
  ParameterChanged = "parameterChanged",
4232
4237
  /**
4233
- * Emitted when the table viz renders.
4234
- * You can use this event as a hook to trigger
4235
- * other events on the rendered table viz data.
4238
+ * Emits when a table visualization is rendered in
4239
+ * the ThoughtSpot embedded app.
4240
+ * You can also use this event as a hook to trigger host events
4241
+ * such as `HostEvent.TransformTableVizData` on the table visualization.
4242
+ * The event payload contains the data used in the rendered table.
4243
+ * You can extract the relevant data from the payload
4244
+ * stored in `payload.data.data.columnDataLite`.
4245
+ * `columnDataLite` is a multidimensional array that contains
4246
+ * data values for each column, which was used in the query to
4247
+ * generate the table visualization. To find and modify specific cell data,
4248
+ * you can either loop through the array or directly access a cell if
4249
+ * you know its position and data index.
4250
+ * In the following code sample, the first cell in the first column
4251
+ * (`columnDataLite[0].dataValue[0]`) is set to `new fob`.
4252
+ * Note that any changes made to the data in the payload will only update the
4253
+ * visual presentation and do not affect the underlying data.
4254
+ * To persist data value modifications after a reload or during chart
4255
+ * interactions such as drill down, ensure that the modified
4256
+ * payload in the `columnDataLite` is passed on to
4257
+ * `HostEvent.TransformTableVizData` and trigger an update to
4258
+ * the table visualization.
4259
+ * If the Row-Level Security (RLS) rules are applied on the
4260
+ * Worksheet or Model, exercise caution when changing column
4261
+ * or table cell values to maintain data security.
4262
+ *
4236
4263
  * @example
4237
4264
  * ```js
4238
4265
  * searchEmbed.on(EmbedEvent.TableVizRendered, (payload) => {
4239
- * console.log(payload);
4240
- * const columnDataLite = payload.data.data.columnDataLite;
4241
- * columnDataLite[0].dataValue[0]="new fob";
4242
- * console.log('>>> new Data', columnDataLite);
4243
- * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
4266
+ * console.log(payload);
4267
+ * const columnDataLite = payload.data.data.columnDataLite;
4268
+ * columnDataLite[0].dataValue[0]="new fob";
4269
+ * console.log('>>> new Data', columnDataLite);
4270
+ * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
4244
4271
  * })
4245
4272
  * ```
4246
4273
  * @version SDK: 1.35.12 | ThoughtSpot: 10.7.0.cl
@@ -5277,19 +5304,20 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5277
5304
  */
5278
5305
  UIPassthrough = "UiPassthrough",
5279
5306
  /**
5280
- * Triggers the table viz rerender with the updated data.
5307
+ * Triggers the table visualization re-render with the updated data.
5281
5308
  * Includes the following properties:
5282
- * @param - columnDataLite - an array of object containing data
5283
- * transformed from data picked from TableVizRendered event.
5284
- * For example, { columnDataLite: []}
5309
+ * @param - `columnDataLite` - an array of object containing the
5310
+ * data value modifications retrieved from the `EmbedEvent.TableVizRendered`
5311
+ * payload.For example, { columnDataLite: []}`.
5312
+ *
5285
5313
  * @example
5286
5314
  * ```js
5287
5315
  * searchEmbed.on(EmbedEvent.TableVizRendered, (payload) => {
5288
- * console.log(payload);
5289
- * const columnDataLite = payload.data.data.columnDataLite;
5290
- * columnDataLite[0].dataValue[0]="new fob";
5291
- * console.log('>>> new Data', columnDataLite);
5292
- * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
5316
+ * console.log(payload);
5317
+ * const columnDataLite = payload.data.data.columnDataLite;
5318
+ * columnDataLite[0].dataValue[0]="new fob";
5319
+ * console.log('>>> new Data', columnDataLite);
5320
+ * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
5293
5321
  * })
5294
5322
  * ```
5295
5323
  * @version SDK: 1.35.12 | ThoughtSpot: 10.7.0.cl
@@ -6875,7 +6903,7 @@ declare module '@thoughtspot/visual-embed-sdk/css-variables' {
6875
6903
  /**
6876
6904
  * Background color of the previously asked prompt message in the Spotter page.
6877
6905
  */
6878
- '--ts-var-spotter-prompt-background': string;
6906
+ '--ts-var-spotter-prompt-background'?: string;
6879
6907
  /**
6880
6908
  * Background color of the data panel.
6881
6909
  */
@@ -7767,6 +7795,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
7767
7795
  */
7768
7796
  protected isRendered: boolean;
7769
7797
  protected hostEventClient: HostEventClient;
7798
+ protected isReadyForRenderPromise: Promise<void>;
7770
7799
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
7771
7800
  /**
7772
7801
  * Handles errors within the SDK
@@ -7910,12 +7939,12 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
7910
7939
  */
7911
7940
  render(): Promise<TsEmbed>;
7912
7941
  getIframeSrc(): string;
7913
- protected handleRenderForPrerender(): void;
7942
+ protected handleRenderForPrerender(): Promise<TsEmbed>;
7914
7943
  /**
7915
7944
  * Creates the preRender shell
7916
7945
  * @param showPreRenderByDefault - Show the preRender after render, hidden by default
7917
7946
  */
7918
- preRender(showPreRenderByDefault?: boolean): TsEmbed;
7947
+ preRender(showPreRenderByDefault?: boolean): Promise<TsEmbed>;
7919
7948
  /**
7920
7949
  * Get the Post Url Params for THOUGHTSPOT from the current
7921
7950
  * host app URL.
@@ -7946,7 +7975,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
7946
7975
  * Also, synchronizes the style of the PreRender component with the embedding
7947
7976
  * element.
7948
7977
  */
7949
- showPreRender(): void;
7978
+ showPreRender(): Promise<TsEmbed>;
7950
7979
  /**
7951
7980
  * Synchronizes the style properties of the PreRender component with the embedding
7952
7981
  * element. This function adjusts the position, width, and height of the PreRender
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.36.3",
3
+ "version": "1.36.5",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -119,7 +119,7 @@ export interface CustomCssVariables {
119
119
  /**
120
120
  * Background color of the previously asked prompt message in the Spotter page.
121
121
  */
122
- '--ts-var-spotter-prompt-background': string;
122
+ '--ts-var-spotter-prompt-background'?: string;
123
123
 
124
124
  /**
125
125
  * Background color of the data panel.
package/src/embed/app.ts CHANGED
@@ -761,7 +761,8 @@ export class AppEmbed extends V1Embed {
761
761
  * to be embedded.
762
762
  */
763
763
  public async render(): Promise<AppEmbed> {
764
- super.render();
764
+ await super.render();
765
+
765
766
  const src = this.getIFrameSrc();
766
767
  await this.renderV1Embed(src);
767
768
 
package/src/embed/base.ts CHANGED
@@ -30,9 +30,10 @@ import {
30
30
  AuthEventEmitter,
31
31
  postLoginService,
32
32
  } from '../auth';
33
+ import '../utils/with-resolvers-polyfill';
33
34
  import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
34
35
  import { getEmbedConfig, setEmbedConfig } from './embedConfig';
35
- import { getQueryParamString } from '../utils';
36
+ import { getQueryParamString, getValueFromWindow, storeValueInWindow } from '../utils';
36
37
  import { resetAllCachedServices } from '../utils/resetServices';
37
38
 
38
39
  const CONFIG_DEFAULTS: Partial<EmbedConfig> = {
@@ -171,6 +172,40 @@ function backwardCompat(embedConfig: EmbedConfig): EmbedConfig {
171
172
  return newConfig;
172
173
  }
173
174
 
175
+ type InitFlagStore = {
176
+ initPromise: Promise<ReturnType<typeof init>>;
177
+ isInitCalled: boolean;
178
+ initPromiseResolve: (value: ReturnType<typeof init>) => void;
179
+ }
180
+ const initFlagKey = 'initFlagKey';
181
+
182
+ export const createAndSetInitPromise = (): void => {
183
+ const {
184
+ promise: initPromise,
185
+ resolve: initPromiseResolve,
186
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
187
+ // @ts-ignore
188
+ } = Promise.withResolvers<AuthEventEmitter>();
189
+ const initFlagStore: InitFlagStore = {
190
+ initPromise,
191
+ isInitCalled: false,
192
+ initPromiseResolve,
193
+ };
194
+ storeValueInWindow(initFlagKey, initFlagStore, {
195
+ // In case of diff imports the promise might be already set
196
+ ignoreIfAlreadyExists: true,
197
+ });
198
+ };
199
+
200
+ createAndSetInitPromise();
201
+
202
+ export const getInitPromise = ():
203
+ Promise<
204
+ ReturnType<typeof init>
205
+ > => getValueFromWindow<InitFlagStore>(initFlagKey)?.initPromise;
206
+
207
+ export const getIsInitCalled = (): boolean => !!getValueFromWindow(initFlagKey)?.isInitCalled;
208
+
174
209
  /**
175
210
  * Initializes the Visual Embed SDK globally and perform
176
211
  * authentication if applicable. This function needs to be called before any ThoughtSpot
@@ -223,6 +258,11 @@ export const init = (embedConfig: EmbedConfig): AuthEventEmitter => {
223
258
  if (getEmbedConfig().callPrefetch) {
224
259
  prefetch(getEmbedConfig().thoughtSpotHost);
225
260
  }
261
+
262
+ // Resolves the promise created in the initPromiseKey
263
+ getValueFromWindow<InitFlagStore>(initFlagKey).initPromiseResolve(authEE);
264
+ getValueFromWindow<InitFlagStore>(initFlagKey).isInitCalled = true;
265
+
226
266
  return authEE as AuthEventEmitter;
227
267
  };
228
268
 
@@ -55,7 +55,8 @@ class ConversationMessage extends TsEmbed {
55
55
  }
56
56
 
57
57
  public async render(): Promise<ConversationMessage> {
58
- super.render();
58
+ await super.render();
59
+
59
60
  const src = this.getIframeSrc();
60
61
  await this.renderIFrame(src);
61
62
  return this;
@@ -164,7 +164,8 @@ export class ConversationEmbed extends TsEmbed {
164
164
  }
165
165
 
166
166
  public async render(): Promise<ConversationEmbed> {
167
- super.render();
167
+ await super.render();
168
+
168
169
  const src = this.getIframeSrc();
169
170
  await this.renderIFrame(src);
170
171
  return this;
@@ -9,7 +9,7 @@ const configKey = 'embedConfig';
9
9
  * @version SDK: 1.19.0 | ThoughtSpot: *
10
10
  * @group Global methods
11
11
  */
12
- export const getEmbedConfig = (): EmbedConfig => getValueFromWindow(configKey) || {};
12
+ export const getEmbedConfig = (): EmbedConfig => getValueFromWindow(configKey) || ({} as any);
13
13
 
14
14
  /**
15
15
  * Sets the configuration embed was initialized with.
@@ -553,13 +553,13 @@ describe('Liveboard/viz embed tests', () => {
553
553
  });
554
554
  });
555
555
 
556
- test('navigateToLiveboard should trigger the navigate event with the correct path', (done) => {
556
+ test('navigateToLiveboard should trigger the navigate event with the correct path', async (done) => {
557
557
  mockMessageChannel();
558
558
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
559
559
  ...defaultViewConfig,
560
560
  } as LiveboardViewConfig);
561
561
  const onSpy = jest.spyOn(liveboardEmbed, 'trigger');
562
- liveboardEmbed.prerenderGeneric();
562
+ await liveboardEmbed.prerenderGeneric();
563
563
  executeAfterWait(() => {
564
564
  const iframe = getIFrameEl();
565
565
  postMessageToParent(iframe.contentWindow, {
@@ -573,14 +573,14 @@ describe('Liveboard/viz embed tests', () => {
573
573
  });
574
574
  });
575
575
 
576
- test('navigateToLiveboard with preRender', (done) => {
576
+ test('navigateToLiveboard with preRender', async (done) => {
577
577
  mockMessageChannel();
578
578
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
579
579
  ...defaultViewConfig,
580
580
  preRenderId: 'test',
581
581
  } as LiveboardViewConfig);
582
582
  const onSpy = jest.spyOn(liveboardEmbed, 'trigger');
583
- liveboardEmbed.prerenderGeneric();
583
+ await liveboardEmbed.prerenderGeneric();
584
584
  executeAfterWait(() => {
585
585
  const iframe = getIFrameEl();
586
586
  postMessageToParent(iframe.contentWindow, {
@@ -604,7 +604,7 @@ describe('Liveboard/viz embed tests', () => {
604
604
  },
605
605
  ],
606
606
  } as LiveboardViewConfig);
607
- liveboardEmbed.render();
607
+ await liveboardEmbed.render();
608
608
  await executeAfterWait(() => {
609
609
  expectUrlMatchesWithParams(
610
610
  getIFrameSrc(),
@@ -637,7 +637,7 @@ describe('Liveboard/viz embed tests', () => {
637
637
  ...defaultViewConfig,
638
638
  liveboardId,
639
639
  } as LiveboardViewConfig);
640
- liveboardEmbed.render();
640
+ await liveboardEmbed.render();
641
641
  await executeAfterWait(() => {
642
642
  const result = liveboardEmbed.trigger(HostEvent.SetActiveTab, {
643
643
  tabId: newActiveTabId,
@@ -650,13 +650,13 @@ describe('Liveboard/viz embed tests', () => {
650
650
  });
651
651
 
652
652
  describe('PreRender flow for liveboard embed', () => {
653
- test('it should preRender generic with liveboard id is not passed', (done) => {
653
+ test('it should preRender generic with liveboard id is not passed', async (done) => {
654
654
  const consoleSpy = jest.spyOn(console, 'error');
655
655
  const libEmbed = new LiveboardEmbed(getRootEl(), {
656
656
  preRenderId: 'testPreRender',
657
657
  });
658
658
  const prerenderGenericSpy = jest.spyOn(libEmbed, 'prerenderGeneric');
659
- libEmbed.preRender();
659
+ await libEmbed.preRender();
660
660
  executeAfterWait(() => {
661
661
  const iFrame = document.getElementById(
662
662
  libEmbed.getPreRenderIds().child,
@@ -735,7 +735,7 @@ describe('Liveboard/viz embed tests', () => {
735
735
  };
736
736
  });
737
737
 
738
- libEmbed.preRender();
738
+ await libEmbed.preRender();
739
739
 
740
740
  await waitFor(() => !!getIFrameEl());
741
741
 
@@ -750,7 +750,7 @@ describe('Liveboard/viz embed tests', () => {
750
750
  liveboardId: testLiveboardId,
751
751
  });
752
752
  const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
753
- newLibEmbed.showPreRender();
753
+ await newLibEmbed.showPreRender();
754
754
 
755
755
  executeAfterWait(() => {
756
756
  const iFrame = document.getElementById(
@@ -776,7 +776,7 @@ describe('Liveboard/viz embed tests', () => {
776
776
  ...defaultViewConfig,
777
777
  vizId: 'testViz',
778
778
  });
779
- liveboardEmbed.render();
779
+ await liveboardEmbed.render();
780
780
  mockProcessTrigger.mockResolvedValue({ session: 'test' });
781
781
  await executeAfterWait(async () => {
782
782
  await liveboardEmbed.trigger(
@@ -21,7 +21,7 @@ import {
21
21
  } from '../types';
22
22
  import { getQueryParamString, isUndefined } from '../utils';
23
23
  import { getAuthPromise } from './base';
24
- import { V1Embed } from './ts-embed';
24
+ import { TsEmbed, V1Embed } from './ts-embed';
25
25
  import { addPreviewStylesIfNotPresent } from '../utils/global-styles';
26
26
  import { TriggerPayload, TriggerResponse } from './hostEventClient/contracts';
27
27
 
@@ -635,12 +635,11 @@ export class LiveboardEmbed extends V1Embed {
635
635
  }
636
636
  }
637
637
 
638
- protected handleRenderForPrerender(): void {
638
+ protected async handleRenderForPrerender(): Promise<TsEmbed> {
639
639
  if (isUndefined(this.viewConfig.liveboardId)) {
640
- this.prerenderGeneric();
641
- return;
640
+ return this.prerenderGeneric();
642
641
  }
643
- super.handleRenderForPrerender();
642
+ return super.handleRenderForPrerender();
644
643
  }
645
644
 
646
645
  /**
@@ -670,7 +669,7 @@ export class LiveboardEmbed extends V1Embed {
670
669
  * visualization ID and the runtime filters.
671
670
  */
672
671
  public async render(): Promise<LiveboardEmbed> {
673
- super.render();
672
+ await super.render();
674
673
 
675
674
  const src = this.getIFrameSrc();
676
675
  await this.renderV1Embed(src);
package/src/embed/sage.ts CHANGED
@@ -206,8 +206,7 @@ export class SageEmbed extends V1Embed {
206
206
  * @returns {SageEmbed} Eureka/Sage embed
207
207
  */
208
208
  public async render(): Promise<SageEmbed> {
209
- super.render();
210
-
209
+ await super.render();
211
210
  const src = this.getIFrameSrc();
212
211
  await this.renderV1Embed(src);
213
212
 
@@ -174,8 +174,7 @@ export class SearchBarEmbed extends TsEmbed {
174
174
  * Render the embedded ThoughtSpot search
175
175
  */
176
176
  public async render(): Promise<SearchBarEmbed> {
177
- super.render();
178
-
177
+ await super.render();
179
178
  const src = this.getIFrameSrc();
180
179
  await this.renderIFrame(src);
181
180
  return this;
@@ -482,9 +482,8 @@ export class SearchEmbed extends TsEmbed {
482
482
  * Render the embedded ThoughtSpot search
483
483
  */
484
484
  public async render(): Promise<SearchEmbed> {
485
- super.render();
485
+ await super.render();
486
486
  const { answerId } = this.viewConfig;
487
-
488
487
  const src = this.getIFrameSrc();
489
488
  await this.renderIFrame(src);
490
489
  getAuthPromise().then(() => {
@@ -1,4 +1,6 @@
1
1
  /* eslint-disable dot-notation */
2
+ import { resetValueFromWindow } from '../utils';
3
+ import { ERROR_MESSAGE } from '../errors';
2
4
  import { resetCachedAuthToken } from '../authToken';
3
5
  import {
4
6
  AuthType,
@@ -1249,14 +1251,14 @@ describe('Unit test case for ts embed', () => {
1249
1251
  });
1250
1252
  });
1251
1253
 
1252
- beforeEach(() => {
1254
+ beforeEach(async () => {
1253
1255
  jest.spyOn(baseInstance, 'getAuthPromise').mockRejectedValueOnce(false);
1254
1256
  const tsEmbed = new SearchEmbed(getRootEl(), {});
1255
1257
  const iFrame: any = document.createElement('div');
1256
1258
  iFrame.contentWindow = null;
1257
1259
  jest.spyOn(document, 'createElement').mockReturnValueOnce(iFrame);
1258
1260
  spyOn(logger, 'error');
1259
- tsEmbed.render();
1261
+ await tsEmbed.render();
1260
1262
  });
1261
1263
 
1262
1264
  test('mixpanel should call with VISUAL_SDK_RENDER_FAILED', () => {
@@ -1433,7 +1435,7 @@ describe('Unit test case for ts embed', () => {
1433
1435
  test('Error should be true', async () => {
1434
1436
  spyOn(logger, 'error');
1435
1437
  const tsEmbed = new SearchEmbed(getRootEl(), {});
1436
- tsEmbed.render();
1438
+ await tsEmbed.render();
1437
1439
  expect(tsEmbed['isError']).toBe(true);
1438
1440
  expect(logger.error).toHaveBeenCalledWith(
1439
1441
  'You need to init the ThoughtSpot SDK module first',
@@ -1446,11 +1448,11 @@ describe('Unit test case for ts embed', () => {
1446
1448
  jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
1447
1449
  });
1448
1450
 
1449
- test('when isRendered is true than isError will be true', () => {
1451
+ test('when isRendered is true than isError will be true', async () => {
1450
1452
  spyOn(logger, 'warn');
1451
1453
  const viEmbedIns = new tsEmbedInstance.V1Embed(getRootEl(), defaultViewConfig);
1452
1454
  expect(viEmbedIns['isError']).toBe(false);
1453
- viEmbedIns.render();
1455
+ await viEmbedIns.render();
1454
1456
  viEmbedIns.on(EmbedEvent.CustomAction, jest.fn()).render();
1455
1457
  expect(logger.warn).toHaveBeenCalledWith(
1456
1458
  'Please register event handlers before calling render',
@@ -2382,4 +2384,80 @@ describe('Unit test case for ts embed', () => {
2382
2384
  jest.spyOn(baseInstance, 'notifyAuthFailure').mockClear();
2383
2385
  });
2384
2386
  });
2387
+
2388
+ describe('Renders should wait for init to completed', () => {
2389
+ const errorSpy = jest.spyOn(logger, 'error').mockResolvedValue(true);
2390
+ beforeEach(() => {
2391
+ errorSpy.mockClear();
2392
+ resetValueFromWindow('initFlagKey');
2393
+ baseInstance.createAndSetInitPromise();
2394
+ document.body.innerHTML = getDocumentBody();
2395
+ });
2396
+ test('Pre-render should wait for init to complete', async () => {
2397
+ const lib = new LiveboardEmbed(getRootEl(), { preRenderId: 'test', liveboardId: 'test' });
2398
+ lib.preRender();
2399
+ await executeAfterWait(() => {
2400
+ expect(errorSpy).toHaveBeenCalledWith(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
2401
+ expect(getRootEl().innerHTML).toContain('');
2402
+ });
2403
+
2404
+ const iframeBeforeInit = getIFrameEl();
2405
+ expect(iframeBeforeInit).toBe(null);
2406
+
2407
+ init({
2408
+ thoughtSpotHost: 'tshost',
2409
+ authType: AuthType.None,
2410
+ });
2411
+
2412
+ await waitFor(() => !!getIFrameEl());
2413
+ const preRenderId = lib.getPreRenderIds().wrapper;
2414
+ expect(document.getElementById(preRenderId)).not.toBe(null);
2415
+ const iframeAfterInit = getIFrameEl();
2416
+ expect(iframeAfterInit).not.toBe(null);
2417
+ });
2418
+
2419
+ test('Render should wait for init to complete', async () => {
2420
+ const lib = new LiveboardEmbed(getRootEl(), { liveboardId: 'test' });
2421
+ lib.render();
2422
+ await executeAfterWait(() => {
2423
+ expect(errorSpy).toHaveBeenCalledWith(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
2424
+ expect(getRootEl().innerHTML).toContain('');
2425
+ });
2426
+
2427
+ const iframeBeforeInit = getIFrameEl();
2428
+ expect(iframeBeforeInit).toBe(null);
2429
+
2430
+ init({
2431
+ thoughtSpotHost: 'tshost',
2432
+ authType: AuthType.None,
2433
+ });
2434
+
2435
+ await waitFor(() => !!getIFrameEl());
2436
+ expect(getRootEl()).not.toBe(null);
2437
+ const iframeAfterInit = getIFrameEl();
2438
+ expect(iframeAfterInit).not.toBe(null);
2439
+ });
2440
+
2441
+ test('Pre Render Generic should wait for init to complete', async () => {
2442
+ const lib = new LiveboardEmbed(getRootEl(), {});
2443
+ lib.prerenderGeneric();
2444
+ await executeAfterWait(() => {
2445
+ expect(errorSpy).toHaveBeenCalledWith(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
2446
+ expect(getRootEl().innerHTML).toContain('');
2447
+ });
2448
+
2449
+ const iframeBeforeInit = getIFrameEl();
2450
+ expect(iframeBeforeInit).toBe(null);
2451
+
2452
+ init({
2453
+ thoughtSpotHost: 'tshost',
2454
+ authType: AuthType.None,
2455
+ });
2456
+
2457
+ await waitFor(() => !!getIFrameEl());
2458
+ expect(getRootEl()).not.toBe(null);
2459
+ const iframeAfterInit = getIFrameEl();
2460
+ expect(iframeAfterInit).not.toBe(null);
2461
+ });
2462
+ });
2385
2463
  });