@thoughtspot/visual-embed-sdk 1.24.0-preRender.2 → 1.24.0-preRender.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 (139) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/app.d.ts +1 -3
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +2 -8
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/app.spec.js +8 -0
  7. package/cjs/src/embed/app.spec.js.map +1 -1
  8. package/cjs/src/embed/liveboard.d.ts +3 -3
  9. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  10. package/cjs/src/embed/liveboard.js +26 -9
  11. package/cjs/src/embed/liveboard.js.map +1 -1
  12. package/cjs/src/embed/liveboard.spec.js +56 -0
  13. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  14. package/cjs/src/embed/sage.d.ts +1 -3
  15. package/cjs/src/embed/sage.d.ts.map +1 -1
  16. package/cjs/src/embed/sage.js +2 -8
  17. package/cjs/src/embed/sage.js.map +1 -1
  18. package/cjs/src/embed/search.d.ts +1 -4
  19. package/cjs/src/embed/search.d.ts.map +1 -1
  20. package/cjs/src/embed/search.js +2 -9
  21. package/cjs/src/embed/search.js.map +1 -1
  22. package/cjs/src/embed/ts-embed.d.ts +54 -18
  23. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  24. package/cjs/src/embed/ts-embed.js +134 -93
  25. package/cjs/src/embed/ts-embed.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.spec.js +102 -0
  27. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  28. package/cjs/src/react/all-types-export.d.ts +1 -1
  29. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  30. package/cjs/src/react/all-types-export.js +6 -2
  31. package/cjs/src/react/all-types-export.js.map +1 -1
  32. package/cjs/src/react/index.d.ts +103 -5
  33. package/cjs/src/react/index.d.ts.map +1 -1
  34. package/cjs/src/react/index.js +81 -1
  35. package/cjs/src/react/index.js.map +1 -1
  36. package/cjs/src/react/index.spec.js +22 -0
  37. package/cjs/src/react/index.spec.js.map +1 -1
  38. package/cjs/src/types.d.ts +18 -0
  39. package/cjs/src/types.d.ts.map +1 -1
  40. package/cjs/src/types.js.map +1 -1
  41. package/cjs/src/utils.d.ts +27 -0
  42. package/cjs/src/utils.d.ts.map +1 -1
  43. package/cjs/src/utils.js +31 -0
  44. package/cjs/src/utils.js.map +1 -1
  45. package/cjs/src/utils.spec.d.ts +0 -3
  46. package/cjs/src/utils.spec.d.ts.map +1 -1
  47. package/cjs/src/utils.spec.js +59 -6
  48. package/cjs/src/utils.spec.js.map +1 -1
  49. package/dist/src/embed/app.d.ts +1 -3
  50. package/dist/src/embed/app.d.ts.map +1 -1
  51. package/dist/src/embed/liveboard.d.ts +3 -3
  52. package/dist/src/embed/liveboard.d.ts.map +1 -1
  53. package/dist/src/embed/sage.d.ts +1 -3
  54. package/dist/src/embed/sage.d.ts.map +1 -1
  55. package/dist/src/embed/search.d.ts +1 -4
  56. package/dist/src/embed/search.d.ts.map +1 -1
  57. package/dist/src/embed/ts-embed.d.ts +54 -18
  58. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  59. package/dist/src/react/all-types-export.d.ts +1 -1
  60. package/dist/src/react/all-types-export.d.ts.map +1 -1
  61. package/dist/src/react/index.d.ts +103 -5
  62. package/dist/src/react/index.d.ts.map +1 -1
  63. package/dist/src/types.d.ts +18 -0
  64. package/dist/src/types.d.ts.map +1 -1
  65. package/dist/src/utils.d.ts +27 -0
  66. package/dist/src/utils.d.ts.map +1 -1
  67. package/dist/src/utils.spec.d.ts +0 -3
  68. package/dist/src/utils.spec.d.ts.map +1 -1
  69. package/dist/tsembed-react.es.js +17590 -243
  70. package/dist/tsembed-react.js +17590 -242
  71. package/dist/tsembed.es.js +17519 -252
  72. package/dist/tsembed.js +17519 -252
  73. package/dist/visual-embed-sdk-react-full.d.ts +187 -32
  74. package/dist/visual-embed-sdk-react.d.ts +187 -32
  75. package/dist/visual-embed-sdk.d.ts +84 -27
  76. package/lib/package.json +1 -1
  77. package/lib/src/embed/app.d.ts +1 -3
  78. package/lib/src/embed/app.d.ts.map +1 -1
  79. package/lib/src/embed/app.js +2 -8
  80. package/lib/src/embed/app.js.map +1 -1
  81. package/lib/src/embed/app.spec.js +8 -0
  82. package/lib/src/embed/app.spec.js.map +1 -1
  83. package/lib/src/embed/liveboard.d.ts +3 -3
  84. package/lib/src/embed/liveboard.d.ts.map +1 -1
  85. package/lib/src/embed/liveboard.js +25 -9
  86. package/lib/src/embed/liveboard.js.map +1 -1
  87. package/lib/src/embed/liveboard.spec.js +57 -1
  88. package/lib/src/embed/liveboard.spec.js.map +1 -1
  89. package/lib/src/embed/sage.d.ts +1 -3
  90. package/lib/src/embed/sage.d.ts.map +1 -1
  91. package/lib/src/embed/sage.js +2 -8
  92. package/lib/src/embed/sage.js.map +1 -1
  93. package/lib/src/embed/search.d.ts +1 -4
  94. package/lib/src/embed/search.d.ts.map +1 -1
  95. package/lib/src/embed/search.js +2 -9
  96. package/lib/src/embed/search.js.map +1 -1
  97. package/lib/src/embed/ts-embed.d.ts +54 -18
  98. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  99. package/lib/src/embed/ts-embed.js +134 -93
  100. package/lib/src/embed/ts-embed.js.map +1 -1
  101. package/lib/src/embed/ts-embed.spec.js +102 -0
  102. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  103. package/lib/src/react/all-types-export.d.ts +1 -1
  104. package/lib/src/react/all-types-export.d.ts.map +1 -1
  105. package/lib/src/react/all-types-export.js +1 -1
  106. package/lib/src/react/all-types-export.js.map +1 -1
  107. package/lib/src/react/index.d.ts +103 -5
  108. package/lib/src/react/index.d.ts.map +1 -1
  109. package/lib/src/react/index.js +80 -0
  110. package/lib/src/react/index.js.map +1 -1
  111. package/lib/src/react/index.spec.js +23 -1
  112. package/lib/src/react/index.spec.js.map +1 -1
  113. package/lib/src/types.d.ts +18 -0
  114. package/lib/src/types.d.ts.map +1 -1
  115. package/lib/src/types.js.map +1 -1
  116. package/lib/src/utils.d.ts +27 -0
  117. package/lib/src/utils.d.ts.map +1 -1
  118. package/lib/src/utils.js +31 -0
  119. package/lib/src/utils.js.map +1 -1
  120. package/lib/src/utils.spec.d.ts +0 -3
  121. package/lib/src/utils.spec.d.ts.map +1 -1
  122. package/lib/src/utils.spec.js +60 -7
  123. package/lib/src/utils.spec.js.map +1 -1
  124. package/lib/src/visual-embed-sdk.d.ts +84 -27
  125. package/package.json +1 -1
  126. package/src/embed/app.spec.ts +8 -0
  127. package/src/embed/app.ts +6 -11
  128. package/src/embed/liveboard.spec.ts +76 -1
  129. package/src/embed/liveboard.ts +28 -12
  130. package/src/embed/sage.ts +2 -11
  131. package/src/embed/search.ts +2 -12
  132. package/src/embed/ts-embed.spec.ts +127 -0
  133. package/src/embed/ts-embed.ts +169 -123
  134. package/src/react/all-types-export.ts +5 -1
  135. package/src/react/index.spec.tsx +42 -1
  136. package/src/react/index.tsx +120 -17
  137. package/src/types.ts +19 -0
  138. package/src/utils.spec.ts +78 -7
  139. package/src/utils.ts +29 -1
