@thoughtspot/visual-embed-sdk 1.39.3 → 1.40.1-alpha.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.
Files changed (93) hide show
  1. package/cjs/src/embed/app.d.ts +56 -0
  2. package/cjs/src/embed/app.d.ts.map +1 -1
  3. package/cjs/src/embed/app.js +47 -8
  4. package/cjs/src/embed/app.js.map +1 -1
  5. package/cjs/src/embed/app.spec.js +322 -7
  6. package/cjs/src/embed/app.spec.js.map +1 -1
  7. package/cjs/src/embed/liveboard.d.ts +58 -1
  8. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  9. package/cjs/src/embed/liveboard.js +59 -8
  10. package/cjs/src/embed/liveboard.js.map +1 -1
  11. package/cjs/src/embed/liveboard.spec.js +206 -0
  12. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  13. package/cjs/src/embed/ts-embed.d.ts +7 -0
  14. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  15. package/cjs/src/embed/ts-embed.js +61 -7
  16. package/cjs/src/embed/ts-embed.js.map +1 -1
  17. package/cjs/src/types.d.ts +37 -6
  18. package/cjs/src/types.d.ts.map +1 -1
  19. package/cjs/src/types.js +35 -4
  20. package/cjs/src/types.js.map +1 -1
  21. package/cjs/src/utils/processTrigger.js +2 -1
  22. package/cjs/src/utils/processTrigger.js.map +1 -1
  23. package/cjs/src/utils.d.ts +6 -0
  24. package/cjs/src/utils.d.ts.map +1 -1
  25. package/cjs/src/utils.js +23 -3
  26. package/cjs/src/utils.js.map +1 -1
  27. package/cjs/src/utils.spec.js +212 -1
  28. package/cjs/src/utils.spec.js.map +1 -1
  29. package/dist/{index-ZrE8YYq8.js → index-CmEQfuE3.js} +1 -1
  30. package/dist/index-D1pyb7RG.js +7371 -0
  31. package/dist/index-DeFzsyFF.js +7371 -0
  32. package/dist/index-Dpf0rd6w.js +7371 -0
  33. package/dist/index-UuEbsISo.js +7447 -0
  34. package/dist/index-e3Uw3YFO.js +7371 -0
  35. package/dist/src/embed/app.d.ts +56 -0
  36. package/dist/src/embed/app.d.ts.map +1 -1
  37. package/dist/src/embed/bodyless-conversation.d.ts +0 -4
  38. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  39. package/dist/src/embed/liveboard.d.ts +56 -0
  40. package/dist/src/embed/liveboard.d.ts.map +1 -1
  41. package/dist/src/react/index.d.ts +0 -2
  42. package/dist/src/react/index.d.ts.map +1 -1
  43. package/dist/src/types.d.ts +16 -198
  44. package/dist/src/types.d.ts.map +1 -1
  45. package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  46. package/dist/src/utils.d.ts +6 -0
  47. package/dist/src/utils.d.ts.map +1 -1
  48. package/dist/tsembed-react.es.js +137 -224
  49. package/dist/tsembed-react.js +136 -223
  50. package/dist/tsembed.es.js +137 -224
  51. package/dist/tsembed.js +136 -223
  52. package/dist/visual-embed-sdk-react-full.d.ts +106 -204
  53. package/dist/visual-embed-sdk-react.d.ts +106 -204
  54. package/dist/visual-embed-sdk.d.ts +106 -202
  55. package/lib/src/embed/app.d.ts +56 -0
  56. package/lib/src/embed/app.d.ts.map +1 -1
  57. package/lib/src/embed/app.js +48 -9
  58. package/lib/src/embed/app.js.map +1 -1
  59. package/lib/src/embed/app.spec.js +322 -7
  60. package/lib/src/embed/app.spec.js.map +1 -1
  61. package/lib/src/embed/liveboard.d.ts +58 -1
  62. package/lib/src/embed/liveboard.d.ts.map +1 -1
  63. package/lib/src/embed/liveboard.js +60 -9
  64. package/lib/src/embed/liveboard.js.map +1 -1
  65. package/lib/src/embed/liveboard.spec.js +206 -0
  66. package/lib/src/embed/liveboard.spec.js.map +1 -1
  67. package/lib/src/embed/ts-embed.d.ts +7 -0
  68. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  69. package/lib/src/embed/ts-embed.js +61 -7
  70. package/lib/src/embed/ts-embed.js.map +1 -1
  71. package/lib/src/types.d.ts +37 -6
  72. package/lib/src/types.d.ts.map +1 -1
  73. package/lib/src/types.js +35 -4
  74. package/lib/src/types.js.map +1 -1
  75. package/lib/src/utils/processTrigger.js +2 -1
  76. package/lib/src/utils/processTrigger.js.map +1 -1
  77. package/lib/src/utils.d.ts +6 -0
  78. package/lib/src/utils.d.ts.map +1 -1
  79. package/lib/src/utils.js +21 -2
  80. package/lib/src/utils.js.map +1 -1
  81. package/lib/src/utils.spec.js +213 -2
  82. package/lib/src/utils.spec.js.map +1 -1
  83. package/lib/src/visual-embed-sdk.d.ts +106 -202
  84. package/package.json +1 -2
  85. package/src/embed/app.spec.ts +397 -8
  86. package/src/embed/app.ts +106 -12
  87. package/src/embed/liveboard.spec.ts +254 -1
  88. package/src/embed/liveboard.ts +109 -11
  89. package/src/embed/ts-embed.ts +84 -21
  90. package/src/types.ts +36 -5
  91. package/src/utils/processTrigger.ts +1 -1
  92. package/src/utils.spec.ts +250 -2
  93. package/src/utils.ts +28 -2
