@thoughtspot/visual-embed-sdk 1.44.3 → 1.44.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 (82) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/embed/app.d.ts +44 -32
  4. package/cjs/src/embed/app.d.ts.map +1 -1
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/liveboard.d.ts +1 -1
  7. package/cjs/src/embed/ts-embed.d.ts +1 -1
  8. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  9. package/cjs/src/embed/ts-embed.js +24 -6
  10. package/cjs/src/embed/ts-embed.js.map +1 -1
  11. package/cjs/src/embed/ts-embed.spec.js +145 -13
  12. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  13. package/cjs/src/errors.d.ts +1 -0
  14. package/cjs/src/errors.d.ts.map +1 -1
  15. package/cjs/src/errors.js +1 -0
  16. package/cjs/src/errors.js.map +1 -1
  17. package/cjs/src/index.d.ts +2 -2
  18. package/cjs/src/index.d.ts.map +1 -1
  19. package/cjs/src/index.js +4 -1
  20. package/cjs/src/index.js.map +1 -1
  21. package/cjs/src/types.d.ts +100 -44
  22. package/cjs/src/types.d.ts.map +1 -1
  23. package/cjs/src/types.js +74 -15
  24. package/cjs/src/types.js.map +1 -1
  25. package/cjs/src/utils.d.ts.map +1 -1
  26. package/cjs/src/utils.js +2 -1
  27. package/cjs/src/utils.js.map +1 -1
  28. package/dist/{index-D0n5LIka.js → index-C5FAW929.js} +1 -1
  29. package/dist/src/embed/app.d.ts +44 -32
  30. package/dist/src/embed/app.d.ts.map +1 -1
  31. package/dist/src/embed/liveboard.d.ts +1 -1
  32. package/dist/src/embed/ts-embed.d.ts +1 -1
  33. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  34. package/dist/src/errors.d.ts +1 -0
  35. package/dist/src/errors.d.ts.map +1 -1
  36. package/dist/src/index.d.ts +2 -2
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/types.d.ts +100 -44
  39. package/dist/src/types.d.ts.map +1 -1
  40. package/dist/src/utils.d.ts.map +1 -1
  41. package/dist/tsembed-react.es.js +104 -25
  42. package/dist/tsembed-react.js +103 -24
  43. package/dist/tsembed.es.js +105 -26
  44. package/dist/tsembed.js +130 -51
  45. package/dist/visual-embed-sdk-react-full.d.ts +140 -70
  46. package/dist/visual-embed-sdk-react.d.ts +146 -78
  47. package/dist/visual-embed-sdk.d.ts +193 -80
  48. package/lib/package.json +1 -1
  49. package/lib/src/embed/app.d.ts +44 -32
  50. package/lib/src/embed/app.d.ts.map +1 -1
  51. package/lib/src/embed/app.js.map +1 -1
  52. package/lib/src/embed/liveboard.d.ts +1 -1
  53. package/lib/src/embed/ts-embed.d.ts +1 -1
  54. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  55. package/lib/src/embed/ts-embed.js +24 -6
  56. package/lib/src/embed/ts-embed.js.map +1 -1
  57. package/lib/src/embed/ts-embed.spec.js +145 -13
  58. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  59. package/lib/src/errors.d.ts +1 -0
  60. package/lib/src/errors.d.ts.map +1 -1
  61. package/lib/src/errors.js +1 -0
  62. package/lib/src/errors.js.map +1 -1
  63. package/lib/src/index.d.ts +2 -2
  64. package/lib/src/index.d.ts.map +1 -1
  65. package/lib/src/index.js +2 -2
  66. package/lib/src/index.js.map +1 -1
  67. package/lib/src/types.d.ts +100 -44
  68. package/lib/src/types.d.ts.map +1 -1
  69. package/lib/src/types.js +74 -15
  70. package/lib/src/types.js.map +1 -1
  71. package/lib/src/utils.d.ts.map +1 -1
  72. package/lib/src/utils.js +2 -1
  73. package/lib/src/utils.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/embed/app.ts +44 -32
  76. package/src/embed/liveboard.ts +1 -1
  77. package/src/embed/ts-embed.spec.ts +190 -15
  78. package/src/embed/ts-embed.ts +24 -6
  79. package/src/errors.ts +1 -0
  80. package/src/index.ts +4 -0
  81. package/src/types.ts +100 -43
  82. package/src/utils.ts +2 -1
@@ -2063,6 +2063,36 @@ describe('Unit test case for ts embed', () => {
2063
2063
  libEmbed.hidePreRender();
2064
2064
  expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
2065
2065
  });
