@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.1

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 (212) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +27 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +43 -12
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +29 -3
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +253 -1
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +171 -1
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +4 -2
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +125 -0
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +3 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +36 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  27. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  29. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  30. package/cjs/src/embed/liveboard.d.ts +40 -13
  31. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  32. package/cjs/src/embed/liveboard.js +25 -4
  33. package/cjs/src/embed/liveboard.js.map +1 -1
  34. package/cjs/src/embed/liveboard.spec.js +349 -2
  35. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  36. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  37. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  38. package/cjs/src/embed/spotter-utils.js +15 -1
  39. package/cjs/src/embed/spotter-utils.js.map +1 -1
  40. package/cjs/src/embed/spotter-utils.spec.js +68 -0
  41. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  43. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  45. package/cjs/src/embed/ts-embed.d.ts +16 -8
  46. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  47. package/cjs/src/embed/ts-embed.js +69 -32
  48. package/cjs/src/embed/ts-embed.js.map +1 -1
  49. package/cjs/src/embed/ts-embed.spec.js +537 -3
  50. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  51. package/cjs/src/index.d.ts +3 -3
  52. package/cjs/src/index.d.ts.map +1 -1
  53. package/cjs/src/index.js +3 -2
  54. package/cjs/src/index.js.map +1 -1
  55. package/cjs/src/react/all-types-export.d.ts +1 -1
  56. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  57. package/cjs/src/react/all-types-export.js +2 -1
  58. package/cjs/src/react/all-types-export.js.map +1 -1
  59. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  60. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  61. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  62. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  63. package/cjs/src/react/index.d.ts +66 -32
  64. package/cjs/src/react/index.d.ts.map +1 -1
  65. package/cjs/src/react/index.js +5 -3
  66. package/cjs/src/react/index.js.map +1 -1
  67. package/cjs/src/react/index.spec.js +101 -0
  68. package/cjs/src/react/index.spec.js.map +1 -1
  69. package/cjs/src/types.d.ts +330 -18
  70. package/cjs/src/types.d.ts.map +1 -1
  71. package/cjs/src/types.js +182 -12
  72. package/cjs/src/types.js.map +1 -1
  73. package/cjs/src/utils.spec.js +4 -0
  74. package/cjs/src/utils.spec.js.map +1 -1
  75. package/dist/{index-aBzH5ZwF.js → index-DxLfQxoT.js} +1 -1
  76. package/dist/src/config.d.ts +1 -0
  77. package/dist/src/config.d.ts.map +1 -1
  78. package/dist/src/css-variables.d.ts +27 -0
  79. package/dist/src/css-variables.d.ts.map +1 -1
  80. package/dist/src/embed/app.d.ts +43 -12
  81. package/dist/src/embed/app.d.ts.map +1 -1
  82. package/dist/src/embed/base.d.ts +1 -1
  83. package/dist/src/embed/conversation.d.ts +171 -1
  84. package/dist/src/embed/conversation.d.ts.map +1 -1
  85. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  86. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  87. package/dist/src/embed/liveboard.d.ts +40 -13
  88. package/dist/src/embed/liveboard.d.ts.map +1 -1
  89. package/dist/src/embed/spotter-utils.d.ts +8 -1
  90. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  91. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  92. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  93. package/dist/src/embed/ts-embed.d.ts +16 -8
  94. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  95. package/dist/src/index.d.ts +3 -3
  96. package/dist/src/index.d.ts.map +1 -1
  97. package/dist/src/react/all-types-export.d.ts +1 -1
  98. package/dist/src/react/all-types-export.d.ts.map +1 -1
  99. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  100. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  101. package/dist/src/react/index.d.ts +66 -32
  102. package/dist/src/react/index.d.ts.map +1 -1
  103. package/dist/src/types.d.ts +330 -18
  104. package/dist/src/types.d.ts.map +1 -1
  105. package/dist/tsembed-react.es.js +330 -61
  106. package/dist/tsembed-react.js +329 -60
  107. package/dist/tsembed.es.js +390 -123
  108. package/dist/tsembed.js +392 -125
  109. package/dist/visual-embed-sdk-react-full.d.ts +696 -89
  110. package/dist/visual-embed-sdk-react.d.ts +692 -88
  111. package/dist/visual-embed-sdk.d.ts +632 -59
  112. package/lib/package.json +1 -1
  113. package/lib/src/config.d.ts +1 -0
  114. package/lib/src/config.d.ts.map +1 -1
  115. package/lib/src/config.js +1 -0
  116. package/lib/src/config.js.map +1 -1
  117. package/lib/src/css-variables.d.ts +27 -0
  118. package/lib/src/css-variables.d.ts.map +1 -1
  119. package/lib/src/embed/app.d.ts +43 -12
  120. package/lib/src/embed/app.d.ts.map +1 -1
  121. package/lib/src/embed/app.js +30 -4
  122. package/lib/src/embed/app.js.map +1 -1
  123. package/lib/src/embed/app.spec.js +253 -1
  124. package/lib/src/embed/app.spec.js.map +1 -1
  125. package/lib/src/embed/base.d.ts +1 -1
  126. package/lib/src/embed/base.js +1 -1
  127. package/lib/src/embed/conversation.d.ts +171 -1
  128. package/lib/src/embed/conversation.d.ts.map +1 -1
  129. package/lib/src/embed/conversation.js +5 -3
  130. package/lib/src/embed/conversation.js.map +1 -1
  131. package/lib/src/embed/conversation.spec.js +125 -0
  132. package/lib/src/embed/conversation.spec.js.map +1 -1
  133. package/lib/src/embed/events.spec.js +3 -0
  134. package/lib/src/embed/events.spec.js.map +1 -1
  135. package/lib/src/embed/host-events.spec.js +36 -0
  136. package/lib/src/embed/host-events.spec.js.map +1 -1
  137. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  138. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  139. package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
  140. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  141. package/lib/src/embed/liveboard.d.ts +40 -13
  142. package/lib/src/embed/liveboard.d.ts.map +1 -1
  143. package/lib/src/embed/liveboard.js +25 -4
  144. package/lib/src/embed/liveboard.js.map +1 -1
  145. package/lib/src/embed/liveboard.spec.js +349 -2
  146. package/lib/src/embed/liveboard.spec.js.map +1 -1
  147. package/lib/src/embed/spotter-utils.d.ts +8 -1
  148. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  149. package/lib/src/embed/spotter-utils.js +13 -0
  150. package/lib/src/embed/spotter-utils.js.map +1 -1
  151. package/lib/src/embed/spotter-utils.spec.js +69 -1
  152. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  153. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  154. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  155. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  156. package/lib/src/embed/ts-embed.d.ts +16 -8
  157. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  158. package/lib/src/embed/ts-embed.js +69 -32
  159. package/lib/src/embed/ts-embed.js.map +1 -1
  160. package/lib/src/embed/ts-embed.spec.js +537 -3
  161. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  162. package/lib/src/index.d.ts +3 -3
  163. package/lib/src/index.d.ts.map +1 -1
  164. package/lib/src/index.js +2 -2
  165. package/lib/src/index.js.map +1 -1
  166. package/lib/src/react/all-types-export.d.ts +1 -1
  167. package/lib/src/react/all-types-export.d.ts.map +1 -1
  168. package/lib/src/react/all-types-export.js +1 -1
  169. package/lib/src/react/all-types-export.js.map +1 -1
  170. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  171. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  172. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  173. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  174. package/lib/src/react/index.d.ts +66 -32
  175. package/lib/src/react/index.d.ts.map +1 -1
  176. package/lib/src/react/index.js +5 -3
  177. package/lib/src/react/index.js.map +1 -1
  178. package/lib/src/react/index.spec.js +102 -1
  179. package/lib/src/react/index.spec.js.map +1 -1
  180. package/lib/src/types.d.ts +330 -18
  181. package/lib/src/types.d.ts.map +1 -1
  182. package/lib/src/types.js +182 -12
  183. package/lib/src/types.js.map +1 -1
  184. package/lib/src/utils.spec.js +4 -0
  185. package/lib/src/utils.spec.js.map +1 -1
  186. package/lib/src/visual-embed-sdk.d.ts +632 -59
  187. package/package.json +1 -1
  188. package/src/config.ts +1 -0
  189. package/src/css-variables.ts +32 -0
  190. package/src/embed/app.spec.ts +335 -1
  191. package/src/embed/app.ts +71 -13
  192. package/src/embed/base.ts +1 -1
  193. package/src/embed/conversation.spec.ts +136 -0
  194. package/src/embed/conversation.ts +181 -3
  195. package/src/embed/events.spec.ts +4 -0
  196. package/src/embed/host-events.spec.ts +48 -0
  197. package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
  198. package/src/embed/hostEventClient/host-event-client.ts +2 -2
  199. package/src/embed/liveboard.spec.ts +457 -2
  200. package/src/embed/liveboard.ts +74 -15
  201. package/src/embed/spotter-utils.spec.ts +72 -0
  202. package/src/embed/spotter-utils.ts +21 -1
  203. package/src/embed/spotter-viz-utils.ts +9 -10
  204. package/src/embed/ts-embed.spec.ts +699 -3
  205. package/src/embed/ts-embed.ts +83 -37
  206. package/src/index.ts +43 -2
  207. package/src/react/all-types-export.parity.spec.ts +208 -0
  208. package/src/react/all-types-export.ts +22 -0
  209. package/src/react/index.spec.tsx +158 -0
  210. package/src/react/index.tsx +70 -33
  211. package/src/types.ts +329 -16
  212. package/src/utils.spec.ts +5 -0