@@ -8,6 +8,24 @@ import EventEmitter from 'eventemitter3';
8
8
 
9
9
  interface SearchProps extends EmbedProps, SearchViewConfig {
10
10
  }
11
+ interface PreRenderProps {
12
+ /**
13
+ * PreRender id to be used for PreRendering the embed.
14
+ * Use PreRender to render the embed in the background and then
15
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
16
+ *
17
+ * @example
18
+ * ```js
19
+ * const embed = new LiveboardEmbed('#embed', {
20
+ * ... // other liveboard view config
21
+ * preRenderId: "preRenderId-123"
22
+ * });
23
+ * embed.showPreRender();
24
+ * ```
25
+ * @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl
26
+ */
27
+ preRenderId: string;
28
+ }
11
29
  /**
12
30
  * React component for Search Embed.
13
31
  *
@@ -22,6 +40,7 @@ interface SearchProps extends EmbedProps, SearchViewConfig {
22
40
  * ```
23
41
  */
24
42
  export const SearchEmbed: React.ForwardRefExoticComponent<SearchProps & React.RefAttributes<_SearchEmbed>>;
43
+ export const PreRenderedSearchEmbed: React.ForwardRefExoticComponent<SearchProps & PreRenderProps & React.RefAttributes<_SearchEmbed>>;
25
44
  interface AppProps extends EmbedProps, AppViewConfig {
26
45
  }
27
46
  /**
@@ -39,7 +58,26 @@ interface AppProps extends EmbedProps, AppViewConfig {
39
58
  * ```
40
59
  */
