@thoughtspot/visual-embed-sdk 1.35.6 → 1.35.7
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/embed/search-bar.d.ts +24 -1
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +13 -2
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +26 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +16 -2
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +49 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +4 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +49 -32
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +164 -131
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
- package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/cjs/src/hostEventsTypeMapping.js +4 -0
- package/cjs/src/hostEventsTypeMapping.js.map +1 -0
- package/cjs/src/types.d.ts +11 -0
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
- package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/contracts.js +17 -0
- package/cjs/src/utils/embedApi/contracts.js.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
- package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/dist/{index-Bp8mFlZ-.js → index-BBBimG1x.js} +1 -1
- package/dist/index-CENLvayL.js +7370 -0
- package/dist/index-CbltIawo.js +7370 -0
- package/dist/index-CoQfqaHj.js +7370 -0
- package/dist/index-CzwzS0P4.js +7370 -0
- package/dist/index-DFwi_pV_.js +7370 -0
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DYBx8SuE.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-DnJX-gN2.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/src/embed/search-bar.d.ts +24 -1
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +26 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +4 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/hostEventsTypeMapping.d.ts +2 -0
- package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/dist/src/types.d.ts +11 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/embedApi/contracts.d.ts +101 -0
- package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +81 -39
- package/dist/tsembed-react.js +80 -38
- package/dist/tsembed.es.js +81 -39
- package/dist/tsembed.js +80 -38
- package/dist/visual-embed-sdk-react-full.d.ts +62 -0
- package/dist/visual-embed-sdk-react.d.ts +62 -0
- package/dist/visual-embed-sdk.d.ts +62 -0
- package/lib/package.json +1 -1
- package/lib/src/embed/search-bar.d.ts +24 -1
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +13 -2
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +26 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +16 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +51 -2
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +4 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +49 -32
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +164 -131
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/hostEventsTypeMapping.d.ts +2 -0
- package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/lib/src/hostEventsTypeMapping.js +2 -0
- package/lib/src/hostEventsTypeMapping.js.map +1 -0
- package/lib/src/types.d.ts +11 -0
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/utils/embedApi/contracts.d.ts +101 -0
- package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/lib/src/utils/embedApi/contracts.js +14 -0
- package/lib/src/utils/embedApi/contracts.js.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.js +42 -0
- package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
- package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +65 -3
- package/package.json +1 -1
- package/src/embed/search-bar.tsx +36 -2
- package/src/embed/search.spec.ts +66 -1
- package/src/embed/search.ts +38 -1
- package/src/embed/ts-embed.spec.ts +177 -137
- package/src/embed/ts-embed.ts +52 -32
- package/src/types.ts +12 -0
|
@@ -153,11 +153,9 @@ describe('Unit test case for ts embed', () => {
|
|
|
153
153
|
mockProcessTrigger.mockResolvedValue({ session: 'test' });
|
|
154
154
|
await executeAfterWait(async () => {
|
|
155
155
|
const payload = { newVizName: 'test' };
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
payload,
|
|
160
|
-
),
|
|
156
|
+
await searchEmbed.triggerUIPassThrough(
|
|
157
|
+
UIPassthroughEvent.PinAnswerToLiveboard,
|
|
158
|
+
payload,
|
|
161
159
|
);
|
|
162
160
|
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
163
161
|
getIFrameEl(),
|
|
@@ -171,6 +169,26 @@ describe('Unit test case for ts embed', () => {
|
|
|
171
169
|
});
|
|
172
170
|
});
|
|
173
171
|
|
|
172
|
+
test('Host event with empty param', async () => {
|
|
173
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
174
|
+
liveboardId: '123',
|
|
175
|
+
...defaultViewConfig,
|
|
176
|
+
});
|
|
177
|
+
liveboardEmbed.render();
|
|
178
|
+
mockProcessTrigger.mockResolvedValue({ session: 'test' });
|
|
179
|
+
await executeAfterWait(async () => {
|
|
180
|
+
await liveboardEmbed.trigger(
|
|
181
|
+
HostEvent.Save,
|
|
182
|
+
);
|
|
183
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
184
|
+
getIFrameEl(),
|
|
185
|
+
HostEvent.Save,
|
|
186
|
+
'http://tshost',
|
|
187
|
+
{},
|
|
188
|
+
);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
|
|
174
192
|
test('should set proper height, width and min-height to iframe', async () => {
|
|
175
193
|
// we dont have origin specific policies so just checking if
|
|
176
194
|
// policies are ending with ;
|
|
@@ -250,19 +268,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
250
268
|
const iframe = getIFrameEl();
|
|
251
269
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
252
270
|
});
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
271
|
+
await executeAfterWait(() => {
|
|
272
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
273
|
+
type: EmbedEvent.APP_INIT,
|
|
274
|
+
data: {
|
|
275
|
+
customisations,
|
|
276
|
+
authToken: '',
|
|
277
|
+
runtimeFilterParams: null,
|
|
278
|
+
runtimeParameterParams: null,
|
|
279
|
+
hiddenHomeLeftNavItems: [],
|
|
280
|
+
hiddenHomepageModules: [],
|
|
281
|
+
hostConfig: undefined,
|
|
282
|
+
reorderedHomepageModules: [],
|
|
283
|
+
customVariablesForThirdPartyTools,
|
|
284
|
+
},
|
|
285
|
+
});
|
|
266
286
|
});
|
|
267
287
|
});
|
|
268
288
|
|
|
@@ -283,19 +303,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
283
303
|
const iframe = getIFrameEl();
|
|
284
304
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
285
305
|
});
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
306
|
+
await executeAfterWait(() => {
|
|
307
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
308
|
+
type: EmbedEvent.APP_INIT,
|
|
309
|
+
data: {
|
|
310
|
+
customisations: customisationsView,
|
|
311
|
+
authToken: '',
|
|
312
|
+
runtimeFilterParams: null,
|
|
313
|
+
runtimeParameterParams: null,
|
|
314
|
+
hiddenHomeLeftNavItems: [],
|
|
315
|
+
hiddenHomepageModules: [],
|
|
316
|
+
hostConfig: undefined,
|
|
317
|
+
reorderedHomepageModules: [],
|
|
318
|
+
customVariablesForThirdPartyTools,
|
|
319
|
+
},
|
|
320
|
+
});
|
|
299
321
|
});
|
|
300
322
|
});
|
|
301
323
|
|
|
@@ -321,19 +343,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
321
343
|
const iframe = getIFrameEl();
|
|
322
344
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
323
345
|
});
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
346
|
+
await executeAfterWait(() => {
|
|
347
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
348
|
+
type: EmbedEvent.APP_INIT,
|
|
349
|
+
data: {
|
|
350
|
+
customisations,
|
|
351
|
+
authToken: '',
|
|
352
|
+
hostConfig: undefined,
|
|
353
|
+
runtimeFilterParams: null,
|
|
354
|
+
runtimeParameterParams: null,
|
|
355
|
+
hiddenHomeLeftNavItems: [],
|
|
356
|
+
hiddenHomepageModules: [HomepageModule.MyLibrary, HomepageModule.Learning],
|
|
357
|
+
reorderedHomepageModules: [],
|
|
358
|
+
customVariablesForThirdPartyTools,
|
|
359
|
+
},
|
|
360
|
+
});
|
|
337
361
|
});
|
|
338
362
|
});
|
|
339
363
|
|
|
@@ -356,20 +380,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
356
380
|
const iframe = getIFrameEl();
|
|
357
381
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
358
382
|
});
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
383
|
+
await executeAfterWait(() => {
|
|
384
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
385
|
+
type: EmbedEvent.APP_INIT,
|
|
386
|
+
data: {
|
|
387
|
+
customisations,
|
|
388
|
+
authToken: '',
|
|
389
|
+
hostConfig: undefined,
|
|
390
|
+
runtimeFilterParams: null,
|
|
391
|
+
runtimeParameterParams: null,
|
|
392
|
+
hiddenHomeLeftNavItems: [],
|
|
393
|
+
hiddenHomepageModules: [],
|
|
394
|
+
reorderedHomepageModules: [],
|
|
395
|
+
customVariablesForThirdPartyTools,
|
|
396
|
+
},
|
|
397
|
+
});
|
|
373
398
|
});
|
|
374
399
|
});
|
|
375
400
|
|
|
@@ -395,19 +420,22 @@ describe('Unit test case for ts embed', () => {
|
|
|
395
420
|
const iframe = getIFrameEl();
|
|
396
421
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
397
422
|
});
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
423
|
+
await executeAfterWait(() => {
|
|
424
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
425
|
+
type: EmbedEvent.APP_INIT,
|
|
426
|
+
data: {
|
|
427
|
+
customisations,
|
|
428
|
+
authToken: '',
|
|
429
|
+
hostConfig: undefined,
|
|
430
|
+
runtimeFilterParams: null,
|
|
431
|
+
runtimeParameterParams: null,
|
|
432
|
+
hiddenHomeLeftNavItems: [],
|
|
433
|
+
hiddenHomepageModules: [],
|
|
434
|
+
reorderedHomepageModules:
|
|
435
|
+
[HomepageModule.MyLibrary, HomepageModule.Watchlist],
|
|
436
|
+
customVariablesForThirdPartyTools,
|
|
437
|
+
},
|
|
438
|
+
});
|
|
411
439
|
});
|
|
412
440
|
});
|
|
413
441
|
|
|
@@ -436,19 +464,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
436
464
|
const iframe = getIFrameEl();
|
|
437
465
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
438
466
|
});
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
467
|
+
await executeAfterWait(() => {
|
|
468
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
469
|
+
type: EmbedEvent.APP_INIT,
|
|
470
|
+
data: {
|
|
471
|
+
customisations,
|
|
472
|
+
authToken: '',
|
|
473
|
+
runtimeFilterParams: null,
|
|
474
|
+
runtimeParameterParams: 'param1=color¶mVal1=blue',
|
|
475
|
+
hiddenHomeLeftNavItems: [],
|
|
476
|
+
hiddenHomepageModules: [],
|
|
477
|
+
hostConfig: undefined,
|
|
478
|
+
reorderedHomepageModules: [],
|
|
479
|
+
customVariablesForThirdPartyTools,
|
|
480
|
+
},
|
|
481
|
+
});
|
|
452
482
|
});
|
|
453
483
|
});
|
|
454
484
|
|
|
@@ -478,19 +508,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
478
508
|
const iframe = getIFrameEl();
|
|
479
509
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
480
510
|
});
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
511
|
+
await executeAfterWait(() => {
|
|
512
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
513
|
+
type: EmbedEvent.APP_INIT,
|
|
514
|
+
data: {
|
|
515
|
+
customisations,
|
|
516
|
+
authToken: '',
|
|
517
|
+
runtimeFilterParams: 'col1=color&op1=EQ&val1=blue',
|
|
518
|
+
runtimeParameterParams: null,
|
|
519
|
+
hiddenHomeLeftNavItems: [],
|
|
520
|
+
hiddenHomepageModules: [],
|
|
521
|
+
hostConfig: undefined,
|
|
522
|
+
reorderedHomepageModules: [],
|
|
523
|
+
customVariablesForThirdPartyTools,
|
|
524
|
+
},
|
|
525
|
+
});
|
|
494
526
|
});
|
|
495
527
|
});
|
|
496
528
|
|
|
@@ -519,19 +551,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
519
551
|
const iframe = getIFrameEl();
|
|
520
552
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
521
553
|
});
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
554
|
+
await executeAfterWait(() => {
|
|
555
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
556
|
+
type: EmbedEvent.APP_INIT,
|
|
557
|
+
data: {
|
|
558
|
+
customisations,
|
|
559
|
+
authToken: '',
|
|
560
|
+
runtimeFilterParams: null,
|
|
561
|
+
runtimeParameterParams: null,
|
|
562
|
+
hiddenHomeLeftNavItems: [],
|
|
563
|
+
hiddenHomepageModules: [],
|
|
564
|
+
hostConfig: undefined,
|
|
565
|
+
reorderedHomepageModules: [],
|
|
566
|
+
customVariablesForThirdPartyTools,
|
|
567
|
+
},
|
|
568
|
+
});
|
|
535
569
|
});
|
|
536
570
|
});
|
|
537
571
|
|
|
@@ -561,19 +595,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
561
595
|
const iframe = getIFrameEl();
|
|
562
596
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
563
597
|
});
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
598
|
+
await executeAfterWait(() => {
|
|
599
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
600
|
+
type: EmbedEvent.APP_INIT,
|
|
601
|
+
data: {
|
|
602
|
+
customisations,
|
|
603
|
+
authToken: '',
|
|
604
|
+
runtimeFilterParams: null,
|
|
605
|
+
runtimeParameterParams: null,
|
|
606
|
+
hiddenHomeLeftNavItems: [],
|
|
607
|
+
hiddenHomepageModules: [],
|
|
608
|
+
hostConfig: undefined,
|
|
609
|
+
reorderedHomepageModules: [],
|
|
610
|
+
customVariablesForThirdPartyTools,
|
|
611
|
+
},
|
|
612
|
+
});
|
|
577
613
|
});
|
|
578
614
|
});
|
|
579
615
|
|
|
@@ -599,20 +635,23 @@ describe('Unit test case for ts embed', () => {
|
|
|
599
635
|
const iframe = getIFrameEl();
|
|
600
636
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
601
637
|
});
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
638
|
+
|
|
639
|
+
await executeAfterWait(() => {
|
|
640
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
641
|
+
type: EmbedEvent.APP_INIT,
|
|
642
|
+
data: {
|
|
643
|
+
customisations,
|
|
644
|
+
authToken: '',
|
|
645
|
+
hostConfig: undefined,
|
|
646
|
+
runtimeFilterParams: null,
|
|
647
|
+
runtimeParameterParams: null,
|
|
648
|
+
hiddenHomeLeftNavItems:
|
|
649
|
+
[HomeLeftNavItem.Home, HomeLeftNavItem.MonitorSubscription],
|
|
650
|
+
hiddenHomepageModules: [],
|
|
651
|
+
reorderedHomepageModules: [],
|
|
652
|
+
customVariablesForThirdPartyTools,
|
|
653
|
+
},
|
|
654
|
+
});
|
|
616
655
|
});
|
|
617
656
|
});
|
|
618
657
|
|
|
@@ -796,6 +835,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
796
835
|
authType: AuthType.TrustedAuthTokenCookieless,
|
|
797
836
|
getAuthToken: () => Promise.reject(),
|
|
798
837
|
});
|
|
838
|
+
jest.spyOn(logger, 'error').mockResolvedValue(true);
|
|
799
839
|
});
|
|
800
840
|
|
|
801
841
|
afterEach(() => {
|
package/src/embed/ts-embed.ts
CHANGED
|
@@ -60,6 +60,7 @@ import {
|
|
|
60
60
|
FrameParams,
|
|
61
61
|
ContextMenuTriggerOptions,
|
|
62
62
|
RuntimeFilter,
|
|
63
|
+
DefaultAppInitData,
|
|
63
64
|
} from '../types';
|
|
64
65
|
import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
|
|
65
66
|
import { processEventData, processAuthFailure } from '../utils/processData';
|
|
@@ -319,43 +320,62 @@ export class TsEmbed {
|
|
|
319
320
|
});
|
|
320
321
|
}
|
|
321
322
|
|
|
323
|
+
protected async getAuthTokenForCookielessInit() {
|
|
324
|
+
let authToken = '';
|
|
325
|
+
if (this.embedConfig.authType !== AuthType.TrustedAuthTokenCookieless) return authToken;
|
|
326
|
+
|
|
327
|
+
try {
|
|
328
|
+
authToken = await getAuthenticationToken(this.embedConfig);
|
|
329
|
+
} catch (e) {
|
|
330
|
+
processAuthFailure(e, this.isPreRendered ? this.preRenderWrapper : this.el);
|
|
331
|
+
throw e;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
return authToken;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
protected async getDefaultAppInitData(): Promise<DefaultAppInitData> {
|
|
338
|
+
const authToken = await this.getAuthTokenForCookielessInit();
|
|
339
|
+
return {
|
|
340
|
+
customisations: getCustomisations(this.embedConfig, this.viewConfig),
|
|
341
|
+
authToken,
|
|
342
|
+
runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
|
|
343
|
+
? getRuntimeFilters(this.viewConfig.runtimeFilters)
|
|
344
|
+
: null,
|
|
345
|
+
runtimeParameterParams: this.viewConfig.excludeRuntimeParametersfromURL
|
|
346
|
+
? getRuntimeParameters(this.viewConfig.runtimeParameters || [])
|
|
347
|
+
: null,
|
|
348
|
+
hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
|
|
349
|
+
reorderedHomepageModules: this.viewConfig.reorderedHomepageModules || [],
|
|
350
|
+
hostConfig: this.embedConfig.hostConfig,
|
|
351
|
+
hiddenHomeLeftNavItems: this.viewConfig?.hiddenHomeLeftNavItems
|
|
352
|
+
? this.viewConfig?.hiddenHomeLeftNavItems
|
|
353
|
+
: [],
|
|
354
|
+
customVariablesForThirdPartyTools:
|
|
355
|
+
this.embedConfig.customVariablesForThirdPartyTools || {},
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
protected async getAppInitData() {
|
|
360
|
+
return this.getDefaultAppInitData();
|
|
361
|
+
}
|
|
362
|
+
|
|
322
363
|
/**
|
|
323
364
|
* Send Custom style as part of payload of APP_INIT
|
|
324
365
|
* @param _
|
|
325
366
|
* @param responder
|
|
326
367
|
*/
|
|
327
368
|
private appInitCb = async (_: any, responder: any) => {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
369
|
+
try {
|
|
370
|
+
const appInitData = await this.getAppInitData();
|
|
371
|
+
this.isAppInitialized = true;
|
|
372
|
+
responder({
|
|
373
|
+
type: EmbedEvent.APP_INIT,
|
|
374
|
+
data: appInitData,
|
|
375
|
+
});
|
|
376
|
+
} catch (e) {
|
|
377
|
+
logger.error(`AppInit failed, Error : ${e?.message}`);
|
|
336
378
|
}
|
|
337
|
-
this.isAppInitialized = true;
|
|
338
|
-
responder({
|
|
339
|
-
type: EmbedEvent.APP_INIT,
|
|
340
|
-
data: {
|
|
341
|
-
customisations: getCustomisations(this.embedConfig, this.viewConfig),
|
|
342
|
-
authToken,
|
|
343
|
-
runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
|
|
344
|
-
? getRuntimeFilters(this.viewConfig.runtimeFilters)
|
|
345
|
-
: null,
|
|
346
|
-
runtimeParameterParams: this.viewConfig.excludeRuntimeParametersfromURL
|
|
347
|
-
? getRuntimeParameters(this.viewConfig.runtimeParameters || [])
|
|
348
|
-
: null,
|
|
349
|
-
hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
|
|
350
|
-
reorderedHomepageModules: this.viewConfig.reorderedHomepageModules || [],
|
|
351
|
-
hostConfig: this.embedConfig.hostConfig,
|
|
352
|
-
hiddenHomeLeftNavItems: this.viewConfig?.hiddenHomeLeftNavItems
|
|
353
|
-
? this.viewConfig?.hiddenHomeLeftNavItems
|
|
354
|
-
: [],
|
|
355
|
-
customVariablesForThirdPartyTools:
|
|
356
|
-
this.embedConfig.customVariablesForThirdPartyTools || {},
|
|
357
|
-
},
|
|
358
|
-
});
|
|
359
379
|
};
|
|
360
380
|
|
|
361
381
|
/**
|
|
@@ -1026,8 +1046,8 @@ export class TsEmbed {
|
|
|
1026
1046
|
this.handleError('Host event type is undefined');
|
|
1027
1047
|
return null;
|
|
1028
1048
|
}
|
|
1029
|
-
|
|
1030
|
-
return this.hostEventClient.triggerHostEvent(messageType, data);
|
|
1049
|
+
// send an empty object, this is needed for liveboard default handlers
|
|
1050
|
+
return this.hostEventClient.triggerHostEvent(messageType, data || {});
|
|
1031
1051
|
}
|
|
1032
1052
|
|
|
1033
1053
|
/**
|
package/src/types.ts
CHANGED
|
@@ -4624,3 +4624,15 @@ export enum LogLevel {
|
|
|
4624
4624
|
*/
|
|
4625
4625
|
TRACE = 'TRACE',
|
|
4626
4626
|
}
|
|
4627
|
+
|
|
4628
|
+
export interface DefaultAppInitData {
|
|
4629
|
+
customisations: CustomisationsInterface;
|
|
4630
|
+
authToken: string;
|
|
4631
|
+
runtimeFilterParams: string | null;
|
|
4632
|
+
runtimeParameterParams: string | null;
|
|
4633
|
+
hiddenHomepageModules: HomepageModule[];
|
|
4634
|
+
reorderedHomepageModules: string[];
|
|
4635
|
+
hostConfig: Record<string, any>;
|
|
4636
|
+
hiddenHomeLeftNavItems: string[];
|
|
4637
|
+
customVariablesForThirdPartyTools: Record<string, any>;
|
|
4638
|
+
}
|