@@ -21,6 +21,8 @@ import * as allExports from './index';
21
21
  import {
22
22
  AuthType, init,
23
23
  } from '../index';
24
+ import { TsEmbed } from '../embed/ts-embed';
25
+ import { LiveboardEmbed as LiveboardEmbedClass } from '../embed/liveboard';
24
26
 
25
27
  import { version } from '../../package.json';
26
28
 
@@ -317,6 +319,162 @@ describe('React Components', () => {
317
319
  });
318
320
  });
319
321
 
322
+ describe('preRenderId via preRenderConfig', () => {
323
+ const preRenderId = 'reactPreRenderId';
324
+
325
+ describe('routing to the preRender methods', () => {
326
+ let preRenderSpy: jest.SpyInstance;
327
+ let showPreRenderSpy: jest.SpyInstance;
328
+ let hidePreRenderSpy: jest.SpyInstance;
329
+ let renderSpy: jest.SpyInstance;
330
+ let destroySpy: jest.SpyInstance;
331
+
332
+ beforeEach(() => {
333
+ preRenderSpy = jest
334
+ .spyOn(TsEmbed.prototype, 'preRender')
335
+ .mockResolvedValue(undefined as any);
336
+ showPreRenderSpy = jest
337
+ .spyOn(TsEmbed.prototype, 'showPreRender')
338
+ .mockResolvedValue(undefined as any);
339
+ hidePreRenderSpy = jest
340
+ .spyOn(TsEmbed.prototype, 'hidePreRender')
341
+ .mockImplementation(() => undefined);
342
+ renderSpy = jest
343
+ .spyOn(LiveboardEmbedClass.prototype, 'render')
344
+ .mockResolvedValue(undefined as any);
345
+ destroySpy = jest
346
+ .spyOn(LiveboardEmbedClass.prototype, 'destroy')
347
+ .mockImplementation(() => undefined);
348
+ });
349
+
350
+ afterEach(() => {
351
+ cleanup();
352
+ [
353
+ preRenderSpy,
354
+ showPreRenderSpy,
355
+ hidePreRenderSpy,
356
+ renderSpy,
357
+ destroySpy,
358
+ ].forEach((spy) => spy.mockRestore());
359
+ });
360
+
361
+ it('Should preRender PreRenderedLiveboardEmbed with preRenderConfig.preRenderId', () => {
362
+ render(
363
+ <PreRenderedLiveboardEmbed
364
+ preRenderConfig={{ preRenderId }}
365
+ liveboardId="test-liveboard"
366
+ />,
367
+ );
368
+
369
+ expect(preRenderSpy).toHaveBeenCalledTimes(1);
370
+ expect(renderSpy).not.toHaveBeenCalled();
371
+ expect(showPreRenderSpy).not.toHaveBeenCalled();
372
+ });
373
+
374
+ it('Should preRender PreRenderedLiveboardEmbed with the top-level preRenderId', () => {
375
+ render(
376
+ <PreRenderedLiveboardEmbed
377
+ preRenderId={preRenderId}
378
+ liveboardId="test-liveboard"
379
+ />,
380
+ );
381
+
382
+ expect(preRenderSpy).toHaveBeenCalledTimes(1);
383
+ expect(renderSpy).not.toHaveBeenCalled();
384
+ });
385
+
386
+ it('Should showPreRender the LiveboardEmbed connected via preRenderConfig', () => {
387
+ const { unmount } = render(
388
+ <LiveboardEmbed
389
+ preRenderConfig={{ preRenderId }}
390
+ liveboardId="test-liveboard"
391
+ />,
392
+ );
393
+
394
+ expect(showPreRenderSpy).toHaveBeenCalledTimes(1);
395
+ expect(renderSpy).not.toHaveBeenCalled();
396
+
397
+ unmount();
398
+
399
+ expect(hidePreRenderSpy).toHaveBeenCalledTimes(1);
400
+ expect(destroySpy).not.toHaveBeenCalled();
401
+ });
402
+
403
+ it('Should showPreRender the LiveboardEmbed connected via the top-level preRenderId', () => {
404
+ const { unmount } = render(
405
+ <LiveboardEmbed preRenderId={preRenderId} liveboardId="test-liveboard" />,
406
+ );
407
+
408
+ expect(showPreRenderSpy).toHaveBeenCalledTimes(1);
409
+ expect(renderSpy).not.toHaveBeenCalled();
410
+
411
+ unmount();
412
+
413
+ expect(hidePreRenderSpy).toHaveBeenCalledTimes(1);
414
+ expect(destroySpy).not.toHaveBeenCalled();
415
+ });
416
+
417
+ it('Should render and destroy the LiveboardEmbed without any preRender id', () => {
418
+ const { unmount } = render(<LiveboardEmbed liveboardId="test-liveboard" />);
419
+
420
+ expect(renderSpy).toHaveBeenCalledTimes(1);
421
+ expect(showPreRenderSpy).not.toHaveBeenCalled();
422
+
423
+ unmount();
424
+
425
+ expect(destroySpy).toHaveBeenCalledTimes(1);
426
+ expect(hidePreRenderSpy).not.toHaveBeenCalled();
427
+ });
428
+ });
429
+
430
+ describe('pre-render wrapper element', () => {
431
+ const wrapperId = (id: string) => `tsEmbed-pre-render-wrapper-${id}`;
432
+
433
+ beforeAll(() => {
434
+ (window as any).ResizeObserver =
435
+ window.ResizeObserver ||
436
+ jest.fn().mockImplementation(() => ({
437
+ disconnect: jest.fn(),
438
+ observe: jest.fn(),
439
+ unobserve: jest.fn(),
440
+ }));
441
+ });
442
+
443
+ afterEach(() => {
444
+ cleanup();
445
+ document
446
+ .querySelectorAll('[id^="tsEmbed-pre-render-wrapper-"]')
447
+ .forEach((el) => el.remove());
448
+ });
449
+
450
+ it('Should create the wrapper with preRenderConfig.preRenderId', async () => {
451
+ render(
452
+ <PreRenderedLiveboardEmbed
453
+ preRenderConfig={{ preRenderId }}
454
+ liveboardId="test-liveboard"
455
+ />,
456
+ );
457
+
458
+ await waitFor(() => expect(document.getElementById(wrapperId(preRenderId))).not.toBe(null));
459
+ });
460
+
461
+ it('Should prefer preRenderConfig.preRenderId over the top-level preRenderId', async () => {
462
+ render(
463
+ <PreRenderedLiveboardEmbed
464
+ preRenderId="top-level-pre-render-id"
465
+ preRenderConfig={{ preRenderId: 'config-pre-render-id' }}
466
+ liveboardId="test-liveboard"
467
+ />,
468
+ );
469
+
470
+ await waitFor(() => expect(
471
+ document.getElementById(wrapperId('config-pre-render-id')),
472
+ ).not.toBe(null));
473
+ expect(document.getElementById(wrapperId('top-level-pre-render-id'))).toBe(null);
474
+ });
475
+ });
476
+ });
477
+
320
478
  describe('Components with insertAsSibling', () => {
321
479
  it('Should render LiveboardEmbed with insertAsSibling', async () => {
322
480
  const { container } = render(
@@ -11,7 +11,9 @@ import { LiveboardEmbed as _LiveboardEmbed, LiveboardViewConfig } from '../embed
11
11
  import { TsEmbed } from '../embed/ts-embed';
12
12
  import { SpotterAgentEmbed as _SpotterAgentEmbed, SpotterAgentEmbedViewConfig, ConversationMessage as _ConversationMessage, SpotterAgentMessageViewConfig } from '../embed/bodyless-conversation';
13
13
 
14
- import { EmbedConfig, EmbedEvent, AllEmbedViewConfig } from '../types';
14
+ import {
15
+ EmbedConfig, EmbedEvent, AllEmbedViewConfig, PreRenderConfig,
16
+ } from '../types';
15
17
  import { EmbedProps, getViewPropsAndListeners } from './util';
16
18
  import { SpotterEmbed as _SpotterEmbed, SpotterEmbedViewConfig, ConversationEmbed as _ConversationEmbed, ConversationViewConfig } from '../embed/conversation';
17
19
  import { init } from '../embed/base';
@@ -32,13 +34,14 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
32
34
  const { viewConfig, listeners } = getViewPropsAndListeners<Omit<U, 'className' | 'style'>, V>(
33
35
  embedProps,
34
36
  );
37
+ const preRenderId = props.preRenderConfig?.preRenderId ?? props.preRenderId;
35
38
 
36
39
  const handleDestroy = (tsEmbed: InstanceType<T>) => {
37
40
  // do not destroy if it is a preRender component
38
41
  if (isPreRenderedComponent) return;
39
42
 
40
43
  // if component is connected to a preRendered component
41
- if (props.preRenderId) {
44
+ if (preRenderId) {
42
45
  tsEmbed.hidePreRender();
43
46
  return;
44
47
  }
@@ -52,7 +55,7 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
52
55
 
53
56
  const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
54
57
  // if component is connected to a preRendered component
55
- if (props.preRenderId) {
58
+ if (preRenderId) {
56
59
  tsEmbed.showPreRender();
57
60
  return;
58
61
  }
@@ -111,35 +114,69 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
111
114
 
112
115
  interface SearchProps extends EmbedProps, SearchViewConfig { }
113
116
 
114
- interface PreRenderProps {
115
- /**
116
- * PreRender id to be used for PreRendering the embed.
117
- * Use PreRender to render the embed in the background and then
118
- * show or hide the rendered embed using showPreRender or hidePreRender respectively.
119
- *
120
- * Use PreRendered react component for pre rendering embed components.
121
- * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
122
- * @example
123
- * ```js
124
- * const embed = new LiveboardEmbed('#embed', {
125
- * ... // other liveboard view config
126
- * preRenderId: "preRenderId-123"
127
- * });
128
- * embed.showPreRender();
129
- * ```
130
- * @example
131
- * ```tsx
132
- * function LandingPageComponent() {
133
- * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
134
- * }
135
- * ```
136
- * function MyComponent() {
137
- * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
138
- * }
139
- * ```
140
- */
141
- preRenderId: string;
142
- }
117
+ /**
118
+ * The PreRendered components require a preRender id. It can be supplied either
119
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
120
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
121
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
122
+ *
123
+ * Use PreRender to render the embed in the background and then
124
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
125
+ * @example
126
+ * ```tsx
127
+ * // Preferred, SDK: 1.52.0 and later.
128
+ * function LandingPageComponent() {
129
+ * return <PreRenderedLiveboardEmbed
130
+ * preRenderConfig={{ preRenderId: "someId" }}
131
+ * liveboardId="libId"
132
+ * />
133
+ * }
134
+ *
135
+ * function MyComponent() {
136
+ * return <LiveboardEmbed
137
+ * preRenderConfig={{ preRenderId: "someId" }}
138
+ * liveboardId="libId"
139
+ * />
140
+ * }
141
+ * ```
142
+ * @example
143
+ * ```tsx
144
+ * // Deprecated top-level preRenderId, still supported.
145
+ * function LandingPageComponent() {
146
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
147
+ * }
148
+ * ```
149
+ */
150
+ type PreRenderProps =
151
+ | {
152
+ /**
153
+ * PreRender id to be used for PreRendering the embed.
154
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
155
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
156
+ */
157
+ preRenderId: string;
158
+ /**
159
+ * Configuration for the pre-render wrapper element.
160
+ * See {@link PreRenderConfig} for available options.
161
+ * @version SDK: 1.52.0
162
+ */
163
+ preRenderConfig?: PreRenderConfig;
164
+ }
165
+ | {
166
+ /**
167
+ * PreRender id to be used for PreRendering the embed.
168
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
169
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
170
+ */
171
+ preRenderId?: string;
172
+ /**
173
+ * Configuration for the pre-render wrapper element. `preRenderId` is
174
+ * required here when the top-level `preRenderId` prop is not passed.
175
+ * See {@link PreRenderConfig} for available options.
176
+ * @version SDK: 1.52.0
177
+ */
178
+ preRenderConfig: PreRenderConfig & { preRenderId: string };
179
+ };
143
180
 
144
181
  /**
145
182
  * React component for Search Embed.
@@ -448,7 +485,7 @@ type EmbedComponent = typeof SearchEmbed
448
485
  * const ref = useEmbedRef();
449
486
  * useEffect(() => {
450
487
  * ref.current.trigger(
451
- * EmbedEvent.UpdateRuntimeFilter,
488
+ * HostEvent.UpdateRuntimeFilters,
452
489
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
453
490
  * }, [])
454
491
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />