@thoughtspot/visual-embed-sdk 1.24.0-dev → 1.24.0-preRender.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.
- package/cjs/package.json +2 -3
- package/cjs/src/embed/TsEmbed.d.ts +302 -0
- package/cjs/src/embed/TsEmbed.d.ts.map +1 -0
- package/cjs/src/embed/TsEmbed.js +851 -0
- package/cjs/src/embed/TsEmbed.js.map +1 -0
- package/cjs/src/embed/app.d.ts +4 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +9 -2
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/base.d.ts +2 -0
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +2 -0
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +3 -2
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +6 -5
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +4 -1
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +9 -2
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +1 -0
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +1 -0
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +5 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +10 -2
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +14 -7
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +94 -63
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +47 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +3 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +2 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/mixpanel-service.spec.js +1 -0
- package/cjs/src/mixpanel-service.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +5 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +8 -8
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/types.d.ts +60 -19
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +7 -13
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.js +80 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -0
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +61 -0
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
- package/cjs/src/utils/graphql/answerService/answerService.js +182 -0
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.js +201 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
- package/cjs/src/utils/graphql/graphql-request.d.ts +15 -0
- package/cjs/src/utils/graphql/graphql-request.d.ts.map +1 -0
- package/cjs/src/utils/graphql/graphql-request.js +40 -0
- package/cjs/src/utils/graphql/graphql-request.js.map +1 -0
- package/cjs/src/utils/graphql/sourceService.d.ts +8 -0
- package/cjs/src/utils/graphql/sourceService.d.ts.map +1 -0
- package/cjs/src/utils/graphql/sourceService.js +69 -0
- package/cjs/src/utils/graphql/sourceService.js.map +1 -0
- package/cjs/src/utils/graphql/sourceService.spec.d.ts +2 -0
- package/cjs/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
- package/cjs/src/utils/graphql/sourceService.spec.js +12 -0
- package/cjs/src/utils/graphql/sourceService.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +7 -11
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +13 -17
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils.d.ts +6 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +26 -1
- package/cjs/src/utils.js.map +1 -1
- package/dist/src/embed/app.d.ts +4 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +2 -0
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +3 -2
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +4 -1
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +1 -0
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +5 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +14 -7
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +5 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +60 -19
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
- package/dist/src/utils/graphql/answerService/answerService.d.ts +61 -0
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
- package/dist/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
- package/dist/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/graphql-request.d.ts +15 -0
- package/dist/src/utils/graphql/graphql-request.d.ts.map +1 -0
- package/dist/src/utils/graphql/sourceService.d.ts +8 -0
- package/dist/src/utils/graphql/sourceService.d.ts.map +1 -0
- package/dist/src/utils/graphql/sourceService.spec.d.ts +2 -0
- package/dist/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +513 -150
- package/dist/tsembed-react.js +516 -149
- package/dist/tsembed.es.js +556 -146
- package/dist/tsembed.js +556 -145
- package/dist/visual-embed-sdk-react-full.d.ts +152 -33
- package/dist/visual-embed-sdk-react.d.ts +152 -33
- package/dist/visual-embed-sdk.d.ts +147 -32
- package/lib/package.json +2 -3
- package/lib/src/embed/TsEmbed.d.ts +302 -0
- package/lib/src/embed/TsEmbed.d.ts.map +1 -0
- package/lib/src/embed/TsEmbed.js +847 -0
- package/lib/src/embed/TsEmbed.js.map +1 -0
- package/lib/src/embed/app.d.ts +4 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +9 -2
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/base.d.ts +2 -0
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +2 -0
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +3 -2
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +6 -5
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/sage.d.ts +4 -1
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +9 -2
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +1 -0
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +1 -0
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +5 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +10 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +14 -7
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +94 -63
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +47 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +3 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +2 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/mixpanel-service.spec.js +1 -0
- package/lib/src/mixpanel-service.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +5 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +7 -7
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/types.d.ts +60 -19
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +6 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/answerService/answer-queries.js +77 -0
- package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -0
- package/lib/src/utils/graphql/answerService/answerService.d.ts +61 -0
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
- package/lib/src/utils/graphql/answerService/answerService.js +177 -0
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -0
- package/lib/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
- package/lib/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
- package/lib/src/utils/graphql/answerService/answerService.spec.js +199 -0
- package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
- package/lib/src/utils/graphql/graphql-request.d.ts +15 -0
- package/lib/src/utils/graphql/graphql-request.d.ts.map +1 -0
- package/lib/src/utils/graphql/graphql-request.js +36 -0
- package/lib/src/utils/graphql/graphql-request.js.map +1 -0
- package/lib/src/utils/graphql/sourceService.d.ts +8 -0
- package/lib/src/utils/graphql/sourceService.d.ts.map +1 -0
- package/lib/src/utils/graphql/sourceService.js +65 -0
- package/lib/src/utils/graphql/sourceService.js.map +1 -0
- package/lib/src/utils/graphql/sourceService.spec.d.ts +2 -0
- package/lib/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
- package/lib/src/utils/graphql/sourceService.spec.js +10 -0
- package/lib/src/utils/graphql/sourceService.spec.js.map +1 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +8 -12
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +14 -18
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils.d.ts +6 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +23 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +153 -33
- package/package.json +2 -3
- package/src/embed/app.ts +13 -6
- package/src/embed/base.ts +2 -0
- package/src/embed/liveboard.ts +7 -5
- package/src/embed/sage.ts +13 -2
- package/src/embed/search-bar.tsx +2 -0
- package/src/embed/search.ts +14 -2
- package/src/embed/ts-embed.spec.ts +49 -0
- package/src/embed/ts-embed.ts +116 -64
- package/src/index.ts +5 -0
- package/src/mixpanel-service.spec.ts +1 -0
- package/src/mixpanel-service.ts +1 -0
- package/src/react/index.tsx +50 -45
- package/src/types.ts +64 -21
- package/src/utils/graphql/answerService/answer-queries.ts +80 -0
- package/src/utils/graphql/answerService/answerService.spec.ts +231 -0
- package/src/utils/graphql/answerService/answerService.ts +234 -0
- package/src/utils/graphql/graphql-request.ts +45 -0
- package/src/utils/graphql/sourceService.spec.ts +10 -0
- package/src/utils/graphql/sourceService.ts +71 -0
- package/src/utils/processData.spec.ts +15 -25
- package/src/utils/processData.ts +13 -15
- package/src/utils.ts +24 -0
- package/src/utils/answerService.spec.ts +0 -41
- package/src/utils/answerService.ts +0 -63
package/dist/tsembed-react.es.js
CHANGED
|
@@ -353,6 +353,29 @@ function getDOMNode(domSelector) {
|
|
|
353
353
|
return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
|
|
354
354
|
}
|
|
355
355
|
const deepMerge = (target, source) => merge(target, source);
|
|
356
|
+
const getOperationNameFromQuery = (query) => {
|
|
357
|
+
const regex = /(?:query|mutation)\s+(\w+)/;
|
|
358
|
+
const matches = query.match(regex);
|
|
359
|
+
return matches === null || matches === void 0 ? void 0 : matches[1];
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
*
|
|
363
|
+
* @param obj
|
|
364
|
+
*/
|
|
365
|
+
function removeTypename(obj) {
|
|
366
|
+
if (!obj || typeof obj !== 'object')
|
|
367
|
+
return obj;
|
|
368
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
369
|
+
for (const key in obj) {
|
|
370
|
+
if (key === '__typename') {
|
|
371
|
+
delete obj[key];
|
|
372
|
+
}
|
|
373
|
+
else if (typeof obj[key] === 'object') {
|
|
374
|
+
removeTypename(obj[key]);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
return obj;
|
|
378
|
+
}
|
|
356
379
|
const setStyleProperties = (element, styleProperties) => {
|
|
357
380
|
if (!element || !styleProperties)
|
|
358
381
|
return;
|
|
@@ -629,27 +652,27 @@ var HomepageModule;
|
|
|
629
652
|
/**
|
|
630
653
|
* Search bar
|
|
631
654
|
*/
|
|
632
|
-
HomepageModule["Search"] = "
|
|
655
|
+
HomepageModule["Search"] = "SEARCH";
|
|
633
656
|
/**
|
|
634
657
|
* kPI watchlist module
|
|
635
658
|
*/
|
|
636
|
-
HomepageModule["Watchlist"] = "
|
|
659
|
+
HomepageModule["Watchlist"] = "WATCHLIST";
|
|
637
660
|
/**
|
|
638
661
|
* favorite objects
|
|
639
662
|
*/
|
|
640
|
-
HomepageModule["Favorite"] = "
|
|
663
|
+
HomepageModule["Favorite"] = "FAVORITE";
|
|
641
664
|
/**
|
|
642
665
|
* List of answers and liveboards
|
|
643
666
|
*/
|
|
644
|
-
HomepageModule["MyLibrary"] = "
|
|
667
|
+
HomepageModule["MyLibrary"] = "MY_LIBRARY";
|
|
645
668
|
/**
|
|
646
669
|
* Trending list
|
|
647
670
|
*/
|
|
648
|
-
HomepageModule["Trending"] = "
|
|
671
|
+
HomepageModule["Trending"] = "TRENDING";
|
|
649
672
|
/**
|
|
650
673
|
* Learning videos
|
|
651
674
|
*/
|
|
652
|
-
HomepageModule["Learning"] = "
|
|
675
|
+
HomepageModule["Learning"] = "LEARNING";
|
|
653
676
|
})(HomepageModule || (HomepageModule = {}));
|
|
654
677
|
/**
|
|
655
678
|
* Event types emitted by the embedded ThoughtSpot application.
|
|
@@ -2797,12 +2820,6 @@ var Action;
|
|
|
2797
2820
|
*/
|
|
2798
2821
|
Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
|
|
2799
2822
|
})(Action || (Action = {}));
|
|
2800
|
-
// eslint-disable-next-line no-shadow
|
|
2801
|
-
var OperationType;
|
|
2802
|
-
(function (OperationType) {
|
|
2803
|
-
OperationType["GetChartWithData"] = "GetChartWithData";
|
|
2804
|
-
OperationType["GetTableWithHeadlineData"] = "GetTableWithHeadlineData";
|
|
2805
|
-
})(OperationType || (OperationType = {}));
|
|
2806
2823
|
var PrefetchFeatures;
|
|
2807
2824
|
(function (PrefetchFeatures) {
|
|
2808
2825
|
PrefetchFeatures["FullApp"] = "FullApp";
|
|
@@ -8918,6 +8935,7 @@ function emptyQueue() {
|
|
|
8918
8935
|
* @param sessionInfo
|
|
8919
8936
|
*/
|
|
8920
8937
|
function initMixpanel(sessionInfo) {
|
|
8938
|
+
var _a;
|
|
8921
8939
|
if (!sessionInfo || !sessionInfo.mixpanelToken) {
|
|
8922
8940
|
return;
|
|
8923
8941
|
}
|
|
@@ -8935,6 +8953,7 @@ function initMixpanel(sessionInfo) {
|
|
|
8935
8953
|
clusterId: sessionInfo.clusterId,
|
|
8936
8954
|
clusterName: sessionInfo.clusterName,
|
|
8937
8955
|
releaseVersion: sessionInfo.releaseVersion,
|
|
8956
|
+
hostAppUrl: ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.host) || '',
|
|
8938
8957
|
});
|
|
8939
8958
|
isMixpanelInitialized = true;
|
|
8940
8959
|
emptyQueue();
|
|
@@ -10196,58 +10215,351 @@ const renderInQueue = (fn) => {
|
|
|
10196
10215
|
|
|
10197
10216
|
/**
|
|
10198
10217
|
*
|
|
10199
|
-
* @param
|
|
10200
|
-
* @param query
|
|
10201
|
-
* @param
|
|
10218
|
+
* @param root0
|
|
10219
|
+
* @param root0.query
|
|
10220
|
+
* @param root0.variables
|
|
10221
|
+
* @param root0.thoughtSpotHost
|
|
10222
|
+
* @param root0.isCompositeQuery
|
|
10223
|
+
*/
|
|
10224
|
+
async function graphqlQuery({ query, variables, thoughtSpotHost, isCompositeQuery = false, }) {
|
|
10225
|
+
const operationName = getOperationNameFromQuery(query);
|
|
10226
|
+
try {
|
|
10227
|
+
const response = await fetch(`${thoughtSpotHost}/prism/?op=${operationName}`, {
|
|
10228
|
+
method: 'POST',
|
|
10229
|
+
headers: {
|
|
10230
|
+
'content-type': 'application/json;charset=UTF-8',
|
|
10231
|
+
'x-requested-by': 'ThoughtSpot',
|
|
10232
|
+
accept: '*/*',
|
|
10233
|
+
'accept-language': 'en-us',
|
|
10234
|
+
},
|
|
10235
|
+
body: JSON.stringify({
|
|
10236
|
+
operationName,
|
|
10237
|
+
query,
|
|
10238
|
+
variables,
|
|
10239
|
+
}),
|
|
10240
|
+
credentials: 'include',
|
|
10241
|
+
});
|
|
10242
|
+
const result = await response.json();
|
|
10243
|
+
const dataValues = Object.values(result.data);
|
|
10244
|
+
return (isCompositeQuery) ? result.data : dataValues[0];
|
|
10245
|
+
}
|
|
10246
|
+
catch (error) {
|
|
10247
|
+
return error;
|
|
10248
|
+
}
|
|
10249
|
+
}
|
|
10250
|
+
|
|
10251
|
+
const getSourceDetailQuery = `
|
|
10252
|
+
query GetSourceDetail($ids: [GUID!]!) {
|
|
10253
|
+
getSourceDetailById(ids: $ids, type: LOGICAL_TABLE) {
|
|
10254
|
+
id
|
|
10255
|
+
name
|
|
10256
|
+
description
|
|
10257
|
+
authorName
|
|
10258
|
+
authorDisplayName
|
|
10259
|
+
isExternal
|
|
10260
|
+
type
|
|
10261
|
+
created
|
|
10262
|
+
modified
|
|
10263
|
+
columns {
|
|
10264
|
+
id
|
|
10265
|
+
name
|
|
10266
|
+
author
|
|
10267
|
+
authorDisplayName
|
|
10268
|
+
description
|
|
10269
|
+
dataType
|
|
10270
|
+
type
|
|
10271
|
+
modified
|
|
10272
|
+
ownerName
|
|
10273
|
+
owner
|
|
10274
|
+
dataRecency
|
|
10275
|
+
sources {
|
|
10276
|
+
tableId
|
|
10277
|
+
tableName
|
|
10278
|
+
columnId
|
|
10279
|
+
columnName
|
|
10280
|
+
__typename
|
|
10281
|
+
}
|
|
10282
|
+
synonyms
|
|
10283
|
+
cohortAnswerId
|
|
10284
|
+
__typename
|
|
10285
|
+
}
|
|
10286
|
+
relationships
|
|
10287
|
+
destinationRelationships
|
|
10288
|
+
dataSourceId
|
|
10289
|
+
__typename
|
|
10290
|
+
}
|
|
10291
|
+
}
|
|
10292
|
+
`;
|
|
10293
|
+
const sourceDetailCache = new Map();
|
|
10294
|
+
/**
|
|
10295
|
+
*
|
|
10202
10296
|
* @param thoughtSpotHost
|
|
10297
|
+
* @param sourceId
|
|
10203
10298
|
*/
|
|
10204
|
-
function
|
|
10205
|
-
|
|
10206
|
-
|
|
10207
|
-
|
|
10208
|
-
|
|
10209
|
-
|
|
10210
|
-
|
|
10211
|
-
|
|
10212
|
-
|
|
10213
|
-
|
|
10214
|
-
|
|
10215
|
-
|
|
10216
|
-
|
|
10217
|
-
|
|
10218
|
-
|
|
10219
|
-
|
|
10220
|
-
|
|
10221
|
-
|
|
10222
|
-
|
|
10223
|
-
|
|
10224
|
-
|
|
10299
|
+
async function getSourceDetail(thoughtSpotHost, sourceId) {
|
|
10300
|
+
if (sourceDetailCache.has(sourceId)) {
|
|
10301
|
+
return sourceDetailCache.get(sourceId);
|
|
10302
|
+
}
|
|
10303
|
+
const details = await graphqlQuery({
|
|
10304
|
+
query: getSourceDetailQuery,
|
|
10305
|
+
variables: {
|
|
10306
|
+
ids: [sourceId],
|
|
10307
|
+
},
|
|
10308
|
+
thoughtSpotHost,
|
|
10309
|
+
});
|
|
10310
|
+
const souceDetails = details[0];
|
|
10311
|
+
sourceDetailCache.set(sourceId, souceDetails);
|
|
10312
|
+
return souceDetails;
|
|
10313
|
+
}
|
|
10314
|
+
|
|
10315
|
+
const bachSessionId = `
|
|
10316
|
+
id {
|
|
10317
|
+
sessionId
|
|
10318
|
+
genNo
|
|
10319
|
+
acSession {
|
|
10320
|
+
sessionId
|
|
10321
|
+
genNo
|
|
10322
|
+
}
|
|
10323
|
+
}
|
|
10324
|
+
`;
|
|
10325
|
+
const getUnaggregatedAnswerSession = `
|
|
10326
|
+
mutation GetUnAggregatedAnswerSession($session: BachSessionIdInput!, $columns: [UserPointSelectionInput!]!) {
|
|
10327
|
+
Answer__getUnaggregatedAnswer(session: $session, columns: $columns) {
|
|
10328
|
+
${bachSessionId}
|
|
10329
|
+
answer {
|
|
10330
|
+
visualizations {
|
|
10331
|
+
... on TableViz {
|
|
10332
|
+
columns {
|
|
10333
|
+
column {
|
|
10334
|
+
id
|
|
10335
|
+
name
|
|
10336
|
+
referencedColumns {
|
|
10337
|
+
guid
|
|
10338
|
+
displayName
|
|
10339
|
+
}
|
|
10340
|
+
}
|
|
10341
|
+
}
|
|
10342
|
+
}
|
|
10343
|
+
}
|
|
10344
|
+
}
|
|
10345
|
+
}
|
|
10346
|
+
}
|
|
10347
|
+
`;
|
|
10348
|
+
const removeColumns = `
|
|
10349
|
+
mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!], $columnIds: [GUID!]) {
|
|
10350
|
+
Answer__removeColumns(
|
|
10351
|
+
session: $session
|
|
10352
|
+
logicalColumnIds: $logicalColumnIds
|
|
10353
|
+
columnIds: $columnIds
|
|
10354
|
+
) {
|
|
10355
|
+
${bachSessionId}
|
|
10356
|
+
}
|
|
10357
|
+
}
|
|
10358
|
+
`;
|
|
10359
|
+
const addColumns = `
|
|
10360
|
+
mutation AddColumns($session: BachSessionIdInput!, $columns: [AnswerColumnInfo!]!) {
|
|
10361
|
+
Answer__addColumn(session: $session, columns: $columns) {
|
|
10362
|
+
${bachSessionId}
|
|
10363
|
+
}
|
|
10364
|
+
}
|
|
10365
|
+
`;
|
|
10366
|
+
const getAnswerData = `
|
|
10367
|
+
query GetTableWithHeadlineData($session: BachSessionIdInput!, $deadline: Int!, $dataPaginationParams: DataPaginationParamsInput!) {
|
|
10368
|
+
getAnswer(session: $session) {
|
|
10369
|
+
${bachSessionId}
|
|
10370
|
+
answer {
|
|
10371
|
+
id
|
|
10372
|
+
visualizations {
|
|
10373
|
+
id
|
|
10374
|
+
... on TableViz {
|
|
10375
|
+
columns {
|
|
10376
|
+
column {
|
|
10377
|
+
id
|
|
10378
|
+
name
|
|
10379
|
+
type
|
|
10380
|
+
aggregationType
|
|
10381
|
+
dataType
|
|
10382
|
+
}
|
|
10383
|
+
}
|
|
10384
|
+
data(deadline: $deadline, pagination: $dataPaginationParams)
|
|
10385
|
+
}
|
|
10386
|
+
}
|
|
10387
|
+
}
|
|
10388
|
+
}
|
|
10389
|
+
}
|
|
10390
|
+
`;
|
|
10391
|
+
|
|
10392
|
+
// eslint-disable-next-line no-shadow
|
|
10393
|
+
var OperationType;
|
|
10394
|
+
(function (OperationType) {
|
|
10395
|
+
OperationType["GetChartWithData"] = "GetChartWithData";
|
|
10396
|
+
OperationType["GetTableWithHeadlineData"] = "GetTableWithHeadlineData";
|
|
10397
|
+
})(OperationType || (OperationType = {}));
|
|
10398
|
+
/**
|
|
10399
|
+
* Class representing the answer service provided with the
|
|
10400
|
+
* custom action payload. This service could be used to run
|
|
10401
|
+
* graphql queries in the context of the answer on which the
|
|
10402
|
+
* custom action was triggered.
|
|
10403
|
+
*
|
|
10404
|
+
* @example
|
|
10405
|
+
* ```js
|
|
10406
|
+
* embed.on(EmbedEvent.CustomAction, e => {
|
|
10407
|
+
* const underlying = await e.answerService.getUnderlyingDataForPoint([
|
|
10408
|
+
* 'col name 1'
|
|
10409
|
+
* ]);
|
|
10410
|
+
* const data = await underlying.fetchData(0, 100);
|
|
10411
|
+
* })
|
|
10412
|
+
* ```
|
|
10413
|
+
* @version
|
|
10414
|
+
* ThoughtSpot: 9.9.0.cl / SDK: 1.25.0
|
|
10415
|
+
*/
|
|
10416
|
+
class AnswerService {
|
|
10417
|
+
constructor(session, answer, thoughtSpotHost, selectedPoints) {
|
|
10418
|
+
this.session = session;
|
|
10419
|
+
this.answer = answer;
|
|
10420
|
+
this.thoughtSpotHost = thoughtSpotHost;
|
|
10421
|
+
this.selectedPoints = selectedPoints;
|
|
10422
|
+
this.session = removeTypename(session);
|
|
10423
|
+
}
|
|
10424
|
+
async getSourceDetail() {
|
|
10425
|
+
const sourceId = this.answer.sources[0].header.guid;
|
|
10426
|
+
return getSourceDetail(this.thoughtSpotHost, sourceId);
|
|
10427
|
+
}
|
|
10428
|
+
async removeColumns(columnIds) {
|
|
10429
|
+
return this.executeQuery(removeColumns, {
|
|
10430
|
+
logicalColumnIds: columnIds,
|
|
10431
|
+
});
|
|
10432
|
+
}
|
|
10433
|
+
async addColumns(columnIds) {
|
|
10434
|
+
return this.executeQuery(addColumns, {
|
|
10435
|
+
columns: columnIds.map((colId) => ({ logicalColumnId: colId })),
|
|
10436
|
+
});
|
|
10437
|
+
}
|
|
10438
|
+
async fetchData(offset = 0, size = 1000) {
|
|
10439
|
+
const { answer } = await this.executeQuery(getAnswerData, {
|
|
10440
|
+
deadline: 0,
|
|
10441
|
+
dataPaginationParams: {
|
|
10442
|
+
isClientPaginated: true,
|
|
10443
|
+
offset,
|
|
10444
|
+
size,
|
|
10445
|
+
},
|
|
10446
|
+
});
|
|
10447
|
+
const { columns, data } = answer.visualizations[0];
|
|
10448
|
+
return {
|
|
10449
|
+
columns,
|
|
10450
|
+
data,
|
|
10451
|
+
};
|
|
10452
|
+
}
|
|
10453
|
+
/**
|
|
10454
|
+
*
|
|
10455
|
+
* @param userLocale
|
|
10456
|
+
* @param omitInfo Omit the download Info on top of the CSV
|
|
10457
|
+
* @returns Response
|
|
10458
|
+
*/
|
|
10459
|
+
async fetchCSVBlob(userLocale = 'en-us', omitInfo = false) {
|
|
10460
|
+
if (omitInfo) {
|
|
10461
|
+
console.warn('omitInfo not supported yet.');
|
|
10225
10462
|
}
|
|
10226
|
-
|
|
10227
|
-
|
|
10463
|
+
const fetchUrl = `${this.thoughtSpotHost}/prism/download/answer/csv?sessionId=${this.session.sessionId}&genNo=${this.session.genNo}&userLocale=${userLocale}&exportFileName=data&omitInfo=${omitInfo}`;
|
|
10464
|
+
return fetch(fetchUrl, {
|
|
10465
|
+
credentials: 'include',
|
|
10466
|
+
});
|
|
10467
|
+
}
|
|
10468
|
+
async getUnderlyingDataForPoint(outputColumnNames, selectedPoints) {
|
|
10469
|
+
if (!selectedPoints && !this.selectedPoints) {
|
|
10470
|
+
throw new Error('Needs to be triggered in context of a point');
|
|
10228
10471
|
}
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
|
|
10232
|
-
|
|
10472
|
+
if (!selectedPoints) {
|
|
10473
|
+
selectedPoints = getSelectedPointsForUnderlyingDataQuery(this.selectedPoints);
|
|
10474
|
+
}
|
|
10475
|
+
const sourceDetail = await this.getSourceDetail();
|
|
10476
|
+
const ouputColumnGuids = getGuidsFromColumnNames(sourceDetail, outputColumnNames);
|
|
10477
|
+
const unAggAnswer = await graphqlQuery({
|
|
10478
|
+
query: getUnaggregatedAnswerSession,
|
|
10479
|
+
variables: {
|
|
10480
|
+
session: this.session,
|
|
10481
|
+
columns: selectedPoints,
|
|
10482
|
+
},
|
|
10483
|
+
thoughtSpotHost: this.thoughtSpotHost,
|
|
10484
|
+
});
|
|
10485
|
+
const unaggAnswerSession = new AnswerService(unAggAnswer.id, unAggAnswer.answer, this.thoughtSpotHost);
|
|
10486
|
+
const currentColumns = new Set(unAggAnswer.answer.visualizations[0].columns
|
|
10487
|
+
.map((c) => c.column.referencedColumns[0].guid));
|
|
10488
|
+
const columnsToAdd = [...ouputColumnGuids].filter((col) => !currentColumns.has(col));
|
|
10489
|
+
if (columnsToAdd.length) {
|
|
10490
|
+
await unaggAnswerSession.addColumns(columnsToAdd);
|
|
10491
|
+
}
|
|
10492
|
+
const columnsToRemove = [...currentColumns].filter((col) => !ouputColumnGuids.has(col));
|
|
10493
|
+
if (columnsToRemove.length) {
|
|
10494
|
+
await unaggAnswerSession.removeColumns(columnsToRemove);
|
|
10495
|
+
}
|
|
10496
|
+
return unaggAnswerSession;
|
|
10497
|
+
}
|
|
10498
|
+
async executeQuery(query, variables) {
|
|
10499
|
+
const data = await graphqlQuery({
|
|
10500
|
+
query,
|
|
10501
|
+
variables: {
|
|
10502
|
+
session: this.session,
|
|
10503
|
+
...variables,
|
|
10504
|
+
},
|
|
10505
|
+
thoughtSpotHost: this.thoughtSpotHost,
|
|
10506
|
+
isCompositeQuery: false,
|
|
10507
|
+
});
|
|
10508
|
+
this.session = deepMerge(this.session, (data === null || data === void 0 ? void 0 : data.id) || {});
|
|
10509
|
+
return data;
|
|
10510
|
+
}
|
|
10511
|
+
getSession() {
|
|
10512
|
+
return this.session;
|
|
10513
|
+
}
|
|
10514
|
+
}
|
|
10515
|
+
/**
|
|
10516
|
+
*
|
|
10517
|
+
* @param sourceDetail
|
|
10518
|
+
* @param colNames
|
|
10519
|
+
*/
|
|
10520
|
+
function getGuidsFromColumnNames(sourceDetail, colNames) {
|
|
10521
|
+
const cols = sourceDetail.columns.reduce((colSet, col) => {
|
|
10522
|
+
colSet[col.name] = col;
|
|
10523
|
+
return colSet;
|
|
10524
|
+
}, {});
|
|
10525
|
+
return new Set(colNames.map((colName) => {
|
|
10526
|
+
const col = cols[colName];
|
|
10527
|
+
return col.id;
|
|
10528
|
+
}));
|
|
10529
|
+
}
|
|
10530
|
+
/**
|
|
10531
|
+
*
|
|
10532
|
+
* @param selectedPoints
|
|
10533
|
+
*/
|
|
10534
|
+
function getSelectedPointsForUnderlyingDataQuery(selectedPoints) {
|
|
10535
|
+
const underlyingDataPoint = [];
|
|
10536
|
+
/**
|
|
10537
|
+
*
|
|
10538
|
+
* @param colVal
|
|
10539
|
+
*/
|
|
10540
|
+
function addPointFromColVal(colVal) {
|
|
10541
|
+
const dataType = colVal.column.dataType;
|
|
10542
|
+
const id = colVal.column.id;
|
|
10543
|
+
let dataValue;
|
|
10544
|
+
if (dataType === 'DATE') {
|
|
10545
|
+
dataValue = [{
|
|
10546
|
+
epochRange: {
|
|
10547
|
+
startEpoch: colVal.value,
|
|
10548
|
+
},
|
|
10549
|
+
}];
|
|
10233
10550
|
}
|
|
10234
10551
|
else {
|
|
10235
|
-
|
|
10236
|
-
dataPaginationParams: {
|
|
10237
|
-
isClientPaginated: true,
|
|
10238
|
-
offset: offset * batchSize,
|
|
10239
|
-
size: batchSize,
|
|
10240
|
-
},
|
|
10241
|
-
};
|
|
10552
|
+
dataValue = [{ value: colVal.value }];
|
|
10242
10553
|
}
|
|
10243
|
-
|
|
10244
|
-
|
|
10245
|
-
|
|
10554
|
+
underlyingDataPoint.push({
|
|
10555
|
+
columnId: colVal.column.id,
|
|
10556
|
+
dataValue,
|
|
10246
10557
|
});
|
|
10247
|
-
}
|
|
10248
|
-
|
|
10249
|
-
|
|
10250
|
-
};
|
|
10558
|
+
}
|
|
10559
|
+
selectedPoints.forEach((p) => {
|
|
10560
|
+
p.selectedAttributes.forEach(addPointFromColVal);
|
|
10561
|
+
});
|
|
10562
|
+
return underlyingDataPoint;
|
|
10251
10563
|
}
|
|
10252
10564
|
|
|
10253
10565
|
/**
|
|
@@ -10256,16 +10568,12 @@ function getAnswerServiceInstance(session, query, operation, thoughtSpotHost) {
|
|
|
10256
10568
|
* @param thoughtSpotHost
|
|
10257
10569
|
*/
|
|
10258
10570
|
function processCustomAction(e, thoughtSpotHost) {
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
|
|
10262
|
-
|
|
10263
|
-
|
|
10264
|
-
|
|
10265
|
-
answerService,
|
|
10266
|
-
};
|
|
10267
|
-
}
|
|
10268
|
-
return e;
|
|
10571
|
+
const { session, embedAnswerData, contextMenuPoints } = e.data;
|
|
10572
|
+
const answerService = new AnswerService(session, embedAnswerData, thoughtSpotHost, contextMenuPoints === null || contextMenuPoints === void 0 ? void 0 : contextMenuPoints.selectedPoints);
|
|
10573
|
+
return {
|
|
10574
|
+
...e,
|
|
10575
|
+
answerService,
|
|
10576
|
+
};
|
|
10269
10577
|
}
|
|
10270
10578
|
/**
|
|
10271
10579
|
*
|
|
@@ -10410,7 +10718,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
10410
10718
|
});
|
|
10411
10719
|
}
|
|
10412
10720
|
|
|
10413
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-
|
|
10721
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.1";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js --runInBand","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^40.1.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.13.1","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"6.7.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"40 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
10414
10722
|
|
|
10415
10723
|
/**
|
|
10416
10724
|
* Copyright (c) 2022
|
|
@@ -10442,6 +10750,7 @@ const V1EventMap = {};
|
|
|
10442
10750
|
class TsEmbed {
|
|
10443
10751
|
constructor(domSelector, viewConfig) {
|
|
10444
10752
|
this.isAppInitialized = false;
|
|
10753
|
+
this.embedComponentType = 'TsEmbed';
|
|
10445
10754
|
/**
|
|
10446
10755
|
* Should we encode URL Query Params using base64 encoding which thoughtspot
|
|
10447
10756
|
* will generate for embedding. This provides additional security to
|
|
@@ -10451,6 +10760,7 @@ class TsEmbed {
|
|
|
10451
10760
|
*/
|
|
10452
10761
|
this.shouldEncodeUrlQueryParams = false;
|
|
10453
10762
|
this.defaultHiddenActions = [Action.ReportError];
|
|
10763
|
+
this.subscribedListeners = {};
|
|
10454
10764
|
/**
|
|
10455
10765
|
* Send Custom style as part of payload of APP_INIT
|
|
10456
10766
|
*
|
|
@@ -10473,6 +10783,7 @@ class TsEmbed {
|
|
|
10473
10783
|
? getRuntimeFilters(this.viewConfig.runtimeFilters)
|
|
10474
10784
|
: null,
|
|
10475
10785
|
hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
|
|
10786
|
+
reorderedHomepageModules: this.viewConfig.reorderedHomepageModules || [],
|
|
10476
10787
|
hostConfig: this.embedConfig.hostConfig,
|
|
10477
10788
|
hiddenHomeLeftNavItems: ((_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.hiddenHomeLeftNavItems)
|
|
10478
10789
|
? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
|
|
@@ -10522,6 +10833,7 @@ class TsEmbed {
|
|
|
10522
10833
|
this.registerAppInit();
|
|
10523
10834
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_EMBED_CREATE, {
|
|
10524
10835
|
...viewConfig,
|
|
10836
|
+
embedComponentType: this.embedComponentType,
|
|
10525
10837
|
});
|
|
10526
10838
|
}
|
|
10527
10839
|
/**
|
|
@@ -10590,23 +10902,37 @@ class TsEmbed {
|
|
|
10590
10902
|
* and executes the registered callbacks accordingly.
|
|
10591
10903
|
*/
|
|
10592
10904
|
subscribeToEvents() {
|
|
10593
|
-
|
|
10905
|
+
this.unsubscribeToEvents();
|
|
10906
|
+
const messageEventListener = (event) => {
|
|
10594
10907
|
const eventType = this.getEventType(event);
|
|
10595
10908
|
const eventPort = this.getEventPort(event);
|
|
10596
10909
|
const eventData = this.formatEventData(event, eventType);
|
|
10597
10910
|
if (event.source === this.iFrame.contentWindow) {
|
|
10598
10911
|
this.executeCallbacks(eventType, processEventData(eventType, eventData, this.thoughtSpotHost, this.el), eventPort);
|
|
10599
10912
|
}
|
|
10600
|
-
}
|
|
10601
|
-
window.addEventListener('
|
|
10913
|
+
};
|
|
10914
|
+
window.addEventListener('message', messageEventListener);
|
|
10915
|
+
const onlineEventListener = (e) => {
|
|
10602
10916
|
this.trigger(HostEvent.Reload);
|
|
10603
|
-
}
|
|
10604
|
-
window.addEventListener('
|
|
10917
|
+
};
|
|
10918
|
+
window.addEventListener('online', onlineEventListener);
|
|
10919
|
+
const offlineEventListener = (e) => {
|
|
10605
10920
|
const offlineWarning = 'Network not Detected. Embed is offline. Please reconnect and refresh';
|
|
10606
10921
|
this.executeCallbacks(EmbedEvent.Error, {
|
|
10607
10922
|
offlineWarning,
|
|
10608
10923
|
});
|
|
10609
10924
|
console.warn(offlineWarning);
|
|
10925
|
+
};
|
|
10926
|
+
window.addEventListener('offline', offlineEventListener);
|
|
10927
|
+
this.subscribedListeners = {
|
|
10928
|
+
message: messageEventListener,
|
|
10929
|
+
online: onlineEventListener,
|
|
10930
|
+
offline: offlineEventListener,
|
|
10931
|
+
};
|
|
10932
|
+
}
|
|
10933
|
+
unsubscribeToEvents() {
|
|
10934
|
+
Object.keys(this.subscribedListeners).forEach((key) => {
|
|
10935
|
+
window.removeEventListener(key, this.subscribedListeners[key]);
|
|
10610
10936
|
});
|
|
10611
10937
|
}
|
|
10612
10938
|
/**
|
|
@@ -10778,14 +11104,22 @@ class TsEmbed {
|
|
|
10778
11104
|
iFrame.name = 'ThoughtSpot Embedded Analytics';
|
|
10779
11105
|
return iFrame;
|
|
10780
11106
|
}
|
|
11107
|
+
handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
|
|
11108
|
+
if (this.isPreRendered) {
|
|
11109
|
+
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
|
|
11110
|
+
}
|
|
11111
|
+
else {
|
|
11112
|
+
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
11113
|
+
}
|
|
11114
|
+
}
|
|
10781
11115
|
/**
|
|
10782
11116
|
* Renders the embedded ThoughtSpot app in an iframe and sets up
|
|
10783
11117
|
* event listeners.
|
|
10784
11118
|
*
|
|
10785
|
-
* @param url
|
|
10786
|
-
* @param
|
|
11119
|
+
* @param url - The URL of the embedded ThoughtSpot app.
|
|
11120
|
+
* @param showPreRenderByDefault - The flag to show the preRender by default.
|
|
10787
11121
|
*/
|
|
10788
|
-
async renderIFrame(url) {
|
|
11122
|
+
async renderIFrame(url, showPreRenderByDefault = false) {
|
|
10789
11123
|
if (this.isError) {
|
|
10790
11124
|
return null;
|
|
10791
11125
|
}
|
|
@@ -10805,12 +11139,7 @@ class TsEmbed {
|
|
|
10805
11139
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
10806
11140
|
return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
10807
11141
|
if (!isLoggedIn) {
|
|
10808
|
-
|
|
10809
|
-
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
10810
|
-
}
|
|
10811
|
-
else {
|
|
10812
|
-
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
10813
|
-
}
|
|
11142
|
+
this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
|
|
10814
11143
|
return;
|
|
10815
11144
|
}
|
|
10816
11145
|
this.iFrame = this.iFrame || this.createIframeEl(url);
|
|
@@ -10832,12 +11161,7 @@ class TsEmbed {
|
|
|
10832
11161
|
this.iFrame.addEventListener('error', () => {
|
|
10833
11162
|
nextInQueue();
|
|
10834
11163
|
});
|
|
10835
|
-
|
|
10836
|
-
this.insertIntoDOMForPreRender(this.iFrame);
|
|
10837
|
-
}
|
|
10838
|
-
else {
|
|
10839
|
-
this.insertIntoDOM(this.iFrame);
|
|
10840
|
-
}
|
|
11164
|
+
this.handleInsertionIntoDOM(this.iFrame, showPreRenderByDefault);
|
|
10841
11165
|
const prefetchIframe = document.querySelectorAll('.prefetchIframe');
|
|
10842
11166
|
if (prefetchIframe.length) {
|
|
10843
11167
|
prefetchIframe.forEach((el) => {
|
|
@@ -10850,12 +11174,7 @@ class TsEmbed {
|
|
|
10850
11174
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
|
|
10851
11175
|
error: JSON.stringify(error),
|
|
10852
11176
|
});
|
|
10853
|
-
|
|
10854
|
-
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
10855
|
-
}
|
|
10856
|
-
else {
|
|
10857
|
-
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
10858
|
-
}
|
|
11177
|
+
this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
|
|
10859
11178
|
this.handleError(error);
|
|
10860
11179
|
});
|
|
10861
11180
|
});
|
|
@@ -10869,40 +11188,46 @@ class TsEmbed {
|
|
|
10869
11188
|
}
|
|
10870
11189
|
createPreRenderWrapper(child) {
|
|
10871
11190
|
if (!this.viewConfig.preRenderId) {
|
|
10872
|
-
throw new Error('
|
|
11191
|
+
throw new Error('PreRender id is required');
|
|
10873
11192
|
}
|
|
10874
11193
|
const preRenderIds = this.getPreRenderIds();
|
|
10875
|
-
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
}
|
|
11194
|
+
[preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
|
|
11195
|
+
.map((id) => document.getElementById(id))
|
|
11196
|
+
.filter((element) => element)
|
|
11197
|
+
.forEach((existingElement) => existingElement.remove());
|
|
10880
11198
|
const preRenderWrapper = document.createElement('div');
|
|
10881
11199
|
preRenderWrapper.id = preRenderIds.wrapper;
|
|
10882
11200
|
setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
|
|
10883
|
-
const preRenderShield = document.createElement('div');
|
|
10884
|
-
preRenderShield.id = preRenderIds.shield;
|
|
10885
|
-
setStyleProperties(preRenderShield, { position: 'absolute',
|
|
11201
|
+
// const preRenderShield = document.createElement('div');
|
|
11202
|
+
// preRenderShield.id = preRenderIds.shield;
|
|
11203
|
+
// setStyleProperties(preRenderShield, { position: 'absolute',
|
|
11204
|
+
// width: '100%', height: '100%' });
|
|
10886
11205
|
child.id = preRenderIds.child;
|
|
10887
11206
|
preRenderWrapper.appendChild(child);
|
|
10888
|
-
preRenderWrapper.appendChild(preRenderShield);
|
|
11207
|
+
// preRenderWrapper.appendChild(preRenderShield);
|
|
10889
11208
|
this.preRenderWrapper = preRenderWrapper;
|
|
10890
|
-
this.preRenderShield = preRenderShield;
|
|
11209
|
+
// this.preRenderShield = preRenderShield;
|
|
10891
11210
|
this.preRenderChild = child;
|
|
10892
11211
|
return preRenderWrapper;
|
|
10893
11212
|
}
|
|
10894
|
-
|
|
11213
|
+
connectPreRendered() {
|
|
10895
11214
|
const preRenderIds = this.getPreRenderIds();
|
|
10896
11215
|
this.preRenderWrapper = this.preRenderWrapper
|
|
10897
11216
|
|| document.getElementById(preRenderIds.wrapper);
|
|
10898
|
-
this.preRenderShield = this.preRenderShield
|
|
10899
|
-
|
|
11217
|
+
// this.preRenderShield = this.preRenderShield
|
|
11218
|
+
// || document.getElementById(preRenderIds.shield);
|
|
10900
11219
|
this.preRenderChild = this.preRenderChild
|
|
10901
11220
|
|| document.getElementById(preRenderIds.child);
|
|
10902
|
-
|
|
10903
|
-
|
|
11221
|
+
if (this.preRenderWrapper && this.preRenderChild) {
|
|
11222
|
+
this.isPreRendered = true;
|
|
11223
|
+
this.iFrame = this.preRenderChild;
|
|
11224
|
+
}
|
|
11225
|
+
return this.isPreRenderAvailable();
|
|
11226
|
+
}
|
|
11227
|
+
isPreRenderAvailable() {
|
|
11228
|
+
return this.isPreRendered;
|
|
10904
11229
|
}
|
|
10905
|
-
insertIntoDOMForPreRender(child) {
|
|
11230
|
+
insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
|
|
10906
11231
|
let childNode;
|
|
10907
11232
|
if (typeof child === 'string') {
|
|
10908
11233
|
const divChildNode = document.createElement('div');
|
|
@@ -10913,8 +11238,13 @@ class TsEmbed {
|
|
|
10913
11238
|
childNode = child;
|
|
10914
11239
|
}
|
|
10915
11240
|
const preRenderWrapper = this.createPreRenderWrapper(childNode);
|
|
11241
|
+
if (showPreRenderByDefault) {
|
|
11242
|
+
this.showPreRender();
|
|
11243
|
+
}
|
|
11244
|
+
else {
|
|
11245
|
+
this.hidePreRender();
|
|
11246
|
+
}
|
|
10916
11247
|
document.body.appendChild(preRenderWrapper);
|
|
10917
|
-
this.hidePreRender();
|
|
10918
11248
|
}
|
|
10919
11249
|
hidePreRender() {
|
|
10920
11250
|
if (!this.isPreRenderAvailable()) {
|
|
@@ -10931,28 +11261,33 @@ class TsEmbed {
|
|
|
10931
11261
|
left: '0',
|
|
10932
11262
|
});
|
|
10933
11263
|
const childBoundingRect = this.preRenderChild.getBoundingClientRect();
|
|
10934
|
-
setStyleProperties(this.preRenderShield, {
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
});
|
|
11264
|
+
// setStyleProperties(this.preRenderShield, {
|
|
11265
|
+
// opacity: '0',
|
|
11266
|
+
// pointerEvents: 'none',
|
|
11267
|
+
// zIndex: '1',
|
|
11268
|
+
// width: `${childBoundingRect.width}px`,
|
|
11269
|
+
// height: `${childBoundingRect.height}px`,
|
|
11270
|
+
// position: 'absolute',
|
|
11271
|
+
// top: '0',
|
|
11272
|
+
// left: '0',
|
|
11273
|
+
// });
|
|
11274
|
+
this.unsubscribeToEvents();
|
|
10944
11275
|
}
|
|
10945
11276
|
showPreRender() {
|
|
10946
11277
|
if (!this.isPreRenderAvailable()) {
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
|
|
10951
|
-
|
|
11278
|
+
const isAvailable = this.connectPreRendered();
|
|
11279
|
+
if (!isAvailable) {
|
|
11280
|
+
// if the Embed component is nor preRendered , Render it now and
|
|
11281
|
+
// show it (hide is defalt behaviour)
|
|
11282
|
+
console.log('No preRender found, creating new ');
|
|
11283
|
+
this.preRender(true);
|
|
11284
|
+
return;
|
|
11285
|
+
}
|
|
10952
11286
|
}
|
|
10953
11287
|
this.syncPreRenderStyle();
|
|
10954
11288
|
removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
|
|
10955
|
-
setStyleProperties(this.preRenderShield, { zIndex: '-1' });
|
|
11289
|
+
// setStyleProperties(this.preRenderShield, { zIndex: '-1' });
|
|
11290
|
+
this.subscribeToEvents();
|
|
10956
11291
|
}
|
|
10957
11292
|
syncPreRenderStyle() {
|
|
10958
11293
|
if (!this.el) {
|
|
@@ -11179,8 +11514,10 @@ class TsEmbed {
|
|
|
11179
11514
|
}
|
|
11180
11515
|
/**
|
|
11181
11516
|
* Creates the preRender shell
|
|
11517
|
+
*
|
|
11518
|
+
* @param showPreRenderByDefault
|
|
11182
11519
|
*/
|
|
11183
|
-
preRender() {
|
|
11520
|
+
preRender(showPreRenderByDefault = false) {
|
|
11184
11521
|
this.isPreRendered = true;
|
|
11185
11522
|
return this;
|
|
11186
11523
|
}
|
|
@@ -11219,6 +11556,7 @@ class TsEmbed {
|
|
|
11219
11556
|
var _a;
|
|
11220
11557
|
try {
|
|
11221
11558
|
(_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode.removeChild(this.insertedDomEl);
|
|
11559
|
+
this.unsubscribeToEvents();
|
|
11222
11560
|
}
|
|
11223
11561
|
catch (e) {
|
|
11224
11562
|
console.log('Error destroying TS Embed', e);
|
|
@@ -11256,9 +11594,10 @@ class V1Embed extends TsEmbed {
|
|
|
11256
11594
|
* Render the app in an iframe and set up event handlers
|
|
11257
11595
|
*
|
|
11258
11596
|
* @param iframeSrc
|
|
11597
|
+
* @param showPreRenderByDefault - if true the preRender will be shown by default
|
|
11259
11598
|
*/
|
|
11260
|
-
renderV1Embed(iframeSrc) {
|
|
11261
|
-
return this.renderIFrame(iframeSrc);
|
|
11599
|
+
renderV1Embed(iframeSrc, showPreRenderByDefault = false) {
|
|
11600
|
+
return this.renderIFrame(iframeSrc, showPreRenderByDefault);
|
|
11262
11601
|
}
|
|
11263
11602
|
getRootIframeSrc() {
|
|
11264
11603
|
const queryParams = this.getEmbedParams();
|
|
@@ -11304,6 +11643,7 @@ class V1Embed extends TsEmbed {
|
|
|
11304
11643
|
class SearchBarEmbed extends TsEmbed {
|
|
11305
11644
|
constructor(domSelector, viewConfig) {
|
|
11306
11645
|
super(domSelector);
|
|
11646
|
+
this.embedComponentType = 'SearchBarEmbed';
|
|
11307
11647
|
this.viewConfig = viewConfig;
|
|
11308
11648
|
}
|
|
11309
11649
|
/**
|
|
@@ -11382,6 +11722,7 @@ class SageEmbed extends V1Embed {
|
|
|
11382
11722
|
// eslint-disable-next-line no-useless-constructor
|
|
11383
11723
|
constructor(domSelector, viewConfig) {
|
|
11384
11724
|
super(domSelector, viewConfig);
|
|
11725
|
+
this.embedComponentType = 'SageEmbed';
|
|
11385
11726
|
}
|
|
11386
11727
|
/**
|
|
11387
11728
|
* Constructs a map of parameters to be passed on to the
|
|
@@ -11433,12 +11774,18 @@ class SageEmbed extends V1Embed {
|
|
|
11433
11774
|
/**
|
|
11434
11775
|
* Render the embedded ThoughtSpot Sage
|
|
11435
11776
|
*
|
|
11777
|
+
* @param showPreRenderByDefault
|
|
11436
11778
|
* @returns {SageEmbed} Eureka/Sage embed
|
|
11437
11779
|
*/
|
|
11438
|
-
render() {
|
|
11780
|
+
render(showPreRenderByDefault = false) {
|
|
11439
11781
|
super.render();
|
|
11440
11782
|
const src = this.getIFrameSrc();
|
|
11441
|
-
this.renderV1Embed(src);
|
|
11783
|
+
this.renderV1Embed(src, showPreRenderByDefault);
|
|
11784
|
+
return this;
|
|
11785
|
+
}
|
|
11786
|
+
preRender(showPreRenderByDefault = false) {
|
|
11787
|
+
super.preRender(showPreRenderByDefault);
|
|
11788
|
+
this.render(showPreRenderByDefault);
|
|
11442
11789
|
return this;
|
|
11443
11790
|
}
|
|
11444
11791
|
}
|
|
@@ -11466,6 +11813,7 @@ const HiddenActionItemByDefaultForSearchEmbed = [
|
|
|
11466
11813
|
class SearchEmbed extends TsEmbed {
|
|
11467
11814
|
constructor(domSelector, viewConfig) {
|
|
11468
11815
|
super(domSelector);
|
|
11816
|
+
this.embedComponentType = 'SearchEmbed';
|
|
11469
11817
|
this.viewConfig = viewConfig;
|
|
11470
11818
|
}
|
|
11471
11819
|
/**
|
|
@@ -11546,12 +11894,14 @@ class SearchEmbed extends TsEmbed {
|
|
|
11546
11894
|
}
|
|
11547
11895
|
/**
|
|
11548
11896
|
* Render the embedded ThoughtSpot search
|
|
11897
|
+
*
|
|
11898
|
+
* @param showPreRenderByDefault
|
|
11549
11899
|
*/
|
|
11550
|
-
render() {
|
|
11900
|
+
render(showPreRenderByDefault = false) {
|
|
11551
11901
|
super.render();
|
|
11552
11902
|
const { answerId } = this.viewConfig;
|
|
11553
11903
|
const src = this.getIFrameSrc(answerId);
|
|
11554
|
-
this.renderIFrame(src);
|
|
11904
|
+
this.renderIFrame(src, showPreRenderByDefault);
|
|
11555
11905
|
getAuthPromise().then(() => {
|
|
11556
11906
|
if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
|
|
11557
11907
|
alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
|
|
@@ -11559,6 +11909,11 @@ class SearchEmbed extends TsEmbed {
|
|
|
11559
11909
|
});
|
|
11560
11910
|
return this;
|
|
11561
11911
|
}
|
|
11912
|
+
preRender(showPreRenderByDefault = false) {
|
|
11913
|
+
super.preRender(showPreRenderByDefault);
|
|
11914
|
+
this.render(showPreRenderByDefault);
|
|
11915
|
+
return this;
|
|
11916
|
+
}
|
|
11562
11917
|
}
|
|
11563
11918
|
|
|
11564
11919
|
/**
|
|
@@ -11616,6 +11971,7 @@ class AppEmbed extends V1Embed {
|
|
|
11616
11971
|
constructor(domSelector, viewConfig) {
|
|
11617
11972
|
super(domSelector, viewConfig);
|
|
11618
11973
|
this.defaultHeight = '100%';
|
|
11974
|
+
this.embedComponentType = 'AppEmbed';
|
|
11619
11975
|
/**
|
|
11620
11976
|
* Set the iframe height as per the computed height received
|
|
11621
11977
|
* from the ThoughtSpot app.
|
|
@@ -11766,11 +12122,17 @@ class AppEmbed extends V1Embed {
|
|
|
11766
12122
|
*
|
|
11767
12123
|
* @param renderOptions An object containing the page ID
|
|
11768
12124
|
* to be embedded.
|
|
12125
|
+
* @param showPreRenderByDefault
|
|
11769
12126
|
*/
|
|
11770
|
-
render() {
|
|
12127
|
+
render(showPreRenderByDefault = false) {
|
|
11771
12128
|
super.render();
|
|
11772
12129
|
const src = this.getIFrameSrc();
|
|
11773
|
-
this.renderV1Embed(src);
|
|
12130
|
+
this.renderV1Embed(src, showPreRenderByDefault);
|
|
12131
|
+
return this;
|
|
12132
|
+
}
|
|
12133
|
+
preRender(showPreRenderByDefault = false) {
|
|
12134
|
+
super.preRender(showPreRenderByDefault);
|
|
12135
|
+
this.render(showPreRenderByDefault);
|
|
11774
12136
|
return this;
|
|
11775
12137
|
}
|
|
11776
12138
|
}
|
|
@@ -11805,6 +12167,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
11805
12167
|
constructor(domSelector, viewConfig) {
|
|
11806
12168
|
super(domSelector, viewConfig);
|
|
11807
12169
|
this.defaultHeight = 500;
|
|
12170
|
+
this.embedComponentType = 'LiveboardEmbed';
|
|
11808
12171
|
/**
|
|
11809
12172
|
* Set the iframe height as per the computed height received
|
|
11810
12173
|
* from the ThoughtSpot app.
|
|
@@ -11926,15 +12289,15 @@ class LiveboardEmbed extends V1Embed {
|
|
|
11926
12289
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
11927
12290
|
* visualization ID and the runtime filters.
|
|
11928
12291
|
*/
|
|
11929
|
-
render() {
|
|
12292
|
+
render(showPreRenderByDefault = false) {
|
|
11930
12293
|
super.render();
|
|
11931
12294
|
const src = this.getIFrameSrc();
|
|
11932
|
-
this.renderV1Embed(src);
|
|
12295
|
+
this.renderV1Embed(src, showPreRenderByDefault);
|
|
11933
12296
|
return this;
|
|
11934
12297
|
}
|
|
11935
|
-
preRender() {
|
|
11936
|
-
super.preRender();
|
|
11937
|
-
this.render();
|
|
12298
|
+
preRender(showPreRenderByDefault = false) {
|
|
12299
|
+
super.preRender(showPreRenderByDefault);
|
|
12300
|
+
this.render(showPreRenderByDefault);
|
|
11938
12301
|
return this;
|
|
11939
12302
|
}
|
|
11940
12303
|
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
@@ -11979,9 +12342,7 @@ const componentFactory = (EmbedConstructor, isPreRenderedComponent = false) => R
|
|
|
11979
12342
|
const tsEmbed = new EmbedConstructor(ref.current, deepMerge({
|
|
11980
12343
|
insertAsSibling: viewConfig.insertAsSibling,
|
|
11981
12344
|
frameParams: {
|
|
11982
|
-
class: viewConfig.insertAsSibling
|
|
11983
|
-
? className || ''
|
|
11984
|
-
: '',
|
|
12345
|
+
class: viewConfig.insertAsSibling ? className || '' : '',
|
|
11985
12346
|
},
|
|
11986
12347
|
}, viewConfig));
|
|
11987
12348
|
Object.keys(listeners).forEach((eventName) => {
|
|
@@ -12009,9 +12370,7 @@ const componentFactory = (EmbedConstructor, isPreRenderedComponent = false) => R
|
|
|
12009
12370
|
}
|
|
12010
12371
|
};
|
|
12011
12372
|
}, [viewConfig, listeners]);
|
|
12012
|
-
return
|
|
12013
|
-
? React.createElement("span", { "data-testid": "tsEmbed", ref: ref, style: { position: 'absolute' } })
|
|
12014
|
-
: React.createElement("div", { "data-testid": "tsEmbed", ref: ref, className: className }));
|
|
12373
|
+
return viewConfig.insertAsSibling ? (React.createElement("span", { "data-testid": "tsEmbed", ref: ref, style: { position: 'absolute' } })) : (React.createElement("div", { "data-testid": "tsEmbed", ref: ref, className: className }));
|
|
12015
12374
|
});
|
|
12016
12375
|
/**
|
|
12017
12376
|
* React component for Search Embed.
|
|
@@ -12042,6 +12401,7 @@ const SearchEmbed$1 = componentFactory(SearchEmbed);
|
|
|
12042
12401
|
* ```
|
|
12043
12402
|
*/
|
|
12044
12403
|
const AppEmbed$1 = componentFactory(AppEmbed);
|
|
12404
|
+
const PreRenderedAppEmbed = componentFactory(AppEmbed, true);
|
|
12045
12405
|
/**
|
|
12046
12406
|
* React component for Liveboard embed.
|
|
12047
12407
|
*
|
|
@@ -12059,6 +12419,8 @@ const AppEmbed$1 = componentFactory(AppEmbed);
|
|
|
12059
12419
|
*/
|
|
12060
12420
|
const LiveboardEmbed$1 = componentFactory(LiveboardEmbed);
|
|
12061
12421
|
const PinboardEmbed = LiveboardEmbed$1;
|
|
12422
|
+
const PreRenderedLiveboardEmbed = componentFactory(LiveboardEmbed, true);
|
|
12423
|
+
const PreRenderedPinboardEmbed = PreRenderedLiveboardEmbed;
|
|
12062
12424
|
/**
|
|
12063
12425
|
* React component for Search bar embed.
|
|
12064
12426
|
*
|
|
@@ -12073,6 +12435,7 @@ const PinboardEmbed = LiveboardEmbed$1;
|
|
|
12073
12435
|
* ```
|
|
12074
12436
|
*/
|
|
12075
12437
|
const SearchBarEmbed$1 = componentFactory(SearchBarEmbed);
|
|
12438
|
+
const PreRenderedSearchBarEmbed = componentFactory(SearchBarEmbed, true);
|
|
12076
12439
|
/**
|
|
12077
12440
|
* React component for LLM based search Sage embed.
|
|
12078
12441
|
*
|
|
@@ -12087,6 +12450,7 @@ const SearchBarEmbed$1 = componentFactory(SearchBarEmbed);
|
|
|
12087
12450
|
* ```
|
|
12088
12451
|
*/
|
|
12089
12452
|
const SageEmbed$1 = componentFactory(SageEmbed);
|
|
12453
|
+
const PreRenderedSageEmbed = componentFactory(SageEmbed, true);
|
|
12090
12454
|
/**
|
|
12091
12455
|
* Get a reference to the embed component to trigger events on the component.
|
|
12092
12456
|
*
|
|
@@ -12106,7 +12470,6 @@ const SageEmbed$1 = componentFactory(SageEmbed);
|
|
|
12106
12470
|
*/
|
|
12107
12471
|
function useEmbedRef() {
|
|
12108
12472
|
return React.useRef(null);
|
|
12109
|
-
}
|
|
12110
|
-
const PreRenderedLiveboardEmbed = componentFactory(LiveboardEmbed, true);
|
|
12473
|
+
}
|
|
12111
12474
|
|
|
12112
|
-
export { Action, AppEmbed$1 as AppEmbed, EmbedEvent, HomeLeftNavItem, HomepageModule, HostEvent, LiveboardEmbed$1 as LiveboardEmbed, Page, PinboardEmbed, PreRenderedLiveboardEmbed, RuntimeFilterOp, SageEmbed$1 as SageEmbed, SearchBarEmbed$1 as SearchBarEmbed, SearchEmbed$1 as SearchEmbed, useEmbedRef };
|
|
12475
|
+
export { Action, AppEmbed$1 as AppEmbed, EmbedEvent, HomeLeftNavItem, HomepageModule, HostEvent, LiveboardEmbed$1 as LiveboardEmbed, Page, PinboardEmbed, PreRenderedAppEmbed, PreRenderedLiveboardEmbed, PreRenderedPinboardEmbed, PreRenderedSageEmbed, PreRenderedSearchBarEmbed, RuntimeFilterOp, SageEmbed$1 as SageEmbed, SearchBarEmbed$1 as SearchBarEmbed, SearchEmbed$1 as SearchEmbed, useEmbedRef };
|