2066
+ it('should set overflow:hidden when hidePreRender and remove when showPreRender', async () => {
2067
+ (0, test_utils_1.createRootEleForEmbed)();
2068
+ window.ResizeObserver = window.ResizeObserver
2069
+ || jest.fn().mockImplementation(() => ({
2070
+ disconnect: jest.fn(),
2071
+ observe: jest.fn(),
2072
+ unobserve: jest.fn(),
2073
+ }));
2074
+ const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2075
+ preRenderId: 'overflow-test',
2076
+ liveboardId: 'myLiveboardId',
2077
+ });
2078
+ await libEmbed.preRender();
2079
+ await (0, test_utils_1.waitFor)(() => !!(0, test_utils_1.getIFrameEl)());
2080
+ const preRenderIds = libEmbed.getPreRenderIds();
2081
+ const preRenderWrapper = document.getElementById(preRenderIds.wrapper);
2082
+ // After preRender (calls hidePreRender by default)
2083
+ // should have overflow:hidden
2084
+ expect(preRenderWrapper.style.overflow).toBe('hidden');
2085
+ expect(preRenderWrapper.style.opacity).toBe('0');
2086
+ // After showPreRender, overflow should be removed
2087
+ // to inherit from CSS
2088
+ libEmbed.showPreRender();
2089
+ expect(preRenderWrapper.style.overflow).toBe('');
2090
+ expect(preRenderWrapper.style.opacity).toBe('');
2091
+ // After hidePreRender again, overflow should be hidden
2092
+ libEmbed.hidePreRender();
2093
+ expect(preRenderWrapper.style.overflow).toBe('hidden');
2094
+ expect(preRenderWrapper.style.opacity).toBe('0');
2095
+ });
2066
2096
  it('it should connect with another object', async () => {
2067
2097
  (0, test_utils_1.createRootEleForEmbed)();
2068
2098
  (0, test_utils_1.mockMessageChannel)();
@@ -3360,17 +3390,7 @@ describe('Fullscreen change handler behavior', () => {
3360
3390
  });
3361
3391
  });
3362
3392
  describe('ShowPreRender with UpdateEmbedParams', () => {
3363
- beforeAll(() => {
3364
- (0, index_1.init)({
3365
- thoughtSpotHost: 'tshost',
3366
- authType: index_1.AuthType.None,
3367
- });
3368
- });
3369
- afterEach(() => {
3370
- const rootEle = document.getElementById('myRoot');
3371
- rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3372
- });
3373
- test('should trigger UpdateEmbedParams when showPreRender connects to existing prerendered component', async () => {
3393
+ const setupPreRenderTest = async (preRenderId, initialConfig) => {
3374
3394
  (0, test_utils_1.createRootEleForEmbed)();
3375
3395
  (0, test_utils_1.mockMessageChannel)();
3376
3396
  window.ResizeObserver = window.ResizeObserver
@@ -3380,14 +3400,28 @@ describe('ShowPreRender with UpdateEmbedParams', () => {
3380
3400
  unobserve: jest.fn(),
3381
3401
  }));
3382
3402
  const embed1 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3383
- preRenderId: 'update-params-test',
3384
- liveboardId: 'original-lb',
3403
+ preRenderId,
3404
+ ...initialConfig,
3385
3405
  });
3386
3406
  await embed1.preRender();
3387
3407
  await (0, test_utils_1.waitFor)(() => !!(0, test_utils_1.getIFrameEl)());
3388
3408
  embed1.isEmbedContainerLoaded = true;
3389
3409
  mockProcessTrigger.mockClear();
3390
3410
  mockProcessTrigger.mockResolvedValue({});
3411
+ return embed1;
3412
+ };
3413
+ beforeAll(() => {
3414
+ (0, index_1.init)({
3415
+ thoughtSpotHost: 'tshost',
3416
+ authType: index_1.AuthType.None,
3417
+ });
3418
+ });
3419
+ afterEach(() => {
3420
+ const rootEle = document.getElementById('myRoot');
3421
+ rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3422
+ });
3423
+ test('should trigger UpdateEmbedParams when showPreRender connects to existing prerendered component', async () => {
3424
+ await setupPreRenderTest('update-params-test', { liveboardId: 'original-lb' });
3391
3425
  const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3392
3426
  preRenderId: 'update-params-test',
3393
3427
  liveboardId: 'updated-lb',
@@ -3399,5 +3433,103 @@ describe('ShowPreRender with UpdateEmbedParams', () => {
3399
3433
  }));
3400
3434
  });