41
60
  export const AppEmbed: React.ForwardRefExoticComponent<AppProps & React.RefAttributes<_AppEmbed>>;
42
- export const PreRenderedAppEmbed: React.ForwardRefExoticComponent<AppProps & React.RefAttributes<_AppEmbed>>;
61
+ /**
62
+ * React component for PreRendered Liveboard embed.
63
+ *
64
+ * PreRenderedAppEmbed will preRender the SearchBarEmbed and will be hidden by
65
+ * default.
66
+ *
67
+ * AppEmbed with preRenderId passed will call showPreRender on the embed.
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * function LandingPageComponent() {
72
+ * return <PreRenderedAppEmbed preRenderId="someId" showPrimaryNavbar={false} />
73
+ * }
74
+ * ```
75
+ * function MyComponent() {
76
+ * return <AppEmbed preRenderId="someId" showPrimaryNavbar={false} />
77
+ * }
78
+ * ```
79
+ */
80
+ export const PreRenderedAppEmbed: React.ForwardRefExoticComponent<AppProps & PreRenderProps & React.RefAttributes<_AppEmbed>>;
43
81
  interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
44
82
  }
45
83
  /**
@@ -59,8 +97,30 @@ interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
59
97
  */
60
98
  export const LiveboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & React.RefAttributes<_LiveboardEmbed>>;
61
99
  export const PinboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & React.RefAttributes<_LiveboardEmbed>>;
62
- export const PreRenderedLiveboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & React.RefAttributes<_LiveboardEmbed>>;
63
- export const PreRenderedPinboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & React.RefAttributes<_LiveboardEmbed>>;
100
+ /**
101
+ * React component for PreRendered Liveboard embed.
102
+ *
103
+ * PreRenderedLiveboardEmbed will preRender the liveboard and will be hidden by default.
104
+ *
105
+ * LiveboardEmbed with preRenderId passed will call showPreRender on the embed.
106
+ *
107
+ * If LiveboardEmbed is rendered before PreRenderedLiveboardEmbed is rendered it
108
+ * tries to preRender the LiveboardEmbed, so it is recommended to use pass the
109
+ * liveboardId to both the components.
110
+ *
111
+ * @example
112
+ * ```tsx
113
+ * function LandingPageComponent() {
114
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
115
+ * }
116
+ * ```
117
+ * function MyComponent() {
118
+ * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
119
+ * }
120
+ * ```
121
+ */
122
+ export const PreRenderedLiveboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React.RefAttributes<_LiveboardEmbed>>;
123
+ export const PreRenderedPinboardEmbed: React.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React.RefAttributes<_LiveboardEmbed>>;
64
124
  interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
65
125
  }
66
126
  /**
@@ -77,7 +137,26 @@ interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
77
137
  * ```
78
138
  */
79
139
  export const SearchBarEmbed: React.ForwardRefExoticComponent<SearchBarEmbedProps & React.RefAttributes<_SearchBarEmbed>>;
80
- export const PreRenderedSearchBarEmbed: React.ForwardRefExoticComponent<SearchBarEmbedProps & React.RefAttributes<_SearchBarEmbed>>;
140
+ /**
141
+ * React component for PreRendered Liveboard embed.
142
+ *
143
+ * PreRenderedSearchBarEmbed will preRender the SearchBarEmbed and will be hidden by
144
+ * default.
145
+ *
146
+ * SearchBarEmbed with preRenderId passed will call showPreRender on the embed.
147
+ *
148
+ * @example
149
+ * ```tsx
150
+ * function LandingPageComponent() {
151
+ * return <PreRenderedSearchBarEmbed preRenderId="someId" dataSource="dataSourceId" />
152
+ * }
153
+ * ```
154
+ * function MyComponent() {
155
+ * return <SearchBarEmbed preRenderId="someId" dataSource="dataSourceId" />
156
+ * }
157
+ * ```
158
+ */
159
+ export const PreRenderedSearchBarEmbed: React.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React.RefAttributes<_SearchBarEmbed>>;
81
160
  interface SageEmbedProps extends EmbedProps, SageViewConfig {
82
161
  }
83
162
  /**
@@ -94,7 +173,26 @@ interface SageEmbedProps extends EmbedProps, SageViewConfig {
94
173
  * ```
95
174
  */
96
175
  export const SageEmbed: React.ForwardRefExoticComponent<SageEmbedProps & React.RefAttributes<_SageEmbed>>;
