@thoughtspot/visual-embed-sdk 1.42.0 → 1.42.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.
- package/cjs/package.json +2 -2
- package/cjs/src/api-intercept.d.ts +25 -0
- package/cjs/src/api-intercept.d.ts.map +1 -0
- package/cjs/src/api-intercept.js +115 -0
- package/cjs/src/api-intercept.js.map +1 -0
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +7 -2
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +20 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +1 -0
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +4 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +22 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +3 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +15 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +94 -26
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +83 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +2 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/types.d.ts +100 -4
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +39 -1
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processData.d.ts +1 -1
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +8 -8
- package/cjs/src/utils/processData.js.map +1 -1
- package/dist/index-BEzW4MDA.js +7371 -0
- package/dist/{index-BpSohedu.js → index-DvNA626T.js} +1 -1
- package/dist/src/api-intercept.d.ts +25 -0
- package/dist/src/api-intercept.d.ts.map +1 -0
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +15 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/types.d.ts +100 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts +1 -1
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +266 -51
- package/dist/tsembed-react.js +265 -50
- package/dist/tsembed.es.js +267 -52
- package/dist/tsembed.js +265 -50
- package/dist/visual-embed-sdk-react-full.d.ts +124 -4
- package/dist/visual-embed-sdk-react.d.ts +121 -4
- package/dist/visual-embed-sdk.d.ts +124 -4
- package/lib/package.json +2 -2
- package/lib/src/api-intercept.d.ts +25 -0
- package/lib/src/api-intercept.d.ts.map +1 -0
- package/lib/src/api-intercept.js +108 -0
- package/lib/src/api-intercept.js.map +1 -0
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +7 -2
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +20 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +11 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +1 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +4 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +22 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +3 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +15 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +94 -26
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +83 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/types.d.ts +100 -4
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +38 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processData.d.ts +1 -1
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +8 -8
- package/lib/src/utils/processData.js.map +1 -1
- package/package.json +2 -2
- package/src/api-intercept.ts +134 -0
- package/src/embed/app.spec.ts +28 -0
- package/src/embed/app.ts +9 -1
- package/src/embed/hostEventClient/contracts.ts +10 -0
- package/src/embed/liveboard.spec.ts +30 -0
- package/src/embed/liveboard.ts +5 -0
- package/src/embed/search.ts +3 -1
- package/src/embed/ts-embed.spec.ts +116 -5
- package/src/embed/ts-embed.ts +129 -43
- package/src/errors.ts +1 -0
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +1 -0
- package/src/types.ts +102 -3
- package/src/utils/processData.ts +11 -11
package/dist/tsembed-react.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.42.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.42.1-alpha.1 */
|
|
2
2
|
'use client';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { useRef, useCallback } from 'react';
|
|
@@ -1697,6 +1697,21 @@ var EmbedEvent;
|
|
|
1697
1697
|
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
1698
1698
|
*/
|
|
1699
1699
|
EmbedEvent["OrgSwitched"] = "orgSwitched";
|
|
1700
|
+
/**
|
|
1701
|
+
* Emitted when the user intercepts a URL.
|
|
1702
|
+
*
|
|
1703
|
+
* Supported on all embed types.
|
|
1704
|
+
*
|
|
1705
|
+
* @example
|
|
1706
|
+
* ```js
|
|
1707
|
+
* embed.on(EmbedEvent.ApiIntercept, (payload) => {
|
|
1708
|
+
* console.log('payload', payload);
|
|
1709
|
+
* })
|
|
1710
|
+
* ```
|
|
1711
|
+
*
|
|
1712
|
+
* @version SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl
|
|
1713
|
+
*/
|
|
1714
|
+
EmbedEvent["ApiIntercept"] = "ApiIntercept";
|
|
1700
1715
|
})(EmbedEvent || (EmbedEvent = {}));
|
|
1701
1716
|
/**
|
|
1702
1717
|
* Event types that can be triggered by the host application
|
|
@@ -3138,6 +3153,7 @@ var Param;
|
|
|
3138
3153
|
Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
|
|
3139
3154
|
Param["LiveboardXLSXCSVDownload"] = "isLiveboardXLSXCSVDownloadEnabled";
|
|
3140
3155
|
Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
|
|
3156
|
+
Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
|
|
3141
3157
|
})(Param || (Param = {}));
|
|
3142
3158
|
/**
|
|
3143
3159
|
* ThoughtSpot application pages include actions and menu commands
|
|
@@ -4563,7 +4579,29 @@ var LogLevel;
|
|
|
4563
4579
|
* @version SDK: 1.26.7 | ThoughtSpot Cloud: 9.10.0.cl
|
|
4564
4580
|
*/
|
|
4565
4581
|
LogLevel["TRACE"] = "TRACE";
|
|
4566
|
-
})(LogLevel || (LogLevel = {}));
|
|
4582
|
+
})(LogLevel || (LogLevel = {}));
|
|
4583
|
+
/**
|
|
4584
|
+
* Enum for the type of API intercepted
|
|
4585
|
+
*/
|
|
4586
|
+
var InterceptedApiType;
|
|
4587
|
+
(function (InterceptedApiType) {
|
|
4588
|
+
/**
|
|
4589
|
+
* The apis that are use to get the metadata for the embed
|
|
4590
|
+
*/
|
|
4591
|
+
InterceptedApiType["METADATA"] = "METADATA";
|
|
4592
|
+
/**
|
|
4593
|
+
* The apis that are use to get the data for the embed
|
|
4594
|
+
*/
|
|
4595
|
+
InterceptedApiType["ANSWER_DATA"] = "ANSWER_DATA";
|
|
4596
|
+
/**
|
|
4597
|
+
* This will intercept all the apis
|
|
4598
|
+
*/
|
|
4599
|
+
InterceptedApiType["ALL"] = "ALL";
|
|
4600
|
+
/**
|
|
4601
|
+
* The apis that are use to get the data for the liveboard
|
|
4602
|
+
*/
|
|
4603
|
+
InterceptedApiType["LIVEBOARD_DATA"] = "LIVEBOARD_DATA";
|
|
4604
|
+
})(InterceptedApiType || (InterceptedApiType = {}));
|
|
4567
4605
|
|
|
4568
4606
|
const logFunctions = {
|
|
4569
4607
|
[LogLevel.SILENT]: () => undefined,
|
|
@@ -7326,6 +7364,17 @@ function isEmpty(value) {
|
|
|
7326
7364
|
|
|
7327
7365
|
var isEmpty_1 = isEmpty;
|
|
7328
7366
|
|
|
7367
|
+
var UIPassthroughEvent;
|
|
7368
|
+
(function (UIPassthroughEvent) {
|
|
7369
|
+
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
7370
|
+
UIPassthroughEvent["SaveAnswer"] = "saveAnswer";
|
|
7371
|
+
UIPassthroughEvent["GetDiscoverabilityStatus"] = "getDiscoverabilityStatus";
|
|
7372
|
+
UIPassthroughEvent["GetAvailableUIPassthroughs"] = "getAvailableUiPassthroughs";
|
|
7373
|
+
UIPassthroughEvent["GetAnswerConfig"] = "getAnswerPageConfig";
|
|
7374
|
+
UIPassthroughEvent["GetLiveboardConfig"] = "getPinboardPageConfig";
|
|
7375
|
+
UIPassthroughEvent["GetUnsavedAnswerTML"] = "getUnsavedAnswerTML";
|
|
7376
|
+
})(UIPassthroughEvent || (UIPassthroughEvent = {}));
|
|
7377
|
+
|
|
7329
7378
|
const ERROR_MESSAGE = {
|
|
7330
7379
|
INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
|
|
7331
7380
|
SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a worksheet to get started',
|
|
@@ -7347,6 +7396,7 @@ const ERROR_MESSAGE = {
|
|
|
7347
7396
|
MISSING_REPORTING_OBSERVER: 'ReportingObserver not supported',
|
|
7348
7397
|
RENDER_CALLED_BEFORE_INIT: 'Looks like render was called before calling init, the render won\'t start until init is called.\nFor more info check\n1. https://developers.thoughtspot.com/docs/Function_init#_init\n2.https://developers.thoughtspot.com/docs/getting-started#initSdk',
|
|
7349
7398
|
SPOTTER_AGENT_NOT_INITIALIZED: 'SpotterAgent not initialized',
|
|
7399
|
+
OFFLINE_WARNING: 'Network not Detected. Embed is offline. Please reconnect and refresh',
|
|
7350
7400
|
};
|
|
7351
7401
|
const CUSTOM_ACTIONS_ERROR_MESSAGE = {
|
|
7352
7402
|
INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
|
|
@@ -8256,7 +8306,7 @@ class AnswerService {
|
|
|
8256
8306
|
async getTML() {
|
|
8257
8307
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
8258
8308
|
const edoc = object[0].edoc;
|
|
8259
|
-
const YAML = await import('./index-
|
|
8309
|
+
const YAML = await import('./index-BEzW4MDA.js');
|
|
8260
8310
|
const parsedDoc = YAML.parse(edoc);
|
|
8261
8311
|
return {
|
|
8262
8312
|
answer: {
|
|
@@ -17409,27 +17459,27 @@ function processAuthLogout(e, containerEl) {
|
|
|
17409
17459
|
* @param thoughtSpotHost
|
|
17410
17460
|
* @param containerEl
|
|
17411
17461
|
*/
|
|
17412
|
-
function processEventData(type,
|
|
17462
|
+
function processEventData(type, eventData, thoughtSpotHost, containerEl) {
|
|
17413
17463
|
switch (type) {
|
|
17414
17464
|
case EmbedEvent.CustomAction:
|
|
17415
|
-
return processCustomAction(
|
|
17465
|
+
return processCustomAction(eventData, thoughtSpotHost);
|
|
17416
17466
|
case EmbedEvent.AuthInit:
|
|
17417
|
-
return processAuthInit(
|
|
17467
|
+
return processAuthInit(eventData);
|
|
17418
17468
|
case EmbedEvent.NoCookieAccess:
|
|
17419
|
-
return processNoCookieAccess(
|
|
17469
|
+
return processNoCookieAccess(eventData, containerEl);
|
|
17420
17470
|
case EmbedEvent.AuthFailure:
|
|
17421
|
-
return processAuthFailure(
|
|
17471
|
+
return processAuthFailure(eventData, containerEl);
|
|
17422
17472
|
case EmbedEvent.AuthLogout:
|
|
17423
|
-
return processAuthLogout(
|
|
17473
|
+
return processAuthLogout(eventData, containerEl);
|
|
17424
17474
|
case EmbedEvent.ExitPresentMode:
|
|
17425
17475
|
return processExitPresentMode();
|
|
17426
17476
|
case EmbedEvent.CLEAR_INFO_CACHE:
|
|
17427
17477
|
return processClearInfoCache();
|
|
17428
17478
|
}
|
|
17429
|
-
return
|
|
17479
|
+
return eventData;
|
|
17430
17480
|
}
|
|
17431
17481
|
|
|
17432
|
-
var name="@thoughtspot/visual-embed-sdk";var version$1="1.42.
|
|
17482
|
+
var name="@thoughtspot/visual-embed-sdk";var version$1="1.42.1-alpha.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 tsconfig.build.json --incremental false; tsc -p tsconfig.build.json --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle-generator --config ./dts-config/dts-bundle-file.config.js","bundle-dts":"dts-bundle-generator --config ./dts-config/dts-bundle.config.js","bundle-dts-react":"dts-bundle-generator --config ./dts-config/dts-bundle-react.config.js","bundle-dts-react-full":"dts-bundle-generator --config ./dts-config/dts-bundle-react-full.config.js",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.build.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | npx coveralls-next","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",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={classnames:"^2.3.1",eventemitter3:"^4.0.7",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.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":"^11.2.0","@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/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0",ajv:"^8.17.1",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1","coveralls-next":"^5.0.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle-generator":"^9.5.1",eslint:"^9.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-typescript":"^4.2.5","eslint-plugin-comment-length":"2.2.1","eslint-plugin-import":"^2.31.0","eslint-plugin-jsdoc":"^50.6.9","eslint-plugin-prettier":"^5.2.5","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","fs-extra":"^10.0.0","gh-pages":"6.3.0",globals:"^16.0.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^2.0.0",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.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:"4.24.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","typescript-eslint":"^8.29.1","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^6.3.5"};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","embedded","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$1,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"32 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};
|
|
17433
17483
|
|
|
17434
17484
|
/**
|
|
17435
17485
|
* Reloads the ThoughtSpot iframe.
|
|
@@ -17501,16 +17551,6 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
17501
17551
|
});
|
|
17502
17552
|
}
|
|
17503
17553
|
|
|
17504
|
-
var UIPassthroughEvent;
|
|
17505
|
-
(function (UIPassthroughEvent) {
|
|
17506
|
-
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
17507
|
-
UIPassthroughEvent["SaveAnswer"] = "saveAnswer";
|
|
17508
|
-
UIPassthroughEvent["GetDiscoverabilityStatus"] = "getDiscoverabilityStatus";
|
|
17509
|
-
UIPassthroughEvent["GetAvailableUIPassthroughs"] = "getAvailableUiPassthroughs";
|
|
17510
|
-
UIPassthroughEvent["GetAnswerConfig"] = "getAnswerPageConfig";
|
|
17511
|
-
UIPassthroughEvent["GetLiveboardConfig"] = "getPinboardPageConfig";
|
|
17512
|
-
})(UIPassthroughEvent || (UIPassthroughEvent = {}));
|
|
17513
|
-
|
|
17514
17554
|
class HostEventClient {
|
|
17515
17555
|
constructor(iFrame) {
|
|
17516
17556
|
this.iFrame = iFrame;
|
|
@@ -17602,6 +17642,107 @@ class HostEventClient {
|
|
|
17602
17642
|
}
|
|
17603
17643
|
}
|
|
17604
17644
|
|
|
17645
|
+
const defaultUrls = {
|
|
17646
|
+
[InterceptedApiType.METADATA]: [
|
|
17647
|
+
'/prism/?op=CreateAnswerSession',
|
|
17648
|
+
'/prism/?op=GetV2SourceDetail',
|
|
17649
|
+
],
|
|
17650
|
+
[InterceptedApiType.ANSWER_DATA]: [
|
|
17651
|
+
'/prism/?op=GetChartWithData',
|
|
17652
|
+
'/prism/?op=GetTableWithHeadlineData',
|
|
17653
|
+
],
|
|
17654
|
+
[InterceptedApiType.LIVEBOARD_DATA]: [
|
|
17655
|
+
'/prism/?op=LoadContextBook'
|
|
17656
|
+
],
|
|
17657
|
+
};
|
|
17658
|
+
const formatInterceptUrl = (url) => {
|
|
17659
|
+
const host = getThoughtSpotHost(getEmbedConfig());
|
|
17660
|
+
if (url.startsWith('/'))
|
|
17661
|
+
return `${host}${url}`;
|
|
17662
|
+
return url;
|
|
17663
|
+
};
|
|
17664
|
+
const processInterceptUrls = (interceptUrls) => {
|
|
17665
|
+
let processedUrls = [...interceptUrls];
|
|
17666
|
+
Object.entries(defaultUrls).forEach(([apiType, apiTypeUrls]) => {
|
|
17667
|
+
if (!processedUrls.includes(apiType))
|
|
17668
|
+
return;
|
|
17669
|
+
processedUrls = processedUrls.filter(url => url !== apiType);
|
|
17670
|
+
processedUrls = [...processedUrls, ...apiTypeUrls];
|
|
17671
|
+
});
|
|
17672
|
+
return processedUrls.map(url => formatInterceptUrl(url));
|
|
17673
|
+
};
|
|
17674
|
+
const getInterceptInitData = (embedConfig, viewConfig) => {
|
|
17675
|
+
const enableApiIntercept = (embedConfig.enableApiIntercept || viewConfig.enableApiIntercept) && (viewConfig.enableApiIntercept !== false);
|
|
17676
|
+
if (!enableApiIntercept)
|
|
17677
|
+
return {
|
|
17678
|
+
enableApiIntercept: false,
|
|
17679
|
+
};
|
|
17680
|
+
const combinedUrls = [...(embedConfig.interceptUrls || []), ...(viewConfig.interceptUrls || [])];
|
|
17681
|
+
if (viewConfig.isOnBeforeGetVizDataInterceptEnabled) {
|
|
17682
|
+
combinedUrls.push(InterceptedApiType.ANSWER_DATA);
|
|
17683
|
+
}
|
|
17684
|
+
const shouldInterceptAll = combinedUrls.includes(InterceptedApiType.ALL);
|
|
17685
|
+
const interceptUrls = shouldInterceptAll ? [InterceptedApiType.ALL] : processInterceptUrls(combinedUrls);
|
|
17686
|
+
const interceptTimeout = embedConfig.interceptTimeout || viewConfig.interceptTimeout;
|
|
17687
|
+
return {
|
|
17688
|
+
interceptUrls,
|
|
17689
|
+
interceptTimeout,
|
|
17690
|
+
enableApiIntercept,
|
|
17691
|
+
};
|
|
17692
|
+
};
|
|
17693
|
+
/**
|
|
17694
|
+
*
|
|
17695
|
+
* @param fetchInit
|
|
17696
|
+
*/
|
|
17697
|
+
const parseInterceptData = (eventDataString) => {
|
|
17698
|
+
try {
|
|
17699
|
+
const { input, init } = JSON.parse(eventDataString);
|
|
17700
|
+
init.body = JSON.parse(init.body);
|
|
17701
|
+
const parsedInit = { input, init };
|
|
17702
|
+
return [parsedInit, null];
|
|
17703
|
+
}
|
|
17704
|
+
catch (error) {
|
|
17705
|
+
return [null, error];
|
|
17706
|
+
}
|
|
17707
|
+
};
|
|
17708
|
+
const handleInterceptEvent = async (params) => {
|
|
17709
|
+
var _a, _b, _c, _d, _e;
|
|
17710
|
+
const { eventData, executeEvent, viewConfig, getUnsavedAnswerTml } = params;
|
|
17711
|
+
const [interceptData, bodyParseError] = parseInterceptData(eventData.data);
|
|
17712
|
+
if (bodyParseError) {
|
|
17713
|
+
executeEvent(EmbedEvent.Error, {
|
|
17714
|
+
error: 'Error parsing api intercept body',
|
|
17715
|
+
});
|
|
17716
|
+
logger$3.error('Error parsing request body', bodyParseError);
|
|
17717
|
+
return;
|
|
17718
|
+
}
|
|
17719
|
+
const { input: requestUrl, init } = interceptData;
|
|
17720
|
+
const sessionId = (_c = (_b = (_a = init === null || init === void 0 ? void 0 : init.body) === null || _a === void 0 ? void 0 : _a.variables) === null || _b === void 0 ? void 0 : _b.session) === null || _c === void 0 ? void 0 : _c.sessionId;
|
|
17721
|
+
const vizId = (_e = (_d = init === null || init === void 0 ? void 0 : init.body) === null || _d === void 0 ? void 0 : _d.variables) === null || _e === void 0 ? void 0 : _e.contextBookId;
|
|
17722
|
+
if (defaultUrls.ANSWER_DATA.includes(requestUrl) && viewConfig.isOnBeforeGetVizDataInterceptEnabled) {
|
|
17723
|
+
const answerTml = await getUnsavedAnswerTml({ sessionId, vizId });
|
|
17724
|
+
executeEvent(EmbedEvent.OnBeforeGetVizDataIntercept, { data: { data: answerTml } });
|
|
17725
|
+
}
|
|
17726
|
+
executeEvent(EmbedEvent.ApiIntercept, interceptData);
|
|
17727
|
+
};
|
|
17728
|
+
const processLegacyInterceptResponse = (payload) => {
|
|
17729
|
+
var _a, _b;
|
|
17730
|
+
const title = (_a = payload === null || payload === void 0 ? void 0 : payload.data) === null || _a === void 0 ? void 0 : _a.errorText;
|
|
17731
|
+
const desc = (_b = payload === null || payload === void 0 ? void 0 : payload.data) === null || _b === void 0 ? void 0 : _b.errorDescription;
|
|
17732
|
+
const payloadToSend = [{
|
|
17733
|
+
data: {},
|
|
17734
|
+
errors: [
|
|
17735
|
+
{
|
|
17736
|
+
errorObj: {
|
|
17737
|
+
title,
|
|
17738
|
+
desc
|
|
17739
|
+
}
|
|
17740
|
+
}
|
|
17741
|
+
],
|
|
17742
|
+
}];
|
|
17743
|
+
return payloadToSend;
|
|
17744
|
+
};
|
|
17745
|
+
|
|
17605
17746
|
/**
|
|
17606
17747
|
* Copyright (c) 2022
|
|
17607
17748
|
*
|
|
@@ -17655,6 +17796,27 @@ class TsEmbed {
|
|
|
17655
17796
|
*/
|
|
17656
17797
|
this.fullscreenChangeHandler = null;
|
|
17657
17798
|
this.subscribedListeners = {};
|
|
17799
|
+
this.messageEventListener = async (event) => {
|
|
17800
|
+
const eventType = this.getEventType(event);
|
|
17801
|
+
const eventPort = this.getEventPort(event);
|
|
17802
|
+
const eventData = this.formatEventData(event, eventType);
|
|
17803
|
+
if (event.source === this.iFrame.contentWindow) {
|
|
17804
|
+
const processedEventData = await processEventData(eventType, eventData, this.thoughtSpotHost, this.isPreRendered ? this.preRenderWrapper : this.el);
|
|
17805
|
+
const executeEvent = (_eventType, data) => {
|
|
17806
|
+
this.executeCallbacks(_eventType, data, eventPort);
|
|
17807
|
+
};
|
|
17808
|
+
if (eventType === EmbedEvent.ApiIntercept && this.viewConfig.enableApiIntercept) {
|
|
17809
|
+
const getUnsavedAnswerTml = async (props) => {
|
|
17810
|
+
var _a;
|
|
17811
|
+
const response = await this.triggerUIPassThrough(UIPassthroughEvent.GetUnsavedAnswerTML, props);
|
|
17812
|
+
return (_a = response[0]) === null || _a === void 0 ? void 0 : _a.value;
|
|
17813
|
+
};
|
|
17814
|
+
handleInterceptEvent({ eventData: processedEventData, executeEvent, embedConfig: this.embedConfig, viewConfig: this.viewConfig, getUnsavedAnswerTml });
|
|
17815
|
+
return;
|
|
17816
|
+
}
|
|
17817
|
+
this.executeCallbacks(eventType, processedEventData, eventPort);
|
|
17818
|
+
}
|
|
17819
|
+
};
|
|
17658
17820
|
/**
|
|
17659
17821
|
* Send Custom style as part of payload of APP_INIT
|
|
17660
17822
|
* @param _
|
|
@@ -17739,6 +17901,18 @@ class TsEmbed {
|
|
|
17739
17901
|
this.on(EmbedEvent.AuthInit, authInitHandler, { start: false }, true);
|
|
17740
17902
|
};
|
|
17741
17903
|
this.showPreRenderByDefault = false;
|
|
17904
|
+
this.createEmbedEventResponder = (eventPort, eventType) => {
|
|
17905
|
+
const { enableApiIntercept } = getInterceptInitData(this.embedConfig, this.viewConfig);
|
|
17906
|
+
if (eventType === EmbedEvent.OnBeforeGetVizDataIntercept && enableApiIntercept) {
|
|
17907
|
+
return (payload) => {
|
|
17908
|
+
const payloadToSend = processLegacyInterceptResponse(payload);
|
|
17909
|
+
this.triggerEventOnPort(eventPort, payloadToSend);
|
|
17910
|
+
};
|
|
17911
|
+
}
|
|
17912
|
+
return (payload) => {
|
|
17913
|
+
this.triggerEventOnPort(eventPort, payload);
|
|
17914
|
+
};
|
|
17915
|
+
};
|
|
17742
17916
|
/**
|
|
17743
17917
|
* @hidden
|
|
17744
17918
|
* Internal state to track if the embed container is loaded.
|
|
@@ -17899,39 +18073,61 @@ class TsEmbed {
|
|
|
17899
18073
|
return eventData;
|
|
17900
18074
|
}
|
|
17901
18075
|
/**
|
|
17902
|
-
*
|
|
17903
|
-
*
|
|
17904
|
-
* embed instance through an identifier contained in the payload,
|
|
17905
|
-
* and executes the registered callbacks accordingly.
|
|
18076
|
+
* Subscribe to network events (online/offline) that should
|
|
18077
|
+
* work regardless of auth status
|
|
17906
18078
|
*/
|
|
17907
|
-
|
|
17908
|
-
this.
|
|
17909
|
-
const messageEventListener = (event) => {
|
|
17910
|
-
const eventType = this.getEventType(event);
|
|
17911
|
-
const eventPort = this.getEventPort(event);
|
|
17912
|
-
const eventData = this.formatEventData(event, eventType);
|
|
17913
|
-
if (event.source === this.iFrame.contentWindow) {
|
|
17914
|
-
this.executeCallbacks(eventType, processEventData(eventType, eventData, this.thoughtSpotHost, this.isPreRendered ? this.preRenderWrapper : this.el), eventPort);
|
|
17915
|
-
}
|
|
17916
|
-
};
|
|
17917
|
-
window.addEventListener('message', messageEventListener);
|
|
18079
|
+
subscribeToNetworkEvents() {
|
|
18080
|
+
this.unsubscribeToNetworkEvents();
|
|
17918
18081
|
const onlineEventListener = (e) => {
|
|
17919
18082
|
this.trigger(HostEvent.Reload);
|
|
17920
18083
|
};
|
|
17921
18084
|
window.addEventListener('online', onlineEventListener);
|
|
17922
18085
|
const offlineEventListener = (e) => {
|
|
17923
|
-
const offlineWarning =
|
|
18086
|
+
const offlineWarning = ERROR_MESSAGE.OFFLINE_WARNING;
|
|
17924
18087
|
this.executeCallbacks(EmbedEvent.Error, {
|
|
17925
18088
|
offlineWarning,
|
|
17926
18089
|
});
|
|
17927
18090
|
logger$3.warn(offlineWarning);
|
|
17928
18091
|
};
|
|
17929
18092
|
window.addEventListener('offline', offlineEventListener);
|
|
17930
|
-
this.subscribedListeners =
|
|
17931
|
-
|
|
17932
|
-
|
|
17933
|
-
|
|
17934
|
-
|
|
18093
|
+
this.subscribedListeners.online = onlineEventListener;
|
|
18094
|
+
this.subscribedListeners.offline = offlineEventListener;
|
|
18095
|
+
}
|
|
18096
|
+
/**
|
|
18097
|
+
* Subscribe to message events that depend on successful iframe setup
|
|
18098
|
+
*/
|
|
18099
|
+
subscribeToMessageEvents() {
|
|
18100
|
+
this.unsubscribeToMessageEvents();
|
|
18101
|
+
window.addEventListener('message', this.messageEventListener);
|
|
18102
|
+
this.subscribedListeners.message = this.messageEventListener;
|
|
18103
|
+
}
|
|
18104
|
+
/**
|
|
18105
|
+
* Adds event listeners for both network and message events.
|
|
18106
|
+
* This maintains backward compatibility with the existing method.
|
|
18107
|
+
* Adds a global event listener to window for "message" events.
|
|
18108
|
+
* ThoughtSpot detects if a particular event is targeted to this
|
|
18109
|
+
* embed instance through an identifier contained in the payload,
|
|
18110
|
+
* and executes the registered callbacks accordingly.
|
|
18111
|
+
*/
|
|
18112
|
+
subscribeToEvents() {
|
|
18113
|
+
this.subscribeToNetworkEvents();
|
|
18114
|
+
this.subscribeToMessageEvents();
|
|
18115
|
+
}
|
|
18116
|
+
unsubscribeToNetworkEvents() {
|
|
18117
|
+
if (this.subscribedListeners.online) {
|
|
18118
|
+
window.removeEventListener('online', this.subscribedListeners.online);
|
|
18119
|
+
delete this.subscribedListeners.online;
|
|
18120
|
+
}
|
|
18121
|
+
if (this.subscribedListeners.offline) {
|
|
18122
|
+
window.removeEventListener('offline', this.subscribedListeners.offline);
|
|
18123
|
+
delete this.subscribedListeners.offline;
|
|
18124
|
+
}
|
|
18125
|
+
}
|
|
18126
|
+
unsubscribeToMessageEvents() {
|
|
18127
|
+
if (this.subscribedListeners.message) {
|
|
18128
|
+
window.removeEventListener('message', this.subscribedListeners.message);
|
|
18129
|
+
delete this.subscribedListeners.message;
|
|
18130
|
+
}
|
|
17935
18131
|
}
|
|
17936
18132
|
unsubscribeToEvents() {
|
|
17937
18133
|
Object.keys(this.subscribedListeners).forEach((key) => {
|
|
@@ -17964,7 +18160,7 @@ class TsEmbed {
|
|
|
17964
18160
|
message: customActionsResult.errors,
|
|
17965
18161
|
});
|
|
17966
18162
|
}
|
|
17967
|
-
|
|
18163
|
+
const baseInitData = {
|
|
17968
18164
|
customisations: getCustomisations(this.embedConfig, this.viewConfig),
|
|
17969
18165
|
authToken,
|
|
17970
18166
|
runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
|
|
@@ -17982,7 +18178,9 @@ class TsEmbed {
|
|
|
17982
18178
|
customVariablesForThirdPartyTools: this.embedConfig.customVariablesForThirdPartyTools || {},
|
|
17983
18179
|
hiddenListColumns: this.viewConfig.hiddenListColumns || [],
|
|
17984
18180
|
customActions: customActionsResult.actions,
|
|
18181
|
+
...getInterceptInitData(this.embedConfig, this.viewConfig),
|
|
17985
18182
|
};
|
|
18183
|
+
return baseInitData;
|
|
17986
18184
|
}
|
|
17987
18185
|
async getAppInitData() {
|
|
17988
18186
|
return this.getDefaultAppInitData();
|
|
@@ -18232,6 +18430,8 @@ class TsEmbed {
|
|
|
18232
18430
|
type: EmbedEvent.Init,
|
|
18233
18431
|
});
|
|
18234
18432
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
18433
|
+
// Always subscribe to network events, regardless of auth status
|
|
18434
|
+
this.subscribeToNetworkEvents();
|
|
18235
18435
|
return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
18236
18436
|
if (!isLoggedIn) {
|
|
18237
18437
|
this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
|
|
@@ -18274,7 +18474,9 @@ class TsEmbed {
|
|
|
18274
18474
|
el.remove();
|
|
18275
18475
|
});
|
|
18276
18476
|
}
|
|
18277
|
-
|
|
18477
|
+
// Subscribe to message events only after successful
|
|
18478
|
+
// auth and iframe setup
|
|
18479
|
+
this.subscribeToMessageEvents();
|
|
18278
18480
|
}).catch((error) => {
|
|
18279
18481
|
nextInQueue();
|
|
18280
18482
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
|
|
@@ -18407,9 +18609,8 @@ class TsEmbed {
|
|
|
18407
18609
|
// When start status is false it trigger only end releated
|
|
18408
18610
|
// payload
|
|
18409
18611
|
|| (!callbackObj.options.start && dataStatus === embedEventStatus.END)) {
|
|
18410
|
-
|
|
18411
|
-
|
|
18412
|
-
});
|
|
18612
|
+
const responder = this.createEmbedEventResponder(eventPort, eventType);
|
|
18613
|
+
callbackObj.callback(data, responder);
|
|
18413
18614
|
}
|
|
18414
18615
|
});
|
|
18415
18616
|
}
|
|
@@ -18594,6 +18795,12 @@ class TsEmbed {
|
|
|
18594
18795
|
this.handleError('Host event type is undefined');
|
|
18595
18796
|
return null;
|
|
18596
18797
|
}
|
|
18798
|
+
// Check if iframe exists before triggering -
|
|
18799
|
+
// this prevents the error when auth fails
|
|
18800
|
+
if (!this.iFrame) {
|
|
18801
|
+
logger$3.debug(`Cannot trigger ${messageType} - iframe not available (likely due to auth failure)`);
|
|
18802
|
+
return null;
|
|
18803
|
+
}
|
|
18597
18804
|
// send an empty object, this is needed for liveboard default handlers
|
|
18598
18805
|
return this.hostEventClient.triggerHostEvent(messageType, data);
|
|
18599
18806
|
}
|
|
@@ -19187,7 +19394,8 @@ let SearchEmbed$1 = class SearchEmbed extends TsEmbed {
|
|
|
19187
19394
|
if (hideSearchBar) {
|
|
19188
19395
|
queryParams[Param.HideSearchBar] = true;
|
|
19189
19396
|
}
|
|
19190
|
-
|
|
19397
|
+
const { enableApiIntercept } = getInterceptInitData(this.embedConfig, this.viewConfig);
|
|
19398
|
+
if (isOnBeforeGetVizDataInterceptEnabled && !enableApiIntercept) {
|
|
19191
19399
|
queryParams[Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
|
|
19192
19400
|
}
|
|
19193
19401
|
if (!focusSearchBarOnRender) {
|
|
@@ -19448,7 +19656,7 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
19448
19656
|
* embedded Liveboard or visualization.
|
|
19449
19657
|
*/
|
|
19450
19658
|
getEmbedParams() {
|
|
19451
|
-
const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, 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, liveboardXLSXCSVDownload = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, } = this.viewConfig;
|
|
19659
|
+
const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, 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, liveboardXLSXCSVDownload = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLinkParametersEnabled, } = this.viewConfig;
|
|
19452
19660
|
let params = {};
|
|
19453
19661
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
19454
19662
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -19501,7 +19709,8 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
19501
19709
|
if (enableAskSage) {
|
|
19502
19710
|
params[Param.enableAskSage] = enableAskSage;
|
|
19503
19711
|
}
|
|
19504
|
-
|
|
19712
|
+
const { enableApiIntercept } = getInterceptInitData(this.embedConfig, this.viewConfig);
|
|
19713
|
+
if (isOnBeforeGetVizDataInterceptEnabled && !enableApiIntercept) {
|
|
19505
19714
|
params[Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
|
|
19506
19715
|
}
|
|
19507
19716
|
if (homePageSearchBarMode) {
|
|
@@ -19516,6 +19725,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
19516
19725
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
19517
19726
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
19518
19727
|
}
|
|
19728
|
+
if (isLinkParametersEnabled !== undefined) {
|
|
19729
|
+
params[Param.isLinkParametersEnabled] = isLinkParametersEnabled;
|
|
19730
|
+
}
|
|
19519
19731
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
19520
19732
|
params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
|
|
19521
19733
|
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
@@ -19870,7 +20082,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
19870
20082
|
getEmbedParamsObject() {
|
|
19871
20083
|
let params = {};
|
|
19872
20084
|
params = this.getBaseQueryParams(params);
|
|
19873
|
-
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, liveboardXLSXCSVDownload = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, showSpotterLimitations, } = this.viewConfig;
|
|
20085
|
+
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF = false, liveboardXLSXCSVDownload = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, showSpotterLimitations, isLinkParametersEnabled, } = this.viewConfig;
|
|
19874
20086
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
19875
20087
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
19876
20088
|
if (fullHeight === true) {
|
|
@@ -19935,6 +20147,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
19935
20147
|
if (showSpotterLimitations !== undefined) {
|
|
19936
20148
|
params[Param.ShowSpotterLimitations] = showSpotterLimitations;
|
|
19937
20149
|
}
|
|
20150
|
+
if (isLinkParametersEnabled !== undefined) {
|
|
20151
|
+
params[Param.isLinkParametersEnabled] = isLinkParametersEnabled;
|
|
20152
|
+
}
|
|
19938
20153
|
params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
|
|
19939
20154
|
params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
|
|
19940
20155
|
params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
|