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