97
- export const PreRenderedSageEmbed: React.ForwardRefExoticComponent<SageEmbedProps & React.RefAttributes<_SageEmbed>>;
176
+ /**
177
+ * React component for PreRendered Liveboard embed.
178
+ *
179
+ * PreRenderedSageEmbed will preRender the SearchBarEmbed and will be hidden by
180
+ * default.
181
+ *
182
+ * SageEmbed with preRenderId passed will call showPreRender on the embed.
183
+ *
184
+ * @example
185
+ * ```tsx
186
+ * function LandingPageComponent() {
187
+ * return <PreRenderedSageEmbed preRenderId="someId" showObjectResults={true} />
188
+ * }
189
+ * ```
190
+ * function MyComponent() {
191
+ * return <SageEmbed preRenderId="someId" showObjectResults={true} />
192
+ * }
193
+ * ```
194
+ */
195
+ export const PreRenderedSageEmbed: React.ForwardRefExoticComponent<SageEmbedProps & PreRenderProps & React.RefAttributes<_SageEmbed>>;
98
196
  type EmbedComponent = typeof SearchEmbed | typeof AppEmbed | typeof LiveboardEmbed | typeof SearchBarEmbed | typeof SageEmbed;
99
197
  /**
100
198
  * Get a reference to the embed component to trigger events on the component.
@@ -257,11 +355,9 @@ export declare class SageEmbed extends V1Embed {
257
355
  /**
258
356
  * Render the embedded ThoughtSpot Sage
259
357
  *
260
- * @param showPreRenderByDefault
261
358
  * @returns {SageEmbed} Eureka/Sage embed
262
359
  */
263
- render(showPreRenderByDefault?: boolean): SageEmbed;
264
- preRender(showPreRenderByDefault?: boolean): SageEmbed;
360
+ render(): SageEmbed;
265
361
  }
266
362
 
267
363
  /**
@@ -388,11 +484,8 @@ export declare class SearchEmbed extends TsEmbed {
388
484
  protected getEmbedParams(): string;
389
485
  /**
390
486
  * Render the embedded ThoughtSpot search
391
- *
392
- * @param showPreRenderByDefault
393
487
  */
394
- render(showPreRenderByDefault?: boolean): SearchEmbed;
395
- preRender(showPreRenderByDefault?: boolean): SearchEmbed;
488
+ render(): SearchEmbed;
396
489
  }
397
490
 
398
491
  /**
@@ -584,10 +677,8 @@ export declare class AppEmbed extends V1Embed {
584
677
  *
585
678
  * @param renderOptions An object containing the page ID
586
679
  * to be embedded.
587
- * @param showPreRenderByDefault
588
680
  */
589
- render(showPreRenderByDefault?: boolean): AppEmbed;
590
- preRender(showPreRenderByDefault?: boolean): AppEmbed;
681
+ render(): AppEmbed;
591
682
  }
592
683
 
593
684
  /**
@@ -711,6 +802,8 @@ export declare class LiveboardEmbed extends V1Embed {
711
802
  * embedded Liveboard or visualization.
712
803
  */
713
804
  protected getEmbedParams(): string;
805
+ protected beforePrerenderVisible(): void;
806
+ protected handleRenderForPrerender(): void;
714
807
  /**
715
808
  * Triggers an event to the embedded app
716
809
  *
@@ -723,10 +816,8 @@ export declare class LiveboardEmbed extends V1Embed {
723
816
  *
724
817
  * @param renderOptions An object specifying the Liveboard ID,
725
818
  * visualization ID and the runtime filters.
726
- * @param showPreRenderByDefault
727
819
  */
728
- render(showPreRenderByDefault?: boolean): LiveboardEmbed;
729
- preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
820
+ render(): LiveboardEmbed;
730
821
  navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string): void;
731
822
  }
732
823
  /**
@@ -1546,6 +1637,24 @@ export interface ViewConfig {
1546
1637
  * @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl
1547
1638
  */
1548
1639
  preRenderId?: string;
1640
+ /**
1641
+ * Determines whether the PreRender component should dynamically track the size
1642
+ * of its embedding element and adjust its own size accordingly.
1643
+ * Enabling this option allows the PreRender component to automatically adapt
1644
+ * its dimensions based on changes to the size of the embedding element.
1645
+ *
1646
+ * @type {boolean}
1647
+ * @default true
1648
+ * @example
1649
+ * // Enable tracking PreRender size in the configuration
1650
+ * const config = {
1651
+ * trackPreRenderSize: true,
1652
+ * };
1653
+ *
1654
+ * // Instantiate an object with the configuration
1655
+ * const myComponent = new MyComponent(config);
1656
+ */
1657
+ trackPreRenderSize?: boolean;
1549
1658
  }
1550
1659
  /**
1551
1660
  * MessagePayload: Embed event payload: message type, data and status (start/end)
@@ -3923,6 +4032,21 @@ export declare const THOUGHTSPOT_PARAM_PREFIX = "ts-";
3923
4032
  * React+GraphQL
3924
4033
  */