@@ -511,6 +511,46 @@ export interface AppViewConfig extends AllEmbedViewConfig {
511
511
  * ```
512
512
  */
513
513
  isLiveboardStylingAndGroupingEnabled?: boolean;
514
+ /**
515
+ * This flag is used to enable the full height lazy load data.
516
+ *
517
+ * @example
518
+ * ```js
519
+ * const embed = new AppEmbed('#embed-container', {
520
+ * // ...other options
521
+ * fullHeight: true,
522
+ * lazyLoadingForFullHeight: true,
523
+ * })
524
+ * ```
525
+ *
526
+ * @type {boolean}
527
+ * @default false
528
+ * @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
529
+ */
530
+ lazyLoadingForFullHeight?: boolean;
531
+ /**
532
+ * The margin to be used for lazy loading.
533
+ *
534
+ * For example, if the margin is set to '10px',
535
+ * the visualization will be loaded 10px before the its top edge is visible in the
536
+ * viewport.
537
+ *
538
+ * The format is similar to CSS margin.
539
+ *
540
+ * @example
541
+ * ```js
542
+ * const embed = new AppEmbed('#embed-container', {
543
+ * // ...other options
544
+ * fullHeight: true,
545
+ * lazyLoadingForFullHeight: true,
546
+ * // Using 0px, the visualization will be only loaded when its visible in the viewport.
547
+ * lazyLoadingMargin: '0px',
548
+ * })
549
+ * ```
550
+ * @type {string}
551
+ * @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
552
+ */
553
+ lazyLoadingMargin?: string;
514
554
  }
515
555
  /**
516
556
  * Embeds full ThoughtSpot experience in a host application.
@@ -525,6 +565,14 @@ export declare class AppEmbed extends V1Embed {
525
565
  * embedded Liveboard or visualization.
526
566
  */
527
567
  protected getEmbedParams(): string;
568
+ private sendFullHeightLazyLoadData;
569
+ /**
570
+ * This is a handler for the RequestVisibleEmbedCoordinates event.
571
+ * It is used to send the visible coordinates data to the host application.
572
+ * @param data The event payload
573
+ * @param responder The responder function
574
+ */
575
+ private requestVisibleEmbedCoordinatesHandler;
528
576
  /**
529
577
  * Constructs the URL of the ThoughtSpot app page to be rendered.
530
578
  * @param pageId The ID of the page to be embedded.
@@ -562,6 +610,14 @@ export declare class AppEmbed extends V1Embed {
562
610
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
563
611
  */
564
612
  navigateToPage(path: string | number, noReload?: boolean): void;
613
+ /**
614
+ * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
615
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
616
+ */
617
+ destroy(): void;
618
+ private postRender;
619
+ private registerLazyLoadEvents;
620
+ private unregisterLazyLoadEvents;
565
621
  /**
566
622
  * Renders the embedded application pages in the ThoughtSpot app.
567
623
  * @param renderOptions An object containing the page ID
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,6 @@ const ts_embed_1 = require("./ts-embed");
17
17
  /**
18
18
  * Pages within the ThoughtSpot app that can be embedded.
19
19
  */
20
- // eslint-disable-next-line no-shadow
21
20
  var Page;
22
21
  (function (Page) {
23
22
  /**
@@ -124,11 +123,25 @@ var ListPage;
124
123
  * @group Embed components
125
124
  */
126
125
  class AppEmbed extends ts_embed_1.V1Embed {
127
- // eslint-disable-next-line no-useless-constructor
128
126
  constructor(domSelector, viewConfig) {
129
127
  viewConfig.embedComponentType = 'AppEmbed';
130
128
  super(domSelector, viewConfig);
131
129
  this.defaultHeight = '100%';
130
+ this.sendFullHeightLazyLoadData = () => {
131
+ const data = (0, utils_1.calculateVisibleElementData)(this.iFrame);
132
+ this.trigger(types_1.HostEvent.VisibleEmbedCoordinates, data);
133
+ };
134
+ /**
135
+ * This is a handler for the RequestVisibleEmbedCoordinates event.
136
+ * It is used to send the visible coordinates data to the host application.
137
+ * @param data The event payload
138
+ * @param responder The responder function
139
+ */
140
+ this.requestVisibleEmbedCoordinatesHandler = (data, responder) => {
141
+ logger_1.logger.info('Sending RequestVisibleEmbedCoordinates', data);
142
+ const visibleCoordinatesData = (0, utils_1.calculateVisibleElementData)(this.iFrame);
143
+ responder({ type: types_1.EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
144
+ };
132
145
  /**
133
146
  * Set the iframe height as per the computed height received
134
147
  * from the ThoughtSpot app.
@@ -137,6 +150,7 @@ class AppEmbed extends ts_embed_1.V1Embed {
137
150
  this.updateIFrameHeight = (data) => {
138
151
  var _a;
139
152
  this.setIFrameHeight(Math.max(data.data, (_a = this.iFrame) === null || _a === void 0 ? void 0 : _a.scrollHeight));
153
+ this.sendFullHeightLazyLoadData();
140
154
  };
141
155
  this.embedIframeCenter = (data, responder) => {
142
156
  const obj = this.getIframeCenter();
@@ -166,6 +180,7 @@ class AppEmbed extends ts_embed_1.V1Embed {
166
180
  this.on(types_1.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
167
181
  this.on(types_1.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
168
182
  this.on(types_1.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
183
+ this.on(types_1.EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
169
184
  }
170
185
  }
171
186
  /**
@@ -173,9 +188,7 @@ class AppEmbed extends ts_embed_1.V1Embed {
173
188
  * embedded Liveboard or visualization.
174
189
  */
175
190
  getEmbedParams() {
176
- const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false,
177
- /* eslint-disable-next-line max-len */
178
- dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
191
+ const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
179
192
  let params = {};
180
193
  params[types_1.Param.PrimaryNavHidden] = !showPrimaryNavbar;
181
194
  params[types_1.Param.HideProfleAndHelp] = !!disableProfileAndHelp;
@@ -204,6 +217,10 @@ class AppEmbed extends ts_embed_1.V1Embed {
204
217
  }
205
218
  if (fullHeight === true) {
206
219
  params[types_1.Param.fullHeight] = true;
220
+ if (this.viewConfig.lazyLoadingForFullHeight) {
221
+ params[types_1.Param.IsLazyLoadingForEmbedEnabled] = true;
222
+ params[types_1.Param.RootMarginForLazyLoad] = this.viewConfig.lazyLoadingMargin;
223
+ }
207
224
  }
208
225
  if (tag) {
209
226
  params[types_1.Param.Tag] = tag;
@@ -224,7 +241,6 @@ class AppEmbed extends ts_embed_1.V1Embed {
224
241
  params[types_1.Param.enableAskSage] = enableAskSage;
225
242
  }
226
243
  if (isOnBeforeGetVizDataInterceptEnabled) {
227
- /* eslint-disable-next-line max-len */
228
244
  params[types_1.Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
229
245
  }
230
246
  if (homePageSearchBarMode) {
@@ -245,11 +261,9 @@ class AppEmbed extends ts_embed_1.V1Embed {
245
261
  === DataPanelCustomColumnGroupsAccordionState.COLLAPSE_ALL
246
262
  || dataPanelCustomGroupsAccordionInitialState
247
263
  === DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST) {
248
- /* eslint-disable-next-line max-len */
249
264
  params[types_1.Param.DataPanelCustomGroupsAccordionInitialState] = dataPanelCustomGroupsAccordionInitialState;
250
265
  }
251
266
  else {
252
- /* eslint-disable-next-line max-len */
253
267
  params[types_1.Param.DataPanelCustomGroupsAccordionInitialState] = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL;
254
268
  }
255
269
  if (discoveryExperience) {
@@ -353,6 +367,30 @@ class AppEmbed extends ts_embed_1.V1Embed {
353
367
  this.iFrame.src = `${iframeSrc.split(currentPath)[0]}${currentPath}/${path.replace(/^\/?#?\//, '')}`;
354
368
  }
355
369
  }
370
+ /**
371
+ * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
372
+ * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
373
+ */
374
+ destroy() {
375
+ super.destroy();
376
+ this.unregisterLazyLoadEvents();
377
+ }
378
+ postRender() {
379
+ this.registerLazyLoadEvents();
380
+ }
381
+ registerLazyLoadEvents() {
382
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
383
+ // TODO: Use passive: true, install modernizr to check for passive
384
+ window.addEventListener('resize', this.sendFullHeightLazyLoadData);
385
+ window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
386
+ }
387
+ }
388
+ unregisterLazyLoadEvents() {
389
+ if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
390
+ window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
391
+ window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
392
+ }
393
+ }
356
394
  /**
357
395
  * Renders the embedded application pages in the ThoughtSpot app.
358
396
  * @param renderOptions An object containing the page ID
@@ -362,6 +400,7 @@ class AppEmbed extends ts_embed_1.V1Embed {
362
400
  await super.render();
363
401
  const src = this.getIFrameSrc();
364
402
  await this.renderV1Embed(src);
403
+ this.postRender();
365
404
  return this;
366
405
  }
367
406
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,6 @@ describe('App embed tests', () => {
88
88
  });
89
89
  });
90
90
  describe('should render the correct routes for pages', () => {
91
- /* eslint-disable no-loop-func */
92
91
  const pageRouteMap = {
93
92
  [app_1.Page.Search]: 'answer',
94
93
  [app_1.Page.Answers]: 'answers',
@@ -129,7 +128,7 @@ describe('App embed tests', () => {
129
128
  for (let i = 0; i < pageIdsForModularHomes.length; i++) {
130
129
  const pageIdsForModularHome = pageIdsForModularHomes[i];
131
130
  test(`${pageIdsForModularHome}`, async () => {
132
- const route = pageRouteMap[pageIdsForModularHome];
131
+ const route = pageRouteMapForModularHome[pageIdsForModularHome];
133
132
  const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
134
133
  ...defaultViewConfig,
135
134
  modularHomeExperience: true,
@@ -529,7 +528,6 @@ describe('App embed tests', () => {
529
528
  test('Should add dataPanelCustomGroupsAccordionInitialState flag to the iframe src', async () => {
530
529
  const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
531
530
  ...defaultViewConfig,
532
- // eslint-disable-next-line max-len
533
531
  dataPanelCustomGroupsAccordionInitialState: app_1.DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST,
534
532
  });
535
533
  appEmbed.render();
@@ -538,12 +536,13 @@ describe('App embed tests', () => {
538
536
  });
539
537
  });
540
538
  test('should register event handlers to adjust iframe height', async () => {
539
+ let embedHeightCallback = () => { };
541
540
  const onSpy = jest.spyOn(app_1.AppEmbed.prototype, 'on').mockImplementation((event, callback) => {
542
541
  if (event === types_1.EmbedEvent.RouteChange) {
543
542
  callback({ data: { currentPath: '/answers' } }, jest.fn());
544
543
  }
545
544
  if (event === types_1.EmbedEvent.EmbedHeight) {
546
- callback({ data: '100%' });
545
+ embedHeightCallback = callback;
547
546
  }
548
547
  if (event === types_1.EmbedEvent.EmbedIframeCenter) {
549
548
  callback({}, jest.fn());
@@ -555,14 +554,20 @@ describe('App embed tests', () => {
555
554
  const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
556
555
  ...defaultViewConfig,
557
556
  fullHeight: true,
557
+ lazyLoadingForFullHeight: true,
558
558
  });
559
- appEmbed.render();
559
+ // Set the iframe before render
560
+ appEmbed.iFrame = document.createElement('iframe');
561
+ // Wait for render to complete
562
+ await appEmbed.render();
563
+ embedHeightCallback({ data: '100%' });
564
+ // Verify event handlers were registered
560
565
  await (0, test_utils_1.executeAfterWait)(() => {
561
566
  expect(onSpy).toHaveBeenCalledWith(types_1.EmbedEvent.EmbedHeight, expect.anything());
562
567
  expect(onSpy).toHaveBeenCalledWith(types_1.EmbedEvent.RouteChange, expect.anything());
563
568
  expect(onSpy).toHaveBeenCalledWith(types_1.EmbedEvent.EmbedIframeCenter, expect.anything());
564
- });
565
- jest.clearAllMocks();
569
+ expect(onSpy).toHaveBeenCalledWith(types_1.EmbedEvent.RequestVisibleEmbedCoordinates, expect.anything());
570
+ }, 100);
566
571
  });
567
572
  describe('Navigate to Page API', () => {
568
573
  const path = 'pinboard/e0836cad-4fdf-42d4-bd97-567a6b2a6058';
@@ -627,5 +632,315 @@ describe('App embed tests', () => {
627
632
  expect(logger_1.logger.log).toHaveBeenCalledWith('Please call render before invoking this method');
628
633
  });
629
634
  });
635
+ describe('LazyLoadingForFullHeight functionality', () => {
636
+ let mockIFrame;
637
+ beforeEach(() => {
638
+ mockIFrame = document.createElement('iframe');
639
+ mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
640
+ top: 100,
641
+ left: 150,
642
+ bottom: 600,
643
+ right: 800,
644
+ width: 650,
645
+ height: 500,
646
+ });
647
+ jest.spyOn(document, 'createElement').mockImplementation((tagName) => {
648
+ if (tagName === 'iframe') {
649
+ return mockIFrame;
650
+ }
651
+ return document.createElement(tagName);
652
+ });
653
+ });
654
+ afterEach(() => {
655
+ jest.restoreAllMocks();
656
+ });
657
+ test('should set lazyLoadingMargin parameter when provided', async () => {
658
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
659
+ ...defaultViewConfig,
660
+ fullHeight: true,
661
+ lazyLoadingForFullHeight: true,
662
+ lazyLoadingMargin: '100px 0px',
663
+ });
664
+ await appEmbed.render();
665
+ await (0, test_utils_1.executeAfterWait)(() => {
666
+ const iframeSrc = (0, test_utils_1.getIFrameSrc)();
667
+ expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
668
+ expect(iframeSrc).toContain('isFullHeightPinboard=true');
669
+ expect(iframeSrc).toContain('rootMarginForLazyLoad=100px%200px');
670
+ }, 100);
671
+ });
672
+ test('should set isLazyLoadingForEmbedEnabled=true when both fullHeight and lazyLoadingForFullHeight are enabled', async () => {
673
+ // Mock the iframe element first
674
+ mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
675
+ top: 100,
676
+ left: 150,
677
+ bottom: 600,
678
+ right: 800,
679
+ width: 650,
680
+ height: 500,
681
+ });
682
+ Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
683
+ // Mock the event handlers
684
+ const onSpy = jest.spyOn(app_1.AppEmbed.prototype, 'on').mockImplementation((event, callback) => {
685
+ return null;
686
+ });
687
+ jest.spyOn(ts_embed_1.TsEmbed.prototype, 'getIframeCenter').mockReturnValue({});
688
+ jest.spyOn(ts_embed_1.TsEmbed.prototype, 'setIFrameHeight').mockReturnValue({});
689
+ // Create the AppEmbed instance
690
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
691
+ ...defaultViewConfig,
692
+ fullHeight: true,
693
+ lazyLoadingForFullHeight: true,
694
+ });
695
+ // Set the iframe before render
696
+ appEmbed.iFrame = mockIFrame;
697
+ // Add the iframe to the DOM
698
+ const rootEl = (0, test_utils_1.getRootEl)();
699
+ rootEl.appendChild(mockIFrame);
700
+ // Wait for render to complete
701
+ await appEmbed.render();
702
+ // Wait for iframe initialization and URL parameters to be set
703
+ await (0, test_utils_1.executeAfterWait)(() => {
704
+ const iframeSrc = appEmbed.getIFrameSrc();
705
+ expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
706
+ expect(iframeSrc).toContain('isFullHeightPinboard=true');
707
+ }, 100);
708
+ });
709
+ test('should not set lazyLoadingForEmbed when lazyLoadingForFullHeight is enabled but fullHeight is false', async () => {
710
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
711
+ ...defaultViewConfig,
712
+ fullHeight: false,
713
+ lazyLoadingForFullHeight: true,
714
+ });
715
+ // Wait for render to complete
716
+ await appEmbed.render();
717
+ // Wait for iframe initialization and URL parameters to be set
718
+ await (0, test_utils_1.executeAfterWait)(() => {
719
+ const iframeSrc = (0, test_utils_1.getIFrameSrc)();
720
+ expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
721
+ expect(iframeSrc).not.toContain('isFullHeightPinboard=true');
722
+ }, 100); // 100ms wait time to ensure iframe src is set
723
+ });
724
+ test('should not set isLazyLoadingForEmbedEnabled when fullHeight is true but lazyLoadingForFullHeight is false', async () => {
725
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
726
+ ...defaultViewConfig,
727
+ fullHeight: true,
728
+ lazyLoadingForFullHeight: false,
729
+ });
730
+ // Wait for render to complete
731
+ await appEmbed.render();
732
+ // Wait for iframe initialization and URL parameters to be set
733
+ await (0, test_utils_1.executeAfterWait)(() => {
734
+ const iframeSrc = (0, test_utils_1.getIFrameSrc)();
735
+ expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
736
+ expect(iframeSrc).toContain('isFullHeightPinboard=true');
737
+ }, 100); // 100ms wait time to ensure iframe src is set
738
+ });
739
+ test('should register RequestFullHeightLazyLoadData event handler when fullHeight is enabled', async () => {
740
+ const onSpy = jest.spyOn(app_1.AppEmbed.prototype, 'on');
741
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
742
+ ...defaultViewConfig,
743
+ fullHeight: true,
744
+ });
745
+ await appEmbed.render();
746
+ expect(onSpy).toHaveBeenCalledWith(types_1.EmbedEvent.RequestVisibleEmbedCoordinates, expect.any(Function));
747
+ onSpy.mockRestore();
748
+ });
749
+ test('should send correct visible data when RequestFullHeightLazyLoadData is triggered', async () => {
750
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
751
+ ...defaultViewConfig,
752
+ fullHeight: true,
753
+ lazyLoadingForFullHeight: true,
754
+ });
755
+ const mockTrigger = jest.spyOn(appEmbed, 'trigger');
756
+ await appEmbed.render();
757
+ // Trigger the lazy load data calculation
758
+ appEmbed.sendFullHeightLazyLoadData();
759
+ expect(mockTrigger).toHaveBeenCalledWith(types_1.HostEvent.VisibleEmbedCoordinates, {
760
+ top: 0,
761
+ height: 500,
762
+ left: 0,
763
+ width: 650,
764
+ });
765
+ });
766
+ test('should calculate correct visible data for partially visible full height element', async () => {
767
+ // Mock iframe partially clipped from top and left
768
+ mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
769
+ top: -50,
770
+ left: -30,
771
+ bottom: 700,
772
+ right: 1024,
773
+ width: 1054,
774
+ height: 750,
775
+ });
776
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
777
+ ...defaultViewConfig,
778
+ fullHeight: true,
779
+ lazyLoadingForFullHeight: true,
780
+ });
781
+ const mockTrigger = jest.spyOn(appEmbed, 'trigger');
782
+ await appEmbed.render();
783
+ // Trigger the lazy load data calculation
784
+ appEmbed.sendFullHeightLazyLoadData();
785
+ expect(mockTrigger).toHaveBeenCalledWith(types_1.HostEvent.VisibleEmbedCoordinates, {
786
+ top: 50,
787
+ height: 700,
788
+ left: 30,
789
+ width: 1024, // visible width (from 0 to 1024)
790
+ });
791
+ });
792
+ test('should add window event listeners for resize and scroll when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
793
+ const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
794
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
795
+ ...defaultViewConfig,
796
+ fullHeight: true,
797
+ lazyLoadingForFullHeight: true,
798
+ });
799
+ await appEmbed.render();
800
+ // Wait for the post-render events to be registered
801
+ await (0, test_utils_1.executeAfterWait)(() => {
802
+ expect(addEventListenerSpy).toHaveBeenCalledWith('resize', expect.any(Function));
803
+ expect(addEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function), true);
804
+ }, 100);
805
+ addEventListenerSpy.mockRestore();
806
+ });
807
+ test('should remove window event listeners on destroy when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
808
+ const removeEventListenerSpy = jest.spyOn(window, 'removeEventListener');
809
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
810
+ ...defaultViewConfig,
811
+ fullHeight: true,
812
+ lazyLoadingForFullHeight: true,
813
+ });
814
+ await appEmbed.render();
815
+ appEmbed.destroy();
816
+ expect(removeEventListenerSpy).toHaveBeenCalledWith('resize', expect.any(Function));
817
+ expect(removeEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function));
818
+ removeEventListenerSpy.mockRestore();
819
+ });
820
+ test('should handle RequestVisibleEmbedCoordinates event and respond with correct data', async () => {
821
+ // Mock the iframe element
822
+ mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
823
+ top: 100,
824
+ left: 150,
825
+ bottom: 600,
826
+ right: 800,
827
+ width: 650,
828
+ height: 500,
829
+ });
830
+ Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
831
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
832
+ ...defaultViewConfig,
833
+ fullHeight: true,
834
+ lazyLoadingForFullHeight: true,
835
+ });
836
+ // Set the iframe before render
837
+ appEmbed.iFrame = mockIFrame;
838
+ await appEmbed.render();
839
+ // Create a mock responder function
840
+ const mockResponder = jest.fn();
841
+ // Trigger the handler directly
842
+ appEmbed.requestVisibleEmbedCoordinatesHandler({}, mockResponder);
843
+ // Verify the responder was called with the correct data
844
+ expect(mockResponder).toHaveBeenCalledWith({
845
+ type: types_1.EmbedEvent.RequestVisibleEmbedCoordinates,
846
+ data: {
847
+ top: 0,
848
+ height: 500,
849
+ left: 0,
850
+ width: 650,
851
+ },
852
+ });
853
+ });
854
+ });
855
+ describe('IFrame height management', () => {
856
+ let mockIFrame;
857
+ beforeEach(() => {
858
+ mockIFrame = document.createElement('iframe');
859
+ mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
860
+ top: 100,
861
+ left: 150,
862
+ bottom: 600,
863
+ right: 800,
864
+ width: 650,
865
+ height: 500,
866
+ });
867
+ Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
868
+ });
869
+ test('should not call setIFrameHeight if currentPath starts with "/embed/viz/"', () => {
870
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
871
+ ...defaultViewConfig,
872
+ fullHeight: true,
873
+ });
874
+ const spySetIFrameHeight = jest.spyOn(appEmbed, 'setIFrameHeight');
875
+ appEmbed.render();
876
+ appEmbed.setIframeHeightForNonEmbedLiveboard({
877
+ data: { currentPath: '/embed/viz/' },
878
+ type: 'Route',
879
+ });
880
+ expect(spySetIFrameHeight).not.toHaveBeenCalled();
881
+ });
882
+ test('should not call setIFrameHeight if currentPath starts with "/embed/insights/viz/"', () => {
883
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
884
+ ...defaultViewConfig,
885
+ fullHeight: true,
886
+ });
887
+ const spySetIFrameHeight = jest.spyOn(appEmbed, 'setIFrameHeight');
888
+ appEmbed.render();
889
+ appEmbed.setIframeHeightForNonEmbedLiveboard({
890
+ data: { currentPath: '/embed/insights/viz/' },
891
+ type: 'Route',
892
+ });
893
+ expect(spySetIFrameHeight).not.toHaveBeenCalled();
894
+ });
895
+ test('should call setIFrameHeight if currentPath starts with "/some/other/path/"', () => {
896
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
897
+ ...defaultViewConfig,
898
+ fullHeight: true,
899
+ });
900
+ const spySetIFrameHeight = jest
901
+ .spyOn(appEmbed, 'setIFrameHeight')
902
+ .mockImplementation(jest.fn());
903
+ appEmbed.render();
904
+ appEmbed.setIframeHeightForNonEmbedLiveboard({
905
+ data: { currentPath: '/some/other/path/' },
906
+ type: 'Route',
907
+ });
908
+ expect(spySetIFrameHeight).toHaveBeenCalled();
909
+ });
910
+ test('should update iframe height correctly', async () => {
911
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
912
+ ...defaultViewConfig,
913
+ fullHeight: true,
914
+ });
915
+ // Set up the mock iframe
916
+ appEmbed.iFrame = mockIFrame;
917
+ document.body.appendChild(mockIFrame);
918
+ await appEmbed.render();
919
+ const mockEvent = {
920
+ data: 600,
921
+ type: types_1.EmbedEvent.EmbedHeight,
922
+ };
923
+ appEmbed.updateIFrameHeight(mockEvent);
924
+ // Check if the iframe style was updated
925
+ expect(mockIFrame.style.height).toBe('600px');
926
+ });
927
+ test('should handle updateIFrameHeight with default height', async () => {
928
+ const appEmbed = new app_1.AppEmbed((0, test_utils_1.getRootEl)(), {
929
+ ...defaultViewConfig,
930
+ fullHeight: true,
931
+ });
932
+ // Set up the mock iframe
933
+ appEmbed.iFrame = mockIFrame;
934
+ document.body.appendChild(mockIFrame);
935
+ await appEmbed.render();
936
+ const mockEvent = {
937
+ data: 0,
938
+ type: types_1.EmbedEvent.EmbedHeight,
939
+ };
940
+ appEmbed.updateIFrameHeight(mockEvent);
941
+ // Should use the scrollHeight
942
+ expect(mockIFrame.style.height).toBe('500px');
943
+ });
944
+ });
630
945
  });
631
946
  //# sourceMappingURL=app.spec.js.map