@thoughtspot/visual-embed-sdk 1.45.3 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts +35 -2
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +35 -2
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +5 -5
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +87 -119
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +1 -1
- package/cjs/src/types.d.ts +56 -52
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +55 -51
- package/cjs/src/types.js.map +1 -1
- package/dist/{index-BuwECGdm.js → index-BQvLEoxp.js} +1 -1
- package/dist/src/auth.d.ts +35 -2
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +1 -1
- package/dist/src/types.d.ts +56 -52
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +98 -61
- package/dist/tsembed-react.js +97 -60
- package/dist/tsembed.es.js +98 -61
- package/dist/tsembed.js +97 -60
- package/dist/visual-embed-sdk-react-full.d.ts +92 -55
- package/dist/visual-embed-sdk-react.d.ts +90 -53
- package/dist/visual-embed-sdk.d.ts +92 -55
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts +35 -2
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +35 -2
- package/lib/src/auth.js.map +1 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +5 -5
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +87 -119
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +1 -1
- package/lib/src/types.d.ts +56 -52
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +55 -51
- package/lib/src/types.js.map +1 -1
- package/package.json +1 -1
- package/src/auth.ts +35 -2
- package/src/embed/app.spec.ts +171 -211
- package/src/embed/app.ts +15 -10
- package/src/embed/conversation.ts +1 -1
- package/src/types.ts +57 -53
package/dist/tsembed.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.46.0 */
|
|
2
2
|
'use client';
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
@@ -1333,65 +1333,69 @@ var EmbedEvent;
|
|
|
1333
1333
|
EmbedEvent["Rename"] = "rename";
|
|
1334
1334
|
/**
|
|
1335
1335
|
*
|
|
1336
|
-
* This event
|
|
1337
|
-
*
|
|
1338
|
-
*
|
|
1339
|
-
*
|
|
1340
|
-
|
|
1341
|
-
*
|
|
1342
|
-
*
|
|
1343
|
-
*
|
|
1336
|
+
* This event allows developers to intercept search execution
|
|
1337
|
+
* and implement logic that decides whether Search Data should return
|
|
1338
|
+
* data or block the search operation.
|
|
1339
|
+
*
|
|
1340
|
+
* **Prerequisite**: Set`isOnBeforeGetVizDataInterceptEnabled` to `true`
|
|
1341
|
+
* to ensure that `EmbedEvent.OnBeforeGetVizDataIntercept` is emitted
|
|
1342
|
+
* when the embedding application user tries to run a search query.
|
|
1343
|
+
*
|
|
1344
|
+
* This framework applies only to `AppEmbed` and `SearchEmbed`.
|
|
1345
|
+
* @param - Includes the following parameters:
|
|
1344
1346
|
* - `payload`: The payload received from the embed related to the Data API call.
|
|
1345
1347
|
* - `responder`: Contains elements that let developers define whether ThoughtSpot
|
|
1346
|
-
*
|
|
1347
|
-
* should be shown to the user.
|
|
1348
|
-
*
|
|
1349
|
-
* `execute` - When `execute` returns `true`, the search will be run.
|
|
1350
|
-
* When `execute` returns `false`, the search will not be executed.
|
|
1348
|
+
* will run or block the search operation, and if blocked, which error message to provide.
|
|
1351
1349
|
*
|
|
1352
|
-
* `
|
|
1353
|
-
*
|
|
1350
|
+
* `execute` - When `execute` returns `true`, the search is run.
|
|
1351
|
+
* When `execute` returns `false`, the search is not executed.
|
|
1354
1352
|
*
|
|
1355
|
-
* `
|
|
1356
|
-
* `
|
|
1353
|
+
* `error` - Developers can customize the user-facing error message when `execute`
|
|
1354
|
+
* is `false` by using the `error` parameters in `responder`.
|
|
1355
|
+
* `errorText` - The error message text shown to the user.
|
|
1357
1356
|
* @version SDK : 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
1358
1357
|
* @example
|
|
1359
|
-
|
|
1360
|
-
*
|
|
1361
|
-
*
|
|
1362
|
-
*
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
1365
|
-
*
|
|
1366
|
-
*
|
|
1367
|
-
*
|
|
1368
|
-
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
*
|
|
1372
|
-
* })
|
|
1358
|
+
*
|
|
1359
|
+
* This example blocks search operation and returns a custom error message:
|
|
1360
|
+
* ```js
|
|
1361
|
+
* embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
|
|
1362
|
+
* responder({
|
|
1363
|
+
* data: {
|
|
1364
|
+
* execute: false,
|
|
1365
|
+
* error: {
|
|
1366
|
+
* // Provide a custom error message to explain why the search did not run.
|
|
1367
|
+
* errorText: 'This search query cannot be run. Please contact your administrator for more details.',
|
|
1368
|
+
* },
|
|
1369
|
+
* },
|
|
1370
|
+
* });
|
|
1371
|
+
* });
|
|
1373
1372
|
* ```
|
|
1373
|
+
* @example
|
|
1374
1374
|
*
|
|
1375
|
-
|
|
1376
|
-
*
|
|
1377
|
-
*
|
|
1378
|
-
*
|
|
1379
|
-
* responder
|
|
1380
|
-
*
|
|
1381
|
-
*
|
|
1382
|
-
*
|
|
1383
|
-
*
|
|
1384
|
-
*
|
|
1385
|
-
*
|
|
1386
|
-
*
|
|
1387
|
-
*
|
|
1388
|
-
*
|
|
1389
|
-
*
|
|
1390
|
-
*
|
|
1391
|
-
*
|
|
1392
|
-
*
|
|
1393
|
-
*
|
|
1394
|
-
|
|
1375
|
+
* This example allows the search operation to run
|
|
1376
|
+
* unless the query contains both `sales` and `county`,
|
|
1377
|
+
* and returns a custom error message if the query is rejected:
|
|
1378
|
+
* ```js
|
|
1379
|
+
* embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
|
|
1380
|
+
* // Record the search query submitted by the end user.
|
|
1381
|
+
* const query = payload.data.data.answer.search_query;
|
|
1382
|
+
*
|
|
1383
|
+
* responder({
|
|
1384
|
+
* data: {
|
|
1385
|
+
* // Returns true as long as the query does not include both `sales` and `county`.
|
|
1386
|
+
* execute: !(query.includes('sales') && query.includes('county')),
|
|
1387
|
+
* error: {
|
|
1388
|
+
* // Provide a custom error message when the query is blocked by your logic.
|
|
1389
|
+
* errorText:
|
|
1390
|
+
* "You can't use this query: "
|
|
1391
|
+
* + query
|
|
1392
|
+
* + ". The 'sales' measure can never be used at the 'county' level. "
|
|
1393
|
+
* + "Please try another measure or remove 'county' from your search.",
|
|
1394
|
+
* },
|
|
1395
|
+
* },
|
|
1396
|
+
* });
|
|
1397
|
+
* });
|
|
1398
|
+
* ```
|
|
1395
1399
|
*/
|
|
1396
1400
|
EmbedEvent["OnBeforeGetVizDataIntercept"] = "onBeforeGetVizDataIntercept";
|
|
1397
1401
|
/**
|
|
@@ -8953,7 +8957,7 @@ class AnswerService {
|
|
|
8953
8957
|
async getTML() {
|
|
8954
8958
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
8955
8959
|
const edoc = object[0].edoc;
|
|
8956
|
-
const YAML = await import('./index-
|
|
8960
|
+
const YAML = await import('./index-BQvLEoxp.js');
|
|
8957
8961
|
const parsedDoc = YAML.parse(edoc);
|
|
8958
8962
|
return {
|
|
8959
8963
|
answer: {
|
|
@@ -17404,17 +17408,50 @@ let samlCompletionPromise = null;
|
|
|
17404
17408
|
let releaseVersion = '';
|
|
17405
17409
|
const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
17406
17410
|
/**
|
|
17407
|
-
* Enum for auth failure types.
|
|
17408
|
-
*
|
|
17411
|
+
* Enum for auth failure types.
|
|
17412
|
+
* This value is passed to the listener for {@link AuthStatus.FAILURE}.
|
|
17409
17413
|
* @group Authentication / Init
|
|
17410
17414
|
*/
|
|
17411
17415
|
var AuthFailureType;
|
|
17412
17416
|
(function (AuthFailureType) {
|
|
17417
|
+
/**
|
|
17418
|
+
* Authentication failed in the SDK authentication flow.
|
|
17419
|
+
*
|
|
17420
|
+
* Emitted when `init()` or auto-authentication cannot establish a logged-in session.
|
|
17421
|
+
* For example, this can happen because of an invalid token, an auth request failure,
|
|
17422
|
+
* or an auth promise rejection.
|
|
17423
|
+
*/
|
|
17413
17424
|
AuthFailureType["SDK"] = "SDK";
|
|
17425
|
+
/**
|
|
17426
|
+
* Browser cookie access is blocked for the embedded app.
|
|
17427
|
+
*
|
|
17428
|
+
* Emitted when the iframe reports that required cookies
|
|
17429
|
+
* cannot be read or sent, commonly due to third-party cookie restrictions.
|
|
17430
|
+
*/
|
|
17414
17431
|
AuthFailureType["NO_COOKIE_ACCESS"] = "NO_COOKIE_ACCESS";
|
|
17432
|
+
/**
|
|
17433
|
+
* The current authentication token or session has expired.
|
|
17434
|
+
*
|
|
17435
|
+
* Emitted when the embed receives an auth-expiry signal and starts auth refresh handling.
|
|
17436
|
+
*/
|
|
17415
17437
|
AuthFailureType["EXPIRY"] = "EXPIRY";
|
|
17438
|
+
/**
|
|
17439
|
+
* A generic authentication failure that does not match a more specific type.
|
|
17440
|
+
*
|
|
17441
|
+
* Emitted as a fallback for app-reported auth failures in standard auth flows.
|
|
17442
|
+
*/
|
|
17416
17443
|
AuthFailureType["OTHER"] = "OTHER";
|
|
17444
|
+
/**
|
|
17445
|
+
* The user session timed out due to inactivity.
|
|
17446
|
+
*
|
|
17447
|
+
* Emitted when the app reports an idle-session timeout.
|
|
17448
|
+
*/
|
|
17417
17449
|
AuthFailureType["IDLE_SESSION_TIMEOUT"] = "IDLE_SESSION_TIMEOUT";
|
|
17450
|
+
/**
|
|
17451
|
+
* The app reports that the user is unauthenticated.
|
|
17452
|
+
*
|
|
17453
|
+
* Used primarily to classify unauthenticated failures in Embedded SSO flows.
|
|
17454
|
+
*/
|
|
17418
17455
|
AuthFailureType["UNAUTHENTICATED_FAILURE"] = "UNAUTHENTICATED_FAILURE";
|
|
17419
17456
|
})(AuthFailureType || (AuthFailureType = {}));
|
|
17420
17457
|
/**
|
|
@@ -18391,7 +18428,7 @@ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
|
|
|
18391
18428
|
return eventData;
|
|
18392
18429
|
}
|
|
18393
18430
|
|
|
18394
|
-
var name="@thoughtspot/visual-embed-sdk";var version$1="1.
|
|
18431
|
+
var name="@thoughtspot/visual-embed-sdk";var version$1="1.46.0";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 is-publish-allowed && npm run test && 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.23","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":"^30.0.0","@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":"^30.2.0","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:"^30.2.0","jest-environment-jsdom":"^29.7.0","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":"^29.4.6","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};
|
|
18395
18432
|
|
|
18396
18433
|
class HostEventClient {
|
|
18397
18434
|
constructor(iFrame) {
|
|
@@ -20497,6 +20534,9 @@ class AppEmbed extends V1Embed {
|
|
|
20497
20534
|
else {
|
|
20498
20535
|
params[Param.DataPanelCustomGroupsAccordionInitialState] = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL;
|
|
20499
20536
|
}
|
|
20537
|
+
if (modularHomeExperience !== undefined) {
|
|
20538
|
+
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
20539
|
+
}
|
|
20500
20540
|
// Set navigation to v2 by default to avoid problems like the app
|
|
20501
20541
|
// switcher (9-dot menu) not showing when v3 navigation is turned on
|
|
20502
20542
|
// at the cluster level.
|
|
@@ -20506,9 +20546,6 @@ class AppEmbed extends V1Embed {
|
|
|
20506
20546
|
// Set homePageVersion to v2 by default to reset the LD flag value
|
|
20507
20547
|
// for the homepageVersion.
|
|
20508
20548
|
params[Param.HomepageVersion] = 'v2';
|
|
20509
|
-
// Set listpageVersion to v2 by default to reset the LD flag value
|
|
20510
|
-
// for the listpageVersion.
|
|
20511
|
-
params[Param.ListPageVersion] = ListPage.List;
|
|
20512
20549
|
if (discoveryExperience) {
|
|
20513
20550
|
// primaryNavbarVersion v3 will enabled the new left navigation
|
|
20514
20551
|
if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
|
|
@@ -20527,8 +20564,8 @@ class AppEmbed extends V1Embed {
|
|
|
20527
20564
|
if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
|
|
20528
20565
|
params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
|
|
20529
20566
|
}
|
|
20530
|
-
// listPageVersion
|
|
20531
|
-
if (discoveryExperience.listPageVersion
|
|
20567
|
+
// listPageVersion can be changed to v2 or v3
|
|
20568
|
+
if (discoveryExperience.listPageVersion !== undefined) {
|
|
20532
20569
|
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
20533
20570
|
}
|
|
20534
20571
|
}
|
package/dist/tsembed.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.46.0 */
|
|
2
2
|
'use client';
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
@@ -1339,65 +1339,69 @@
|
|
|
1339
1339
|
EmbedEvent["Rename"] = "rename";
|
|
1340
1340
|
/**
|
|
1341
1341
|
*
|
|
1342
|
-
* This event
|
|
1343
|
-
*
|
|
1344
|
-
*
|
|
1345
|
-
*
|
|
1346
|
-
|
|
1347
|
-
*
|
|
1348
|
-
*
|
|
1349
|
-
*
|
|
1342
|
+
* This event allows developers to intercept search execution
|
|
1343
|
+
* and implement logic that decides whether Search Data should return
|
|
1344
|
+
* data or block the search operation.
|
|
1345
|
+
*
|
|
1346
|
+
* **Prerequisite**: Set`isOnBeforeGetVizDataInterceptEnabled` to `true`
|
|
1347
|
+
* to ensure that `EmbedEvent.OnBeforeGetVizDataIntercept` is emitted
|
|
1348
|
+
* when the embedding application user tries to run a search query.
|
|
1349
|
+
*
|
|
1350
|
+
* This framework applies only to `AppEmbed` and `SearchEmbed`.
|
|
1351
|
+
* @param - Includes the following parameters:
|
|
1350
1352
|
* - `payload`: The payload received from the embed related to the Data API call.
|
|
1351
1353
|
* - `responder`: Contains elements that let developers define whether ThoughtSpot
|
|
1352
|
-
*
|
|
1353
|
-
* should be shown to the user.
|
|
1354
|
-
*
|
|
1355
|
-
* `execute` - When `execute` returns `true`, the search will be run.
|
|
1356
|
-
* When `execute` returns `false`, the search will not be executed.
|
|
1354
|
+
* will run or block the search operation, and if blocked, which error message to provide.
|
|
1357
1355
|
*
|
|
1358
|
-
* `
|
|
1359
|
-
*
|
|
1356
|
+
* `execute` - When `execute` returns `true`, the search is run.
|
|
1357
|
+
* When `execute` returns `false`, the search is not executed.
|
|
1360
1358
|
*
|
|
1361
|
-
* `
|
|
1362
|
-
* `
|
|
1359
|
+
* `error` - Developers can customize the user-facing error message when `execute`
|
|
1360
|
+
* is `false` by using the `error` parameters in `responder`.
|
|
1361
|
+
* `errorText` - The error message text shown to the user.
|
|
1363
1362
|
* @version SDK : 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
1364
1363
|
* @example
|
|
1365
|
-
|
|
1366
|
-
*
|
|
1367
|
-
*
|
|
1368
|
-
*
|
|
1369
|
-
*
|
|
1370
|
-
*
|
|
1371
|
-
*
|
|
1372
|
-
*
|
|
1373
|
-
*
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
1376
|
-
*
|
|
1377
|
-
*
|
|
1378
|
-
* })
|
|
1364
|
+
*
|
|
1365
|
+
* This example blocks search operation and returns a custom error message:
|
|
1366
|
+
* ```js
|
|
1367
|
+
* embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
|
|
1368
|
+
* responder({
|
|
1369
|
+
* data: {
|
|
1370
|
+
* execute: false,
|
|
1371
|
+
* error: {
|
|
1372
|
+
* // Provide a custom error message to explain why the search did not run.
|
|
1373
|
+
* errorText: 'This search query cannot be run. Please contact your administrator for more details.',
|
|
1374
|
+
* },
|
|
1375
|
+
* },
|
|
1376
|
+
* });
|
|
1377
|
+
* });
|
|
1379
1378
|
* ```
|
|
1379
|
+
* @example
|
|
1380
1380
|
*
|
|
1381
|
-
|
|
1382
|
-
*
|
|
1383
|
-
*
|
|
1384
|
-
*
|
|
1385
|
-
* responder
|
|
1386
|
-
*
|
|
1387
|
-
*
|
|
1388
|
-
*
|
|
1389
|
-
*
|
|
1390
|
-
*
|
|
1391
|
-
*
|
|
1392
|
-
*
|
|
1393
|
-
*
|
|
1394
|
-
*
|
|
1395
|
-
*
|
|
1396
|
-
*
|
|
1397
|
-
*
|
|
1398
|
-
*
|
|
1399
|
-
*
|
|
1400
|
-
|
|
1381
|
+
* This example allows the search operation to run
|
|
1382
|
+
* unless the query contains both `sales` and `county`,
|
|
1383
|
+
* and returns a custom error message if the query is rejected:
|
|
1384
|
+
* ```js
|
|
1385
|
+
* embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
|
|
1386
|
+
* // Record the search query submitted by the end user.
|
|
1387
|
+
* const query = payload.data.data.answer.search_query;
|
|
1388
|
+
*
|
|
1389
|
+
* responder({
|
|
1390
|
+
* data: {
|
|
1391
|
+
* // Returns true as long as the query does not include both `sales` and `county`.
|
|
1392
|
+
* execute: !(query.includes('sales') && query.includes('county')),
|
|
1393
|
+
* error: {
|
|
1394
|
+
* // Provide a custom error message when the query is blocked by your logic.
|
|
1395
|
+
* errorText:
|
|
1396
|
+
* "You can't use this query: "
|
|
1397
|
+
* + query
|
|
1398
|
+
* + ". The 'sales' measure can never be used at the 'county' level. "
|
|
1399
|
+
* + "Please try another measure or remove 'county' from your search.",
|
|
1400
|
+
* },
|
|
1401
|
+
* },
|
|
1402
|
+
* });
|
|
1403
|
+
* });
|
|
1404
|
+
* ```
|
|
1401
1405
|
*/
|
|
1402
1406
|
EmbedEvent["OnBeforeGetVizDataIntercept"] = "onBeforeGetVizDataIntercept";
|
|
1403
1407
|
/**
|
|
@@ -17410,17 +17414,50 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
17410
17414
|
let releaseVersion = '';
|
|
17411
17415
|
const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
17412
17416
|
/**
|
|
17413
|
-
* Enum for auth failure types.
|
|
17414
|
-
*
|
|
17417
|
+
* Enum for auth failure types.
|
|
17418
|
+
* This value is passed to the listener for {@link AuthStatus.FAILURE}.
|
|
17415
17419
|
* @group Authentication / Init
|
|
17416
17420
|
*/
|
|
17417
17421
|
exports.AuthFailureType = void 0;
|
|
17418
17422
|
(function (AuthFailureType) {
|
|
17423
|
+
/**
|
|
17424
|
+
* Authentication failed in the SDK authentication flow.
|
|
17425
|
+
*
|
|
17426
|
+
* Emitted when `init()` or auto-authentication cannot establish a logged-in session.
|
|
17427
|
+
* For example, this can happen because of an invalid token, an auth request failure,
|
|
17428
|
+
* or an auth promise rejection.
|
|
17429
|
+
*/
|
|
17419
17430
|
AuthFailureType["SDK"] = "SDK";
|
|
17431
|
+
/**
|
|
17432
|
+
* Browser cookie access is blocked for the embedded app.
|
|
17433
|
+
*
|
|
17434
|
+
* Emitted when the iframe reports that required cookies
|
|
17435
|
+
* cannot be read or sent, commonly due to third-party cookie restrictions.
|
|
17436
|
+
*/
|
|
17420
17437
|
AuthFailureType["NO_COOKIE_ACCESS"] = "NO_COOKIE_ACCESS";
|
|
17438
|
+
/**
|
|
17439
|
+
* The current authentication token or session has expired.
|
|
17440
|
+
*
|
|
17441
|
+
* Emitted when the embed receives an auth-expiry signal and starts auth refresh handling.
|
|
17442
|
+
*/
|
|
17421
17443
|
AuthFailureType["EXPIRY"] = "EXPIRY";
|
|
17444
|
+
/**
|
|
17445
|
+
* A generic authentication failure that does not match a more specific type.
|
|
17446
|
+
*
|
|
17447
|
+
* Emitted as a fallback for app-reported auth failures in standard auth flows.
|
|
17448
|
+
*/
|
|
17422
17449
|
AuthFailureType["OTHER"] = "OTHER";
|
|
17450
|
+
/**
|
|
17451
|
+
* The user session timed out due to inactivity.
|
|
17452
|
+
*
|
|
17453
|
+
* Emitted when the app reports an idle-session timeout.
|
|
17454
|
+
*/
|
|
17423
17455
|
AuthFailureType["IDLE_SESSION_TIMEOUT"] = "IDLE_SESSION_TIMEOUT";
|
|
17456
|
+
/**
|
|
17457
|
+
* The app reports that the user is unauthenticated.
|
|
17458
|
+
*
|
|
17459
|
+
* Used primarily to classify unauthenticated failures in Embedded SSO flows.
|
|
17460
|
+
*/
|
|
17424
17461
|
AuthFailureType["UNAUTHENTICATED_FAILURE"] = "UNAUTHENTICATED_FAILURE";
|
|
17425
17462
|
})(exports.AuthFailureType || (exports.AuthFailureType = {}));
|
|
17426
17463
|
/**
|
|
@@ -18397,7 +18434,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
18397
18434
|
return eventData;
|
|
18398
18435
|
}
|
|
18399
18436
|
|
|
18400
|
-
var name="@thoughtspot/visual-embed-sdk";var version$1="1.
|
|
18437
|
+
var name="@thoughtspot/visual-embed-sdk";var version$1="1.46.0";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$1={".":{"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 is-publish-allowed && npm run test && 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.23","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":"^30.0.0","@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":"^30.2.0","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:"^30.2.0","jest-environment-jsdom":"^29.7.0","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":"^29.4.6","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$1,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};
|
|
18401
18438
|
|
|
18402
18439
|
class HostEventClient {
|
|
18403
18440
|
constructor(iFrame) {
|
|
@@ -20503,6 +20540,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
20503
20540
|
else {
|
|
20504
20541
|
params[Param.DataPanelCustomGroupsAccordionInitialState] = exports.DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL;
|
|
20505
20542
|
}
|
|
20543
|
+
if (modularHomeExperience !== undefined) {
|
|
20544
|
+
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
20545
|
+
}
|
|
20506
20546
|
// Set navigation to v2 by default to avoid problems like the app
|
|
20507
20547
|
// switcher (9-dot menu) not showing when v3 navigation is turned on
|
|
20508
20548
|
// at the cluster level.
|
|
@@ -20512,9 +20552,6 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
20512
20552
|
// Set homePageVersion to v2 by default to reset the LD flag value
|
|
20513
20553
|
// for the homepageVersion.
|
|
20514
20554
|
params[Param.HomepageVersion] = 'v2';
|
|
20515
|
-
// Set listpageVersion to v2 by default to reset the LD flag value
|
|
20516
|
-
// for the listpageVersion.
|
|
20517
|
-
params[Param.ListPageVersion] = exports.ListPage.List;
|
|
20518
20555
|
if (discoveryExperience) {
|
|
20519
20556
|
// primaryNavbarVersion v3 will enabled the new left navigation
|
|
20520
20557
|
if (discoveryExperience.primaryNavbarVersion === exports.PrimaryNavbarVersion.Sliding) {
|
|
@@ -20533,8 +20570,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
20533
20570
|
if (discoveryExperience.homePage === exports.HomePage.ModularWithStylingChanges) {
|
|
20534
20571
|
params[Param.HomepageVersion] = exports.HomePage.ModularWithStylingChanges;
|
|
20535
20572
|
}
|
|
20536
|
-
// listPageVersion
|
|
20537
|
-
if (discoveryExperience.listPageVersion
|
|
20573
|
+
// listPageVersion can be changed to v2 or v3
|
|
20574
|
+
if (discoveryExperience.listPageVersion !== undefined) {
|
|
20538
20575
|
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
20539
20576
|
}
|
|
20540
20577
|
}
|