3925
4034
  export declare class TsEmbed {
4035
+ /**
4036
+ * The DOM node which was inserted by the SDK to either
4037
+ * render the iframe or display an error message.
4038
+ * This is useful for removing the DOM node when the
4039
+ * embed instance is destroyed.
4040
+ */
4041
+ protected insertedDomEl: Node;
4042
+ /**
4043
+ * The DOM node where the ThoughtSpot app is to be embedded.
4044
+ */
4045
+ protected el: Element;
4046
+ /**
4047
+ * The key to store the embed instance in the DOM node
4048
+ */
4049
+ protected embedNodeKey: string;
3926
4050
  protected isAppInitialized: boolean;
3927
4051
  /**
3928
4052
  * A reference to the iframe within which the ThoughtSpot app
@@ -3937,6 +4061,10 @@ export declare class TsEmbed {
3937
4061
  protected thoughtSpotHost: string;
3938
4062
  protected thoughtSpotV2Base: string;
3939
4063
  protected embedComponentType: string;
4064
+ /**
4065
+ * A flag that is set to true post render.
4066
+ */
4067
+ protected isRendered: boolean;
3940
4068
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
3941
4069
  /**
3942
4070
  * Handles errors within the SDK
@@ -3969,29 +4097,21 @@ export declare class TsEmbed {
3969
4097
  protected getEmbedParams(): string;
3970
4098
  protected getRootIframeSrc(): string;
3971
4099
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
3972
- protected handleInsertionIntoDOM(child: string | Node, showPreRenderByDefault?: boolean): void;
4100
+ protected handleInsertionIntoDOM(child: string | Node): void;
3973
4101
  /**
3974
4102
  * Renders the embedded ThoughtSpot app in an iframe and sets up
3975
4103
  * event listeners.
3976
4104
  *
3977
4105
  * @param url - The URL of the embedded ThoughtSpot app.
3978
- * @param showPreRenderByDefault - The flag to show the preRender by default.
3979
4106
  */
3980
- protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
3981
- getPreRenderIds(): {
3982
- wrapper: string;
3983
- child: string;
3984
- };
4107
+ protected renderIFrame(url: string): Promise<any>;
3985
4108
  protected createPreRenderWrapper(): HTMLDivElement;
3986
4109
  protected preRenderWrapper: HTMLElement;
3987
4110
  protected preRenderChild: HTMLElement;
3988
4111
  protected connectPreRendered(): boolean;
3989
4112
  protected isPreRenderAvailable(): boolean;
3990
4113
  protected createPreRenderChild(child: string | Node): HTMLElement;
3991
- protected insertIntoDOMForPreRender(child: string | Node, showPreRenderByDefault?: boolean): void;
3992
- hidePreRender(): void;
3993
- showPreRender(): void;
3994
- syncPreRenderStyle(): void;
4114
+ protected insertIntoDOMForPreRender(child: string | Node): void;
3995
4115
  protected insertIntoDOM(child: string | Node): void;
3996
4116
  /**
3997
4117
  * Sets the height of the iframe
@@ -4088,10 +4208,11 @@ export declare class TsEmbed {
4088
4208
  * @param args
4089
4209
  */
4090
4210
  render(): TsEmbed;
4211
+ protected handleRenderForPrerender(): void;
4091
4212
  /**
4092
4213
  * Creates the preRender shell
4093
4214
  *
4094
- * @param showPreRenderByDefault
4215
+ * @param showPreRenderByDefault - Show the preRender after render, hidden by default
4095
4216
  */
4096
4217
  preRender(showPreRenderByDefault?: boolean): TsEmbed;
4097
4218
  /**
@@ -4118,6 +4239,41 @@ export declare class TsEmbed {
4118
4239
  * @returns
4119
4240
  */
4120
4241
  prerenderGeneric(): Promise<any>;
4242
+ protected beforePrerenderVisible(): void;
4243
+ /**
4244
+ * Displays the PreRender component.
4245
+ * If the component is not preRendered, it attempts to create and render it.
4246
+ * Also, synchronizes the style of the PreRender component with the embedding
4247
+ * element.
4248
+ */
4249
+ showPreRender(): void;
4250
+ /**
4251
+ * Synchronizes the style properties of the PreRender component with the embedding
4252
+ * element. This function adjusts the position, width, and height of the PreRender
4253
+ * component
4254
+ * to match the dimensions and position of the embedding element.
4255
+ *
4256
+ * @throws {Error} Throws an error if the embedding element (passed as domSelector)
4257
+ * is not defined or not found.
4258
+ */
4259
+ syncPreRenderStyle(): void;
4260
+ /**
4261
+ * Hides the PreRender component if it is available.
4262
+ * If the component is not preRendered, it issues a warning.
4263
+ */
4264
+ hidePreRender(): void;
4265
+ /**
4266
+ * Retrieves unique HTML element IDs for PreRender-related elements.
4267
+ * These IDs are constructed based on the provided 'preRenderId' from 'viewConfig'.
4268
+ *
4269
+ * @returns {object} An object containing the IDs for the PreRender elements.
4270
+ * @property {string} wrapper - The HTML element ID for the PreRender wrapper.
4271
+ * @property {string} child - The HTML element ID for the PreRender child.
4272
+ */
4273
+ getPreRenderIds(): {
4274
+ wrapper: string;
4275
+ child: string;
4276
+ };
4121
4277
  }
