@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.
- package/cjs/package.json +1 -1
- package/cjs/src/config.d.ts +1 -0
- package/cjs/src/config.d.ts.map +1 -1
- package/cjs/src/config.js +2 -1
- package/cjs/src/config.js.map +1 -1
- package/cjs/src/css-variables.d.ts +27 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +43 -12
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +29 -3
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +253 -1
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.js +1 -1
- package/cjs/src/embed/conversation.d.ts +171 -1
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +4 -2
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +125 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +3 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/host-events.spec.js +36 -0
- package/cjs/src/embed/host-events.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +40 -13
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +25 -4
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +349 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +8 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +15 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +68 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
- package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +16 -8
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +69 -32
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +537 -3
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +3 -3
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -2
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/cjs/src/react/all-types-export.parity.spec.js +194 -0
- package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
- package/cjs/src/react/index.d.ts +66 -32
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +5 -3
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +101 -0
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +330 -18
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +182 -12
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils.spec.js +4 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-aBzH5ZwF.js → index-DxLfQxoT.js} +1 -1
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +27 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +43 -12
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/conversation.d.ts +171 -1
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +40 -13
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-utils.d.ts +8 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +16 -8
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/dist/src/react/index.d.ts +66 -32
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +330 -18
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +330 -61
- package/dist/tsembed-react.js +329 -60
- package/dist/tsembed.es.js +390 -123
- package/dist/tsembed.js +392 -125
- package/dist/visual-embed-sdk-react-full.d.ts +696 -89
- package/dist/visual-embed-sdk-react.d.ts +692 -88
- package/dist/visual-embed-sdk.d.ts +632 -59
- package/lib/package.json +1 -1
- package/lib/src/config.d.ts +1 -0
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +1 -0
- package/lib/src/config.js.map +1 -1
- package/lib/src/css-variables.d.ts +27 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +43 -12
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +30 -4
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +253 -1
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.js +1 -1
- package/lib/src/embed/conversation.d.ts +171 -1
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -3
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +125 -0
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +3 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/host-events.spec.js +36 -0
- package/lib/src/embed/host-events.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +40 -13
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +25 -4
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +349 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +8 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +13 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +69 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
- package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-viz-utils.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +16 -8
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +69 -32
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +537 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +3 -3
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/lib/src/react/all-types-export.parity.spec.js +191 -0
- package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
- package/lib/src/react/index.d.ts +66 -32
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +5 -3
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +102 -1
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +330 -18
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +182 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils.spec.js +4 -0
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +632 -59
- package/package.json +1 -1
- package/src/config.ts +1 -0
- package/src/css-variables.ts +32 -0
- package/src/embed/app.spec.ts +335 -1
- package/src/embed/app.ts +71 -13
- package/src/embed/base.ts +1 -1
- package/src/embed/conversation.spec.ts +136 -0
- package/src/embed/conversation.ts +181 -3
- package/src/embed/events.spec.ts +4 -0
- package/src/embed/host-events.spec.ts +48 -0
- package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
- package/src/embed/hostEventClient/host-event-client.ts +2 -2
- package/src/embed/liveboard.spec.ts +457 -2
- package/src/embed/liveboard.ts +74 -15
- package/src/embed/spotter-utils.spec.ts +72 -0
- package/src/embed/spotter-utils.ts +21 -1
- package/src/embed/spotter-viz-utils.ts +9 -10
- package/src/embed/ts-embed.spec.ts +699 -3
- package/src/embed/ts-embed.ts +83 -37
- package/src/index.ts +43 -2
- package/src/react/all-types-export.parity.spec.ts +208 -0
- package/src/react/all-types-export.ts +22 -0
- package/src/react/index.spec.tsx +158 -0
- package/src/react/index.tsx +70 -33
- package/src/types.ts +329 -16
- package/src/utils.spec.ts +5 -0
package/src/react/index.spec.tsx
CHANGED
|
@@ -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(
|
package/src/react/index.tsx
CHANGED
|
@@ -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 {
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
*
|
|
488
|
+
* HostEvent.UpdateRuntimeFilters,
|
|
452
489
|
* [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
|
|
453
490
|
* }, [])
|
|
454
491
|
* return <LiveboardEmbed ref={ref} liveboardId={<id>} />
|