3401
3435
  });
3436
+ test('should trigger UpdateEmbedParams with runtime filters and visible vizs', async () => {
3437
+ await setupPreRenderTest('url-param-test', { liveboardId: 'original-lb' });
3438
+ const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3439
+ preRenderId: 'url-param-test',
3440
+ liveboardId: 'original-lb',
3441
+ visibleVizs: ['viz-1'],
3442
+ runtimeFilters: [
3443
+ {
3444
+ columnName: 'Color',
3445
+ operator: types_1.RuntimeFilterOp.IN,
3446
+ values: ['red', 'blue'],
3447
+ },
3448
+ {
3449
+ columnName: 'Region',
3450
+ operator: types_1.RuntimeFilterOp.EQ,
3451
+ values: ['North'],
3452
+ },
3453
+ ],
3454
+ });
3455
+ embed2.showPreRender();
3456
+ await (0, test_utils_1.executeAfterWait)(() => {
3457
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3458
+ liveboardId: 'original-lb',
3459
+ visibleVizs: ['viz-1'],
3460
+ runtimeFilters: [
3461
+ {
3462
+ columnName: 'Color',
3463
+ operator: types_1.RuntimeFilterOp.IN,
3464
+ values: ['red', 'blue'],
3465
+ },
3466
+ {
3467
+ columnName: 'Region',
3468
+ operator: types_1.RuntimeFilterOp.EQ,
3469
+ values: ['North'],
3470
+ },
3471
+ ],
3472
+ }));
3473
+ });
3474
+ });
3475
+ test('should trigger UpdateEmbedParams with updated config', async () => {
3476
+ await setupPreRenderTest('preserve-config-test', {
3477
+ liveboardId: 'original-lb',
3478
+ runtimeFilters: [
3479
+ {
3480
+ columnName: 'Color',
3481
+ operator: types_1.RuntimeFilterOp.IN,
3482
+ values: ['red', 'blue'],
3483
+ },
3484
+ ],
3485
+ });
3486
+ const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3487
+ preRenderId: 'preserve-config-test',
3488
+ liveboardId: 'original-lb',
3489
+ visibleVizs: ['viz-1', 'viz-2'],
3490
+ runtimeFilters: [
3491
+ {
3492
+ columnName: 'Region',
3493
+ operator: types_1.RuntimeFilterOp.EQ,
3494
+ values: ['North'],
3495
+ },
3496
+ ],
3497
+ });
3498
+ embed2.showPreRender();
3499
+ await (0, test_utils_1.executeAfterWait)(() => {
3500
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3501
+ liveboardId: 'original-lb',
3502
+ visibleVizs: ['viz-1', 'viz-2'],
3503
+ runtimeFilters: [
3504
+ {
3505
+ columnName: 'Region',
3506
+ operator: types_1.RuntimeFilterOp.EQ,
3507
+ values: ['North'],
3508
+ },
3509
+ ],
3510
+ }));
3511
+ });
3512
+ });
3513
+ test('should handle error when getUpdateEmbedParamsObject fails during showPreRender', async () => {
3514
+ await setupPreRenderTest('error-test', { liveboardId: 'original-lb' });
3515
+ const handleErrorSpy = jest.spyOn(index_1.LiveboardEmbed.prototype, 'handleError');
3516
+ const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3517
+ preRenderId: 'error-test',
3518
+ liveboardId: 'updated-lb',
3519
+ });
3520
+ const mockError = new Error('Failed to get params');
3521
+ jest.spyOn(embed2, 'getUpdateEmbedParamsObject').mockRejectedValue(mockError);
3522
+ embed2.showPreRender();
3523
+ await (0, test_utils_1.executeAfterWait)(() => {
3524
+ expect(handleErrorSpy).toHaveBeenCalledWith(expect.objectContaining({
3525
+ errorType: types_1.ErrorDetailsTypes.API,
3526
+ message: 'Failed to get params',
3527
+ code: types_1.EmbedErrorCodes.UPDATE_PARAMS_FAILED,
3528
+ error: 'Failed to get params',
3529
+ }));
3530
+ expect(mockProcessTrigger).not.toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.UpdateEmbedParams, expect.any(String), expect.any(Object));
3531
+ });
3532
+ handleErrorSpy.mockRestore();
3533
+ });
3402
3534
  });
3403
3535
  //# sourceMappingURL=ts-embed.spec.js.map