4122
4278
  /**
4123
4279
  * Base class for embedding v1 experience
@@ -4133,9 +4289,8 @@ export declare class V1Embed extends TsEmbed {
4133
4289
  * Render the app in an iframe and set up event handlers
4134
4290
  *
4135
4291
  * @param iframeSrc
4136
- * @param showPreRenderByDefault - if true the preRender will be shown by default
4137
4292
  */
4138
- protected renderV1Embed(iframeSrc: string, showPreRenderByDefault?: boolean): any;
4293
+ protected renderV1Embed(iframeSrc: string): Promise<any>;
4139
4294
  protected getRootIframeSrc(): string;
4140
4295
  /**
4141
4296
  * @inheritdoc
@@ -204,10 +204,8 @@ export class AppEmbed extends V1Embed {
204
204
  *
205
205
  * @param renderOptions An object containing the page ID
206
206
  * to be embedded.
207
- * @param showPreRenderByDefault
208
207
  */
209
- render(showPreRenderByDefault?: boolean): AppEmbed;
210
- preRender(showPreRenderByDefault?: boolean): AppEmbed;
208
+ render(): AppEmbed;
211
209
  }
212
210
 
213
211
  export interface executeTMLInput {
@@ -439,6 +437,8 @@ export class LiveboardEmbed extends V1Embed {
439
437
  * embedded Liveboard or visualization.
440
438
  */
441
439
  protected getEmbedParams(): string;
440
+ protected beforePrerenderVisible(): void;
441
+ protected handleRenderForPrerender(): void;
442
442
  /**
443
443
  * Triggers an event to the embedded app
444
444
  *
@@ -451,10 +451,8 @@ export class LiveboardEmbed extends V1Embed {
451
451
  *
452
452
  * @param renderOptions An object specifying the Liveboard ID,
453
453
  * visualization ID and the runtime filters.
454
- * @param showPreRenderByDefault
455
454
  */
456
- render(showPreRenderByDefault?: boolean): LiveboardEmbed;
457
- preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
455
+ render(): LiveboardEmbed;
458
456
  navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string): void;
459
457
  }
460
458
  /**
@@ -587,11 +585,8 @@ export class SearchEmbed extends TsEmbed {
587
585
  protected getEmbedParams(): string;
588
586
  /**
589
587
  * Render the embedded ThoughtSpot search
590
- *
591
- * @param showPreRenderByDefault
592
588
  */
593
- render(showPreRenderByDefault?: boolean): SearchEmbed;
594
- preRender(showPreRenderByDefault?: boolean): SearchEmbed;
589
+ render(): SearchEmbed;
595
590
  }
596
591
 
597
592
  /**
@@ -1606,6 +1601,24 @@ export interface ViewConfig {
1606
1601
  * @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl
1607
1602
  */
1608
1603
  preRenderId?: string;
1604
+ /**
1605
+ * Determines whether the PreRender component should dynamically track the size
1606
+ * of its embedding element and adjust its own size accordingly.
1607
+ * Enabling this option allows the PreRender component to automatically adapt
1608
+ * its dimensions based on changes to the size of the embedding element.
1609
+ *
1610
+ * @type {boolean}
1611
+ * @default true
1612
+ * @example
1613
+ * // Enable tracking PreRender size in the configuration
1614
+ * const config = {
1615
+ * trackPreRenderSize: true,
1616
+ * };
1617
+ *
1618
+ * // Instantiate an object with the configuration
1619
+ * const myComponent = new MyComponent(config);
1620
+ */
1621
+ trackPreRenderSize?: boolean;
1609
1622
  }
1610
1623
  /**
1611
1624
  * MessagePayload: Embed event payload: message type, data and status (start/end)
@@ -4401,11 +4414,9 @@ export class SageEmbed extends V1Embed {
4401
4414
  /**
4402
4415
  * Render the embedded ThoughtSpot Sage
4403
4416
  *
4404
- * @param showPreRenderByDefault
4405
4417
  * @returns {SageEmbed} Eureka/Sage embed
4406
4418
  */
4407
- render(showPreRenderByDefault?: boolean): SageEmbed;
4408
- preRender(showPreRenderByDefault?: boolean): SageEmbed;
4419
+ render(): SageEmbed;
4409
4420
  }
4410
4421
 
