@thoughtspot/visual-embed-sdk 1.47.3 → 1.49.0
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/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +11 -1
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.js +38 -0
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.d.ts +2 -0
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +7 -5
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/css-variables.d.ts +140 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +63 -2
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +57 -6
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +200 -1
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.js +7 -2
- package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.spec.js +385 -6
- package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -0
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +13 -1
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +21 -0
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.spec.js +86 -0
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +16 -1
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +5 -1
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +26 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +48 -2
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +48 -7
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +139 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +85 -0
- package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.js +17 -0
- package/cjs/src/embed/spotter-viz-utils.js.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/cjs/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js +31 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +58 -38
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +247 -151
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +397 -122
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +3 -0
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts.map +1 -1
- package/cjs/src/tokenizedFetch.js +12 -9
- package/cjs/src/tokenizedFetch.js.map +1 -1
- package/cjs/src/tokenizedFetch.spec.d.ts +2 -0
- package/cjs/src/tokenizedFetch.spec.d.ts.map +1 -0
- package/cjs/src/tokenizedFetch.spec.js +68 -0
- package/cjs/src/tokenizedFetch.spec.js.map +1 -0
- package/cjs/src/types.d.ts +309 -40
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +251 -23
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +6 -7
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/cjs/src/utils/logger.js +2 -1
- package/cjs/src/utils/logger.js.map +1 -1
- package/cjs/src/utils/logger.spec.d.ts +1 -0
- package/cjs/src/utils/logger.spec.d.ts.map +1 -1
- package/cjs/src/utils/logger.spec.js +10 -9
- package/cjs/src/utils/logger.spec.js.map +1 -1
- package/cjs/src/utils.d.ts +4 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +107 -10
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +163 -4
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-DZq20cR6.js → index-_UGCSSDR.js} +1 -1
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +2 -0
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +140 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +63 -2
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -0
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +16 -1
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +48 -2
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +85 -0
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/dist/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/dist/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +58 -38
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.spec.d.ts +2 -0
- package/dist/src/tokenizedFetch.spec.d.ts.map +1 -0
- package/dist/src/types.d.ts +309 -40
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/logger.spec.d.ts +1 -0
- package/dist/src/utils/logger.spec.d.ts.map +1 -1
- package/dist/src/utils.d.ts +4 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +3418 -2899
- package/dist/tsembed-react.js +3420 -2901
- package/dist/tsembed.es.js +3426 -2905
- package/dist/tsembed.js +3419 -2898
- package/dist/visual-embed-sdk-react-full.d.ts +687 -78
- package/dist/visual-embed-sdk-react.d.ts +687 -78
- package/dist/visual-embed-sdk.d.ts +702 -80
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +12 -2
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +38 -0
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.d.ts +2 -0
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +2 -2
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/css-variables.d.ts +140 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +63 -2
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +58 -7
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +201 -2
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.js +7 -2
- package/lib/src/embed/auto-frame-renderer.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.spec.js +387 -8
- package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -0
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +11 -0
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +22 -1
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.spec.js +86 -0
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +16 -1
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -1
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +27 -1
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +48 -2
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +49 -8
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +139 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +85 -0
- package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/lib/src/embed/spotter-viz-utils.js +13 -0
- package/lib/src/embed/spotter-viz-utils.js.map +1 -0
- package/lib/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/lib/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/lib/src/embed/spotter-viz-utils.spec.js +29 -0
- package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +58 -38
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +250 -154
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +397 -122
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +3 -0
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts.map +1 -1
- package/lib/src/tokenizedFetch.js +13 -10
- package/lib/src/tokenizedFetch.js.map +1 -1
- package/lib/src/tokenizedFetch.spec.d.ts +2 -0
- package/lib/src/tokenizedFetch.spec.d.ts.map +1 -0
- package/lib/src/tokenizedFetch.spec.js +65 -0
- package/lib/src/tokenizedFetch.spec.js.map +1 -0
- package/lib/src/types.d.ts +309 -40
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +251 -23
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +6 -7
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/lib/src/utils/logger.js +2 -1
- package/lib/src/utils/logger.js.map +1 -1
- package/lib/src/utils/logger.spec.d.ts +1 -0
- package/lib/src/utils/logger.spec.d.ts.map +1 -1
- package/lib/src/utils/logger.spec.js +10 -9
- package/lib/src/utils/logger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +4 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +103 -9
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +164 -5
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +702 -80
- package/package.json +1 -1
- package/src/auth.spec.ts +55 -1
- package/src/auth.ts +11 -2
- package/src/authToken.ts +2 -2
- package/src/css-variables.ts +175 -1
- package/src/embed/app.spec.ts +260 -3
- package/src/embed/app.ts +127 -7
- package/src/embed/auto-frame-renderer.spec.ts +457 -58
- package/src/embed/auto-frame-renderer.ts +7 -2
- package/src/embed/base.spec.ts +25 -1
- package/src/embed/base.ts +19 -5
- package/src/embed/bodyless-conversation.spec.ts +93 -0
- package/src/embed/conversation.spec.ts +34 -0
- package/src/embed/conversation.ts +22 -1
- package/src/embed/liveboard.spec.ts +163 -1
- package/src/embed/liveboard.ts +106 -10
- package/src/embed/spotter-viz-utils.spec.ts +30 -0
- package/src/embed/spotter-viz-utils.ts +94 -0
- package/src/embed/ts-embed.spec.ts +564 -231
- package/src/embed/ts-embed.ts +384 -258
- package/src/index.ts +3 -0
- package/src/react/index.tsx +3 -0
- package/src/tokenizedFetch.spec.ts +81 -0
- package/src/tokenizedFetch.ts +14 -11
- package/src/types.ts +326 -36
- package/src/utils/authService/tokenizedAuthService.spec.ts +6 -6
- package/src/utils/logger.spec.ts +11 -9
- package/src/utils/logger.ts +2 -2
- package/src/utils.spec.ts +200 -4
- package/src/utils.ts +128 -9
package/src/embed/app.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { logger } from '../utils/logger';
|
|
12
|
-
import { calculateVisibleElementData, getQueryParamString, isUndefined, isValidCssMargin, setParamIfDefined } from '../utils';
|
|
12
|
+
import { calculateVisibleElementData, getEffectiveClippingAncestors, getQueryParamString, getScrollableAncestors, isUndefined, isValidCssMargin, setParamIfDefined } from '../utils';
|
|
13
13
|
import {
|
|
14
14
|
Param,
|
|
15
15
|
DOMSelector,
|
|
@@ -19,10 +19,12 @@ import {
|
|
|
19
19
|
AllEmbedViewConfig,
|
|
20
20
|
DefaultAppInitData,
|
|
21
21
|
VisualizationOverrides,
|
|
22
|
+
SpotterFileUploadFileTypes,
|
|
22
23
|
} from '../types';
|
|
23
24
|
import { V1Embed } from './ts-embed';
|
|
24
25
|
import { SpotterChatViewConfig, SpotterSidebarViewConfig } from './conversation';
|
|
25
26
|
import { buildSpotterSidebarAppInitData } from './spotter-utils';
|
|
27
|
+
import { SpotterVizConfig, buildSpotterVizAppInitData } from './spotter-viz-utils';
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* Pages within the ThoughtSpot app that can be embedded.
|
|
@@ -116,6 +118,14 @@ export enum HomePage {
|
|
|
116
118
|
* with styling changes.
|
|
117
119
|
*/
|
|
118
120
|
ModularWithStylingChanges = 'v3',
|
|
121
|
+
/**
|
|
122
|
+
* Focused (v4) introduces the V4 homepage experience
|
|
123
|
+
* in which Watchlist and recents and incorporated together
|
|
124
|
+
* to form a more focused homepage.
|
|
125
|
+
* Pre-requisite : spotter enablement
|
|
126
|
+
* @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
|
|
127
|
+
*/
|
|
128
|
+
Focused = 'v4',
|
|
119
129
|
}
|
|
120
130
|
|
|
121
131
|
/**
|
|
@@ -551,6 +561,22 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
551
561
|
*/
|
|
552
562
|
isUnifiedSearchExperienceEnabled?: boolean;
|
|
553
563
|
|
|
564
|
+
/**
|
|
565
|
+
* This flag is used to enable the new connection experience for AppEmbed.
|
|
566
|
+
*
|
|
567
|
+
* Supported embed types: `AppEmbed`
|
|
568
|
+
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
|
|
569
|
+
* @default false
|
|
570
|
+
* @example
|
|
571
|
+
* ```js
|
|
572
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
573
|
+
* ... // other embed view config
|
|
574
|
+
* newConnectionsExperience: true,
|
|
575
|
+
* })
|
|
576
|
+
* ```
|
|
577
|
+
*/
|
|
578
|
+
newConnectionsExperience?: boolean;
|
|
579
|
+
|
|
554
580
|
/**
|
|
555
581
|
* This flag is used to enable/disable the styling and grouping in a Liveboard. Use {@link isLiveboardMasterpiecesEnabled} instead.
|
|
556
582
|
* @deprecated This flag is deprecated.
|
|
@@ -590,7 +616,7 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
590
616
|
/**
|
|
591
617
|
* Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
|
|
592
618
|
* following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
|
|
593
|
-
* This feature is GA from version 26.5.0.cl
|
|
619
|
+
* This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
|
|
594
620
|
*
|
|
595
621
|
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
596
622
|
* @type {boolean}
|
|
@@ -656,6 +682,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
656
682
|
* ```
|
|
657
683
|
*/
|
|
658
684
|
lazyLoadingForFullHeight?: boolean;
|
|
685
|
+
/**
|
|
686
|
+
* This flag is used to enable container-aware full height lazy loading.
|
|
687
|
+
*
|
|
688
|
+
* Use this when the embed is rendered inside a scrollable or clipping
|
|
689
|
+
* container instead of relying on the browser window as the only viewport.
|
|
690
|
+
*
|
|
691
|
+
* @type {boolean}
|
|
692
|
+
* @default false
|
|
693
|
+
* @hidden
|
|
694
|
+
*/
|
|
695
|
+
enableScrollableContainerLazyLoading?: boolean;
|
|
659
696
|
|
|
660
697
|
/**
|
|
661
698
|
* The margin to be used for lazy loading.
|
|
@@ -744,6 +781,29 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
744
781
|
* ```
|
|
745
782
|
*/
|
|
746
783
|
spotterChatConfig?: SpotterChatViewConfig;
|
|
784
|
+
/**
|
|
785
|
+
* Configuration for the SpotterViz interface shown on the Liveboard.
|
|
786
|
+
* Customize the brand name, description, chat input placeholder,
|
|
787
|
+
* starter prompts, and visibility of starter prompts in the SpotterViz panel.
|
|
788
|
+
*
|
|
789
|
+
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
790
|
+
* @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
|
|
791
|
+
* @example
|
|
792
|
+
* ```js
|
|
793
|
+
* const embed = new AppEmbed('#embed-container', {
|
|
794
|
+
* ... // other options
|
|
795
|
+
* spotterViz: {
|
|
796
|
+
* brandName: 'MyBrand',
|
|
797
|
+
* brandHeadline: 'Hi, there! I\'m',
|
|
798
|
+
* description: 'Ask questions about your data',
|
|
799
|
+
* inputChatPlaceholder: 'Ask a question...',
|
|
800
|
+
* hideStarterPrompts: false,
|
|
801
|
+
* customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }]
|
|
802
|
+
* },
|
|
803
|
+
* })
|
|
804
|
+
* ```
|
|
805
|
+
*/
|
|
806
|
+
spotterViz?: SpotterVizConfig;
|
|
747
807
|
/**
|
|
748
808
|
* Enables the stop answer generation button in the Spotter embed UI,
|
|
749
809
|
* allowing users to interrupt an ongoing answer generation.
|
|
@@ -814,6 +874,7 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
814
874
|
export interface AppEmbedAppInitData extends DefaultAppInitData {
|
|
815
875
|
embedParams?: {
|
|
816
876
|
spotterSidebarConfig?: SpotterSidebarViewConfig;
|
|
877
|
+
spotterVizConfig?: SpotterVizConfig;
|
|
817
878
|
};
|
|
818
879
|
}
|
|
819
880
|
|
|
@@ -826,6 +887,10 @@ export class AppEmbed extends V1Embed {
|
|
|
826
887
|
|
|
827
888
|
private defaultHeight = 500;
|
|
828
889
|
|
|
890
|
+
private lazyLoadScrollContainers: HTMLElement[] = [];
|
|
891
|
+
|
|
892
|
+
private lazyLoadResizeObserver: ResizeObserver | undefined;
|
|
893
|
+
|
|
829
894
|
constructor(domSelector: DOMSelector, viewConfig: AppViewConfig) {
|
|
830
895
|
viewConfig.embedComponentType = 'AppEmbed';
|
|
831
896
|
super(domSelector, viewConfig);
|
|
@@ -854,7 +919,12 @@ export class AppEmbed extends V1Embed {
|
|
|
854
919
|
*/
|
|
855
920
|
protected async getAppInitData(): Promise<AppEmbedAppInitData> {
|
|
856
921
|
const defaultAppInitData = await super.getAppInitData();
|
|
857
|
-
|
|
922
|
+
const sidebarInitData = buildSpotterSidebarAppInitData(
|
|
923
|
+
defaultAppInitData,
|
|
924
|
+
this.viewConfig,
|
|
925
|
+
this.handleError.bind(this),
|
|
926
|
+
);
|
|
927
|
+
return buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
|
|
858
928
|
}
|
|
859
929
|
|
|
860
930
|
/**
|
|
@@ -875,6 +945,7 @@ export class AppEmbed extends V1Embed {
|
|
|
875
945
|
hideApplicationSwitcher,
|
|
876
946
|
hideOrgSwitcher,
|
|
877
947
|
enableSearchAssist,
|
|
948
|
+
newConnectionsExperience,
|
|
878
949
|
fullHeight,
|
|
879
950
|
dataPanelV2 = true,
|
|
880
951
|
hideLiveboardHeader = false,
|
|
@@ -914,7 +985,7 @@ export class AppEmbed extends V1Embed {
|
|
|
914
985
|
minimumHeight,
|
|
915
986
|
isThisPeriodInDateFiltersEnabled,
|
|
916
987
|
enableHomepageAnnouncement = false,
|
|
917
|
-
isContinuousLiveboardPDFEnabled,
|
|
988
|
+
isContinuousLiveboardPDFEnabled = false,
|
|
918
989
|
enableLiveboardDataCache,
|
|
919
990
|
} = this.viewConfig;
|
|
920
991
|
|
|
@@ -957,10 +1028,18 @@ export class AppEmbed extends V1Embed {
|
|
|
957
1028
|
const {
|
|
958
1029
|
hideToolResponseCardBranding,
|
|
959
1030
|
toolResponseCardBrandingLabel,
|
|
1031
|
+
spotterFileUploadEnabled,
|
|
1032
|
+
spotterFileUploadFileTypes,
|
|
960
1033
|
} = spotterChatConfig;
|
|
961
1034
|
|
|
962
1035
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
963
1036
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
1037
|
+
if (spotterFileUploadEnabled !== undefined) {
|
|
1038
|
+
params[Param.SpotterFileUploadEnabled] = spotterFileUploadEnabled;
|
|
1039
|
+
}
|
|
1040
|
+
if (spotterFileUploadFileTypes !== undefined) {
|
|
1041
|
+
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
1042
|
+
}
|
|
964
1043
|
}
|
|
965
1044
|
|
|
966
1045
|
if (hideObjectSearch) {
|
|
@@ -999,6 +1078,10 @@ export class AppEmbed extends V1Embed {
|
|
|
999
1078
|
params[Param.EnableSearchAssist] = enableSearchAssist;
|
|
1000
1079
|
}
|
|
1001
1080
|
|
|
1081
|
+
if (newConnectionsExperience !== undefined) {
|
|
1082
|
+
params[Param.EnableConnectionNewExperience] = newConnectionsExperience;
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1002
1085
|
if (enable2ColumnLayout !== undefined) {
|
|
1003
1086
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
1004
1087
|
}
|
|
@@ -1122,6 +1205,10 @@ export class AppEmbed extends V1Embed {
|
|
|
1122
1205
|
if (discoveryExperience.listPageVersion !== undefined) {
|
|
1123
1206
|
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
1124
1207
|
}
|
|
1208
|
+
|
|
1209
|
+
if (discoveryExperience.homePage === HomePage.Focused) {
|
|
1210
|
+
params[Param.HomepageVersion] = HomePage.Focused;
|
|
1211
|
+
}
|
|
1125
1212
|
}
|
|
1126
1213
|
|
|
1127
1214
|
const queryParams = getQueryParamString(params, true);
|
|
@@ -1130,7 +1217,10 @@ export class AppEmbed extends V1Embed {
|
|
|
1130
1217
|
}
|
|
1131
1218
|
|
|
1132
1219
|
private sendFullHeightLazyLoadData = () => {
|
|
1133
|
-
const data = calculateVisibleElementData(
|
|
1220
|
+
const data = calculateVisibleElementData(
|
|
1221
|
+
this.iFrame,
|
|
1222
|
+
this.viewConfig.enableScrollableContainerLazyLoading,
|
|
1223
|
+
);
|
|
1134
1224
|
// this should be fired only if the lazyLoadingForFullHeight and fullHeight are true
|
|
1135
1225
|
if(this.viewConfig.lazyLoadingForFullHeight && this.viewConfig.fullHeight){
|
|
1136
1226
|
this.trigger(HostEvent.VisibleEmbedCoordinates, data);
|
|
@@ -1145,7 +1235,10 @@ export class AppEmbed extends V1Embed {
|
|
|
1145
1235
|
*/
|
|
1146
1236
|
private requestVisibleEmbedCoordinatesHandler = (data: MessagePayload, responder: any) => {
|
|
1147
1237
|
logger.info('Sending RequestVisibleEmbedCoordinates', data);
|
|
1148
|
-
const visibleCoordinatesData = calculateVisibleElementData(
|
|
1238
|
+
const visibleCoordinatesData = calculateVisibleElementData(
|
|
1239
|
+
this.iFrame,
|
|
1240
|
+
this.viewConfig.enableScrollableContainerLazyLoading,
|
|
1241
|
+
);
|
|
1149
1242
|
responder({ type: EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
|
|
1150
1243
|
}
|
|
1151
1244
|
|
|
@@ -1294,17 +1387,44 @@ export class AppEmbed extends V1Embed {
|
|
|
1294
1387
|
}
|
|
1295
1388
|
|
|
1296
1389
|
private registerLazyLoadEvents() {
|
|
1390
|
+
if (!this.iFrame) {
|
|
1391
|
+
return;
|
|
1392
|
+
}
|
|
1297
1393
|
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
1394
|
+
this.unregisterLazyLoadEvents();
|
|
1298
1395
|
// TODO: Use passive: true, install modernizr to check for passive
|
|
1299
1396
|
window.addEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
1300
1397
|
window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
|
|
1398
|
+
if (!this.viewConfig.enableScrollableContainerLazyLoading) {
|
|
1399
|
+
return;
|
|
1400
|
+
}
|
|
1401
|
+
this.lazyLoadScrollContainers = getScrollableAncestors(this.iFrame);
|
|
1402
|
+
this.lazyLoadScrollContainers.forEach((scrollContainer) => {
|
|
1403
|
+
scrollContainer.addEventListener('scroll', this.sendFullHeightLazyLoadData);
|
|
1404
|
+
});
|
|
1405
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
1406
|
+
const resizeTargets = new Set([
|
|
1407
|
+
this.iFrame.parentElement,
|
|
1408
|
+
...getEffectiveClippingAncestors(this.iFrame),
|
|
1409
|
+
].filter(Boolean) as HTMLElement[]);
|
|
1410
|
+
this.lazyLoadResizeObserver = new ResizeObserver(this.sendFullHeightLazyLoadData);
|
|
1411
|
+
resizeTargets.forEach((resizeTarget) => {
|
|
1412
|
+
this.lazyLoadResizeObserver.observe(resizeTarget);
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1301
1415
|
}
|
|
1302
1416
|
}
|
|
1303
1417
|
|
|
1304
1418
|
private unregisterLazyLoadEvents() {
|
|
1305
1419
|
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
1306
1420
|
window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
1307
|
-
window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
|
|
1421
|
+
window.removeEventListener('scroll', this.sendFullHeightLazyLoadData, true);
|
|
1422
|
+
this.lazyLoadResizeObserver?.disconnect();
|
|
1423
|
+
this.lazyLoadResizeObserver = undefined;
|
|
1424
|
+
this.lazyLoadScrollContainers.forEach((scrollContainer) => {
|
|
1425
|
+
scrollContainer.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
|
|
1426
|
+
});
|
|
1427
|
+
this.lazyLoadScrollContainers = [];
|
|
1308
1428
|
}
|
|
1309
1429
|
}
|
|
1310
1430
|
|