@thoughtspot/visual-embed-sdk 1.35.6 → 1.35.8
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 +176 -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-BGnxP5NY.js +7370 -0
- 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 +176 -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 +198 -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,47 @@ 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
|
+
|
|
192
|
+
test('Host event with falsy param', async () => {
|
|
193
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
194
|
+
liveboardId: '123',
|
|
195
|
+
...defaultViewConfig,
|
|
196
|
+
});
|
|
197
|
+
liveboardEmbed.render();
|
|
198
|
+
mockProcessTrigger.mockResolvedValue({ session: 'test' });
|
|
199
|
+
await executeAfterWait(async () => {
|
|
200
|
+
await liveboardEmbed.trigger(
|
|
201
|
+
HostEvent.Save,
|
|
202
|
+
false,
|
|
203
|
+
);
|
|
204
|
+
expect(mockProcessTrigger).toHaveBeenCalledWith(
|
|
205
|
+
getIFrameEl(),
|
|
206
|
+
HostEvent.Save,
|
|
207
|
+
'http://tshost',
|
|
208
|
+
false,
|
|
209
|
+
);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
|
|
174
213
|
test('should set proper height, width and min-height to iframe', async () => {
|
|
175
214
|
// we dont have origin specific policies so just checking if
|
|
176
215
|
// policies are ending with ;
|
|
@@ -250,19 +289,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
250
289
|
const iframe = getIFrameEl();
|
|
251
290
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
252
291
|
});
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
292
|
+
await executeAfterWait(() => {
|
|
293
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
294
|
+
type: EmbedEvent.APP_INIT,
|
|
295
|
+
data: {
|
|
296
|
+
customisations,
|
|
297
|
+
authToken: '',
|
|
298
|
+
runtimeFilterParams: null,
|
|
299
|
+
runtimeParameterParams: null,
|
|
300
|
+
hiddenHomeLeftNavItems: [],
|
|
301
|
+
hiddenHomepageModules: [],
|
|
302
|
+
hostConfig: undefined,
|
|
303
|
+
reorderedHomepageModules: [],
|
|
304
|
+
customVariablesForThirdPartyTools,
|
|
305
|
+
},
|
|
306
|
+
});
|
|
266
307
|
});
|
|
267
308
|
});
|
|
268
309
|
|
|
@@ -283,19 +324,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
283
324
|
const iframe = getIFrameEl();
|
|
284
325
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
285
326
|
});
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
327
|
+
await executeAfterWait(() => {
|
|
328
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
329
|
+
type: EmbedEvent.APP_INIT,
|
|
330
|
+
data: {
|
|
331
|
+
customisations: customisationsView,
|
|
332
|
+
authToken: '',
|
|
333
|
+
runtimeFilterParams: null,
|
|
334
|
+
runtimeParameterParams: null,
|
|
335
|
+
hiddenHomeLeftNavItems: [],
|
|
336
|
+
hiddenHomepageModules: [],
|
|
337
|
+
hostConfig: undefined,
|
|
338
|
+
reorderedHomepageModules: [],
|
|
339
|
+
customVariablesForThirdPartyTools,
|
|
340
|
+
},
|
|
341
|
+
});
|
|
299
342
|
});
|
|
300
343
|
});
|
|
301
344
|
|
|
@@ -321,19 +364,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
321
364
|
const iframe = getIFrameEl();
|
|
322
365
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
323
366
|
});
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
367
|
+
await executeAfterWait(() => {
|
|
368
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
369
|
+
type: EmbedEvent.APP_INIT,
|
|
370
|
+
data: {
|
|
371
|
+
customisations,
|
|
372
|
+
authToken: '',
|
|
373
|
+
hostConfig: undefined,
|
|
374
|
+
runtimeFilterParams: null,
|
|
375
|
+
runtimeParameterParams: null,
|
|
376
|
+
hiddenHomeLeftNavItems: [],
|
|
377
|
+
hiddenHomepageModules: [HomepageModule.MyLibrary, HomepageModule.Learning],
|
|
378
|
+
reorderedHomepageModules: [],
|
|
379
|
+
customVariablesForThirdPartyTools,
|
|
380
|
+
},
|
|
381
|
+
});
|
|
337
382
|
});
|
|
338
383
|
});
|
|
339
384
|
|
|
@@ -356,20 +401,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
356
401
|
const iframe = getIFrameEl();
|
|
357
402
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
358
403
|
});
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
404
|
+
await executeAfterWait(() => {
|
|
405
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
406
|
+
type: EmbedEvent.APP_INIT,
|
|
407
|
+
data: {
|
|
408
|
+
customisations,
|
|
409
|
+
authToken: '',
|
|
410
|
+
hostConfig: undefined,
|
|
411
|
+
runtimeFilterParams: null,
|
|
412
|
+
runtimeParameterParams: null,
|
|
413
|
+
hiddenHomeLeftNavItems: [],
|
|
414
|
+
hiddenHomepageModules: [],
|
|
415
|
+
reorderedHomepageModules: [],
|
|
416
|
+
customVariablesForThirdPartyTools,
|
|
417
|
+
},
|
|
418
|
+
});
|
|
373
419
|
});
|
|
374
420
|
});
|
|
375
421
|
|
|
@@ -395,19 +441,22 @@ describe('Unit test case for ts embed', () => {
|
|
|
395
441
|
const iframe = getIFrameEl();
|
|
396
442
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
397
443
|
});
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
444
|
+
await executeAfterWait(() => {
|
|
445
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
446
|
+
type: EmbedEvent.APP_INIT,
|
|
447
|
+
data: {
|
|
448
|
+
customisations,
|
|
449
|
+
authToken: '',
|
|
450
|
+
hostConfig: undefined,
|
|
451
|
+
runtimeFilterParams: null,
|
|
452
|
+
runtimeParameterParams: null,
|
|
453
|
+
hiddenHomeLeftNavItems: [],
|
|
454
|
+
hiddenHomepageModules: [],
|
|
455
|
+
reorderedHomepageModules:
|
|
456
|
+
[HomepageModule.MyLibrary, HomepageModule.Watchlist],
|
|
457
|
+
customVariablesForThirdPartyTools,
|
|
458
|
+
},
|
|
459
|
+
});
|
|
411
460
|
});
|
|
412
461
|
});
|
|
413
462
|
|
|
@@ -436,19 +485,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
436
485
|
const iframe = getIFrameEl();
|
|
437
486
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
438
487
|
});
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
488
|
+
await executeAfterWait(() => {
|
|
489
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
490
|
+
type: EmbedEvent.APP_INIT,
|
|
491
|
+
data: {
|
|
492
|
+
customisations,
|
|
493
|
+
authToken: '',
|
|
494
|
+
runtimeFilterParams: null,
|
|
495
|
+
runtimeParameterParams: 'param1=color¶mVal1=blue',
|
|
496
|
+
hiddenHomeLeftNavItems: [],
|
|
497
|
+
hiddenHomepageModules: [],
|
|
498
|
+
hostConfig: undefined,
|
|
499
|
+
reorderedHomepageModules: [],
|
|
500
|
+
customVariablesForThirdPartyTools,
|
|
501
|
+
},
|
|
502
|
+
});
|
|
452
503
|
});
|
|
453
504
|
});
|
|
454
505
|
|
|
@@ -478,19 +529,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
478
529
|
const iframe = getIFrameEl();
|
|
479
530
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
480
531
|
});
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
532
|
+
await executeAfterWait(() => {
|
|
533
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
534
|
+
type: EmbedEvent.APP_INIT,
|
|
535
|
+
data: {
|
|
536
|
+
customisations,
|
|
537
|
+
authToken: '',
|
|
538
|
+
runtimeFilterParams: 'col1=color&op1=EQ&val1=blue',
|
|
539
|
+
runtimeParameterParams: null,
|
|
540
|
+
hiddenHomeLeftNavItems: [],
|
|
541
|
+
hiddenHomepageModules: [],
|
|
542
|
+
hostConfig: undefined,
|
|
543
|
+
reorderedHomepageModules: [],
|
|
544
|
+
customVariablesForThirdPartyTools,
|
|
545
|
+
},
|
|
546
|
+
});
|
|
494
547
|
});
|
|
495
548
|
});
|
|
496
549
|
|
|
@@ -519,19 +572,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
519
572
|
const iframe = getIFrameEl();
|
|
520
573
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
521
574
|
});
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
575
|
+
await executeAfterWait(() => {
|
|
576
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
577
|
+
type: EmbedEvent.APP_INIT,
|
|
578
|
+
data: {
|
|
579
|
+
customisations,
|
|
580
|
+
authToken: '',
|
|
581
|
+
runtimeFilterParams: null,
|
|
582
|
+
runtimeParameterParams: null,
|
|
583
|
+
hiddenHomeLeftNavItems: [],
|
|
584
|
+
hiddenHomepageModules: [],
|
|
585
|
+
hostConfig: undefined,
|
|
586
|
+
reorderedHomepageModules: [],
|
|
587
|
+
customVariablesForThirdPartyTools,
|
|
588
|
+
},
|
|
589
|
+
});
|
|
535
590
|
});
|
|
536
591
|
});
|
|
537
592
|
|
|
@@ -561,19 +616,21 @@ describe('Unit test case for ts embed', () => {
|
|
|
561
616
|
const iframe = getIFrameEl();
|
|
562
617
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
563
618
|
});
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
619
|
+
await executeAfterWait(() => {
|
|
620
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
621
|
+
type: EmbedEvent.APP_INIT,
|
|
622
|
+
data: {
|
|
623
|
+
customisations,
|
|
624
|
+
authToken: '',
|
|
625
|
+
runtimeFilterParams: null,
|
|
626
|
+
runtimeParameterParams: null,
|
|
627
|
+
hiddenHomeLeftNavItems: [],
|
|
628
|
+
hiddenHomepageModules: [],
|
|
629
|
+
hostConfig: undefined,
|
|
630
|
+
reorderedHomepageModules: [],
|
|
631
|
+
customVariablesForThirdPartyTools,
|
|
632
|
+
},
|
|
633
|
+
});
|
|
577
634
|
});
|
|
578
635
|
});
|
|
579
636
|
|
|
@@ -599,20 +656,23 @@ describe('Unit test case for ts embed', () => {
|
|
|
599
656
|
const iframe = getIFrameEl();
|
|
600
657
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
601
658
|
});
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
659
|
+
|
|
660
|
+
await executeAfterWait(() => {
|
|
661
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
662
|
+
type: EmbedEvent.APP_INIT,
|
|
663
|
+
data: {
|
|
664
|
+
customisations,
|
|
665
|
+
authToken: '',
|
|
666
|
+
hostConfig: undefined,
|
|
667
|
+
runtimeFilterParams: null,
|
|
668
|
+
runtimeParameterParams: null,
|
|
669
|
+
hiddenHomeLeftNavItems:
|
|
670
|
+
[HomeLeftNavItem.Home, HomeLeftNavItem.MonitorSubscription],
|
|
671
|
+
hiddenHomepageModules: [],
|
|
672
|
+
reorderedHomepageModules: [],
|
|
673
|
+
customVariablesForThirdPartyTools,
|
|
674
|
+
},
|
|
675
|
+
});
|
|
616
676
|
});
|
|
617
677
|
});
|
|
618
678
|
|
|
@@ -796,6 +856,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
796
856
|
authType: AuthType.TrustedAuthTokenCookieless,
|
|
797
857
|
getAuthToken: () => Promise.reject(),
|
|
798
858
|
});
|
|
859
|
+
jest.spyOn(logger, 'error').mockResolvedValue(true);
|
|
799
860
|
});
|
|
800
861
|
|
|
801
862
|
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
|
/**
|
|
@@ -1013,7 +1033,7 @@ export class TsEmbed {
|
|
|
1013
1033
|
*/
|
|
1014
1034
|
public async trigger<HostEventT extends HostEvent, PayloadT>(
|
|
1015
1035
|
messageType: HostEventT,
|
|
1016
|
-
data
|
|
1036
|
+
data: TriggerPayload<PayloadT, HostEventT> = ({} as any),
|
|
1017
1037
|
): Promise<TriggerResponse<PayloadT, HostEventT>> {
|
|
1018
1038
|
uploadMixpanelEvent(`${MIXPANEL_EVENT.VISUAL_SDK_TRIGGER}-${messageType}`);
|
|
1019
1039
|
|
|
@@ -1026,7 +1046,7 @@ export class TsEmbed {
|
|
|
1026
1046
|
this.handleError('Host event type is undefined');
|
|
1027
1047
|
return null;
|
|
1028
1048
|
}
|
|
1029
|
-
|
|
1049
|
+
// send an empty object, this is needed for liveboard default handlers
|
|
1030
1050
|
return this.hostEventClient.triggerHostEvent(messageType, data);
|
|
1031
1051
|
}
|
|
1032
1052
|
|
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
|
+
}
|