4411
4422
  export interface SessionInterface {
@@ -4482,6 +4493,21 @@ export const THOUGHTSPOT_PARAM_PREFIX = "ts-";
4482
4493
  * React+GraphQL
4483
4494
  */
4484
4495
  export class TsEmbed {
4496
+ /**
4497
+ * The DOM node which was inserted by the SDK to either
4498
+ * render the iframe or display an error message.
4499
+ * This is useful for removing the DOM node when the
4500
+ * embed instance is destroyed.
4501
+ */
4502
+ protected insertedDomEl: Node;
4503
+ /**
4504
+ * The DOM node where the ThoughtSpot app is to be embedded.
4505
+ */
4506
+ protected el: Element;
4507
+ /**
4508
+ * The key to store the embed instance in the DOM node
4509
+ */
4510
+ protected embedNodeKey: string;
4485
4511
  protected isAppInitialized: boolean;
4486
4512
  /**
4487
4513
  * A reference to the iframe within which the ThoughtSpot app
@@ -4496,6 +4522,10 @@ export class TsEmbed {
4496
4522
  protected thoughtSpotHost: string;
4497
4523
  protected thoughtSpotV2Base: string;
4498
4524
  protected embedComponentType: string;
4525
+ /**
4526
+ * A flag that is set to true post render.
4527
+ */
4528
+ protected isRendered: boolean;
4499
4529
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
4500
4530
  /**
4501
4531
  * Handles errors within the SDK
@@ -4528,29 +4558,21 @@ export class TsEmbed {
4528
4558
  protected getEmbedParams(): string;
4529
4559
  protected getRootIframeSrc(): string;
4530
4560
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
4531
- protected handleInsertionIntoDOM(child: string | Node, showPreRenderByDefault?: boolean): void;
4561
+ protected handleInsertionIntoDOM(child: string | Node): void;
4532
4562
  /**
4533
4563
  * Renders the embedded ThoughtSpot app in an iframe and sets up
4534
4564
  * event listeners.
4535
4565
  *
4536
4566
  * @param url - The URL of the embedded ThoughtSpot app.
4537
- * @param showPreRenderByDefault - The flag to show the preRender by default.
4538
4567
  */
4539
- protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
4540
- getPreRenderIds(): {
4541
- wrapper: string;
4542
- child: string;
4543
- };
4568
+ protected renderIFrame(url: string): Promise<any>;
4544
4569
  protected createPreRenderWrapper(): HTMLDivElement;
4545
4570
  protected preRenderWrapper: HTMLElement;
4546
4571
  protected preRenderChild: HTMLElement;
4547
4572
  protected connectPreRendered(): boolean;
4548
4573
  protected isPreRenderAvailable(): boolean;
4549
4574
  protected createPreRenderChild(child: string | Node): HTMLElement;
4550
- protected insertIntoDOMForPreRender(child: string | Node, showPreRenderByDefault?: boolean): void;
4551
- hidePreRender(): void;
4552
- showPreRender(): void;
4553
- syncPreRenderStyle(): void;
4575
+ protected insertIntoDOMForPreRender(child: string | Node): void;
4554
4576
  protected insertIntoDOM(child: string | Node): void;
4555
4577
  /**
4556
4578
  * Sets the height of the iframe
@@ -4647,10 +4669,11 @@ export class TsEmbed {
4647
4669
  * @param args
4648
4670
  */
4649
4671
  render(): TsEmbed;
4672
+ protected handleRenderForPrerender(): void;
4650
4673
  /**
4651
4674
  * Creates the preRender shell
4652
4675
  *
4653
- * @param showPreRenderByDefault
4676
+ * @param showPreRenderByDefault - Show the preRender after render, hidden by default
4654
4677
  */
4655
4678
  preRender(showPreRenderByDefault?: boolean): TsEmbed;
4656
4679
  /**
@@ -4677,6 +4700,41 @@ export class TsEmbed {
4677
4700
  * @returns
4678
4701
  */
4679
4702
  prerenderGeneric(): Promise<any>;
4703
+ protected beforePrerenderVisible(): void;
4704
+ /**
4705
+ * Displays the PreRender component.
4706
+ * If the component is not preRendered, it attempts to create and render it.
4707
+ * Also, synchronizes the style of the PreRender component with the embedding
4708
+ * element.
4709
+ */
4710
+ showPreRender(): void;
4711
+ /**
4712
+ * Synchronizes the style properties of the PreRender component with the embedding
4713
+ * element. This function adjusts the position, width, and height of the PreRender
4714
+ * component
4715
+ * to match the dimensions and position of the embedding element.
4716
+ *
4717
+ * @throws {Error} Throws an error if the embedding element (passed as domSelector)
4718
+ * is not defined or not found.
4719
+ */
4720
+ syncPreRenderStyle(): void;
4721
+ /**
4722
+ * Hides the PreRender component if it is available.
4723
+ * If the component is not preRendered, it issues a warning.
4724
+ */
4725
+ hidePreRender(): void;
4726
+ /**
4727
+ * Retrieves unique HTML element IDs for PreRender-related elements.
4728
+ * These IDs are constructed based on the provided 'preRenderId' from 'viewConfig'.
4729
+ *
4730
+ * @returns {object} An object containing the IDs for the PreRender elements.
4731
+ * @property {string} wrapper - The HTML element ID for the PreRender wrapper.
4732
+ * @property {string} child - The HTML element ID for the PreRender child.
4733
+ */
4734
+ getPreRenderIds(): {
4735
+ wrapper: string;
4736
+ child: string;
4737
+ };
4680
4738
  }
4681
4739
  /**
4682
4740
  * Base class for embedding v1 experience
@@ -4692,9 +4750,8 @@ export class V1Embed extends TsEmbed {
4692
4750
  * Render the app in an iframe and set up event handlers
4693
4751
  *
4694
4752
  * @param iframeSrc
4695
- * @param showPreRenderByDefault - if true the preRender will be shown by default
4696
4753
  */
4697
- protected renderV1Embed(iframeSrc: string, showPreRenderByDefault?: boolean): any;
4754
+ protected renderV1Embed(iframeSrc: string): Promise<any>;
4698
4755
  protected getRootIframeSrc(): string;
4699
4756
  /**
4700
4757
  * @inheritdoc
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.24.0-preRender.2",
3
+ "version": "1.24.0-preRender.4",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -212,9 +212,7 @@ export declare class AppEmbed extends V1Embed {
212
212
  *
213
213
  * @param renderOptions An object containing the page ID
214
214
  * to be embedded.
215
- * @param showPreRenderByDefault
216
215
  */
217
- render(showPreRenderByDefault?: boolean): AppEmbed;
218
- preRender(showPreRenderByDefault?: boolean): AppEmbed;
216
+ render(): AppEmbed;
219
217
  }
220
218
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACI,WAAW,EAAa,UAAU,EAAc,cAAc,EACxE,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AAEH,oBAAY,IAAI;IACZ;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,UAAU,eAAe;IACzB;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,aAAa;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACjC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IAEpC,OAAO,CAAC,aAAa,CAAU;IAE/B,SAAS,CAAC,kBAAkB,SAAc;gBAG9B,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAS/D;;;OAGG;IACH,SAAS,CAAC,cAAc;IAmDxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,SAAU,cAAc,UAElD;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAKzC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;;;;OAWG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAsBpE;;;;;;OAMG;IACI,MAAM,CAAC,sBAAsB,UAAQ,GAAG,QAAQ;IAQhD,SAAS,CAAC,sBAAsB,UAAQ,GAAG,QAAQ;CAK7D"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACI,WAAW,EAAa,UAAU,EAAc,cAAc,EACxE,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AAEH,oBAAY,IAAI;IACZ;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,OAAO,YAAY;IACnB;;OAEG;IACH,UAAU,eAAe;IACzB;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,aAAa;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACjC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IAEpC,OAAO,CAAC,aAAa,CAAU;IAE/B,SAAS,CAAC,kBAAkB,SAAc;gBAG9B,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAS/D;;;OAGG;IACH,SAAS,CAAC,cAAc;IAmDxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,SAAU,cAAc,UAEnD;IAED,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAOzC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;;;;OAWG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAsBpE;;;;;OAKG;IACI,MAAM,IAAI,QAAQ;CAO5B"}
@@ -207,17 +207,11 @@ export class AppEmbed extends V1Embed {
207
207
  *
208
208
  * @param renderOptions An object containing the page ID
209
209
  * to be embedded.
210
- * @param showPreRenderByDefault
211
210
  */
212
- render(showPreRenderByDefault = false) {
211
+ render() {
213
212
  super.render();
214
213
  const src = this.getIFrameSrc();
215
- this.renderV1Embed(src, showPreRenderByDefault);
216
- return this;
217
- }
218
- preRender(showPreRenderByDefault = false) {
219
- super.preRender(showPreRenderByDefault);
220
- this.render(showPreRenderByDefault);
214
+ this.renderV1Embed(src);
221
215
  return this;
222
216
  }
223
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
@@ -12,14 +12,22 @@ const defaultViewConfig = {
12
12
  };
13
13
  const thoughtSpotHost = 'tshost';
14
14
  const defaultParamsPost = '';
15
+ const originalResizeObserver = window.ResizeObserver;
15
16
  beforeAll(() => {
16
17
  init({
17
18
  thoughtSpotHost,
18
19
  authType: AuthType.None,
19
20
  });
21
+ window.ResizeObserver = window.ResizeObserver
22
+ || jest.fn().mockImplementation(() => ({
23
+ disconnect: jest.fn(),
24
+ observe: jest.fn(),
25
+ unobserve: jest.fn(),
26
+ }));
20
27
  });
21
28
  const cleanUp = () => {
22
29
  document.body.innerHTML = getDocumentBody();
30
+ window.ResizeObserver = originalResizeObserver;
23
31
  };
24
32
  describe('App embed tests', () => {
25
33
  beforeEach(() => {