@thoughtspot/visual-embed-sdk 1.42.0 → 1.42.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/api-intercept.d.ts +27 -0
  3. package/cjs/src/api-intercept.d.ts.map +1 -0
  4. package/cjs/src/api-intercept.js +115 -0
  5. package/cjs/src/api-intercept.js.map +1 -0
  6. package/cjs/src/api-intercept.spec.d.ts +2 -0
  7. package/cjs/src/api-intercept.spec.d.ts.map +1 -0
  8. package/cjs/src/api-intercept.spec.js +122 -0
  9. package/cjs/src/api-intercept.spec.js.map +1 -0
  10. package/cjs/src/embed/app.d.ts.map +1 -1
  11. package/cjs/src/embed/app.js +7 -2
  12. package/cjs/src/embed/app.js.map +1 -1
  13. package/cjs/src/embed/app.spec.js +20 -0
  14. package/cjs/src/embed/app.spec.js.map +1 -1
  15. package/cjs/src/embed/hostEventClient/contracts.d.ts +11 -1
  16. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  17. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  18. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  19. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  20. package/cjs/src/embed/liveboard.js +4 -1
  21. package/cjs/src/embed/liveboard.js.map +1 -1
  22. package/cjs/src/embed/liveboard.spec.js +22 -0
  23. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  24. package/cjs/src/embed/search.d.ts.map +1 -1
  25. package/cjs/src/embed/search.js +3 -1
  26. package/cjs/src/embed/search.js.map +1 -1
  27. package/cjs/src/embed/ts-embed.d.ts +15 -0
  28. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  29. package/cjs/src/embed/ts-embed.js +94 -26
  30. package/cjs/src/embed/ts-embed.js.map +1 -1
  31. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  32. package/cjs/src/embed/ts-embed.spec.js +168 -0
  33. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  34. package/cjs/src/errors.d.ts +1 -0
  35. package/cjs/src/errors.d.ts.map +1 -1
  36. package/cjs/src/errors.js +1 -0
  37. package/cjs/src/errors.js.map +1 -1
  38. package/cjs/src/index.d.ts +2 -2
  39. package/cjs/src/index.d.ts.map +1 -1
  40. package/cjs/src/index.js +2 -1
  41. package/cjs/src/index.js.map +1 -1
  42. package/cjs/src/react/all-types-export.d.ts +1 -1
  43. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  44. package/cjs/src/react/all-types-export.js +2 -1
  45. package/cjs/src/react/all-types-export.js.map +1 -1
  46. package/cjs/src/types.d.ts +100 -4
  47. package/cjs/src/types.d.ts.map +1 -1
  48. package/cjs/src/types.js +39 -1
  49. package/cjs/src/types.js.map +1 -1
  50. package/cjs/src/utils/processData.d.ts +1 -1
  51. package/cjs/src/utils/processData.d.ts.map +1 -1
  52. package/cjs/src/utils/processData.js +8 -8
  53. package/cjs/src/utils/processData.js.map +1 -1
  54. package/dist/index-BCC3Z072.js +7371 -0
  55. package/dist/index-BEzW4MDA.js +7371 -0
  56. package/dist/{index-BpSohedu.js → index-DvNA626T.js} +1 -1
  57. package/dist/src/api-intercept.d.ts +27 -0
  58. package/dist/src/api-intercept.d.ts.map +1 -0
  59. package/dist/src/api-intercept.spec.d.ts +2 -0
  60. package/dist/src/api-intercept.spec.d.ts.map +1 -0
  61. package/dist/src/embed/app.d.ts.map +1 -1
  62. package/dist/src/embed/hostEventClient/contracts.d.ts +11 -1
  63. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  64. package/dist/src/embed/liveboard.d.ts.map +1 -1
  65. package/dist/src/embed/search.d.ts.map +1 -1
  66. package/dist/src/embed/ts-embed.d.ts +15 -0
  67. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  68. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  69. package/dist/src/errors.d.ts +1 -0
  70. package/dist/src/errors.d.ts.map +1 -1
  71. package/dist/src/index.d.ts +2 -2
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/react/all-types-export.d.ts +1 -1
  74. package/dist/src/react/all-types-export.d.ts.map +1 -1
  75. package/dist/src/types.d.ts +100 -4
  76. package/dist/src/types.d.ts.map +1 -1
  77. package/dist/src/utils/processData.d.ts +1 -1
  78. package/dist/src/utils/processData.d.ts.map +1 -1
  79. package/dist/tsembed-react.es.js +266 -51
  80. package/dist/tsembed-react.js +265 -50
  81. package/dist/tsembed.es.js +267 -52
  82. package/dist/tsembed.js +265 -50
  83. package/dist/visual-embed-sdk-react-full.d.ts +124 -4
  84. package/dist/visual-embed-sdk-react.d.ts +121 -4
  85. package/dist/visual-embed-sdk.d.ts +124 -4
  86. package/lib/package.json +2 -2
  87. package/lib/src/api-intercept.d.ts +27 -0
  88. package/lib/src/api-intercept.d.ts.map +1 -0
  89. package/lib/src/api-intercept.js +108 -0
  90. package/lib/src/api-intercept.js.map +1 -0
  91. package/lib/src/api-intercept.spec.d.ts +2 -0
  92. package/lib/src/api-intercept.spec.d.ts.map +1 -0
  93. package/lib/src/api-intercept.spec.js +119 -0
  94. package/lib/src/api-intercept.spec.js.map +1 -0
  95. package/lib/src/embed/app.d.ts.map +1 -1
  96. package/lib/src/embed/app.js +7 -2
  97. package/lib/src/embed/app.js.map +1 -1
  98. package/lib/src/embed/app.spec.js +20 -0
  99. package/lib/src/embed/app.spec.js.map +1 -1
  100. package/lib/src/embed/hostEventClient/contracts.d.ts +11 -1
  101. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  102. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  103. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  104. package/lib/src/embed/liveboard.d.ts.map +1 -1
  105. package/lib/src/embed/liveboard.js +4 -1
  106. package/lib/src/embed/liveboard.js.map +1 -1
  107. package/lib/src/embed/liveboard.spec.js +22 -0
  108. package/lib/src/embed/liveboard.spec.js.map +1 -1
  109. package/lib/src/embed/search.d.ts.map +1 -1
  110. package/lib/src/embed/search.js +3 -1
  111. package/lib/src/embed/search.js.map +1 -1
  112. package/lib/src/embed/ts-embed.d.ts +15 -0
  113. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  114. package/lib/src/embed/ts-embed.js +94 -26
  115. package/lib/src/embed/ts-embed.js.map +1 -1
  116. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  117. package/lib/src/embed/ts-embed.spec.js +168 -0
  118. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  119. package/lib/src/errors.d.ts +1 -0
  120. package/lib/src/errors.d.ts.map +1 -1
  121. package/lib/src/errors.js +1 -0
  122. package/lib/src/errors.js.map +1 -1
  123. package/lib/src/index.d.ts +2 -2
  124. package/lib/src/index.d.ts.map +1 -1
  125. package/lib/src/index.js +2 -2
  126. package/lib/src/index.js.map +1 -1
  127. package/lib/src/react/all-types-export.d.ts +1 -1
  128. package/lib/src/react/all-types-export.d.ts.map +1 -1
  129. package/lib/src/react/all-types-export.js +1 -1
  130. package/lib/src/react/all-types-export.js.map +1 -1
  131. package/lib/src/types.d.ts +100 -4
  132. package/lib/src/types.d.ts.map +1 -1
  133. package/lib/src/types.js +38 -0
  134. package/lib/src/types.js.map +1 -1
  135. package/lib/src/utils/processData.d.ts +1 -1
  136. package/lib/src/utils/processData.d.ts.map +1 -1
  137. package/lib/src/utils/processData.js +8 -8
  138. package/lib/src/utils/processData.js.map +1 -1
  139. package/package.json +2 -2
  140. package/src/api-intercept.spec.ts +147 -0
  141. package/src/api-intercept.ts +134 -0
  142. package/src/embed/app.spec.ts +28 -0
  143. package/src/embed/app.ts +9 -1
  144. package/src/embed/hostEventClient/contracts.ts +10 -0
  145. package/src/embed/liveboard.spec.ts +30 -0
  146. package/src/embed/liveboard.ts +5 -0
  147. package/src/embed/search.ts +3 -1
  148. package/src/embed/ts-embed.spec.ts +221 -5
  149. package/src/embed/ts-embed.ts +129 -43
  150. package/src/errors.ts +1 -0
  151. package/src/index.ts +2 -0
  152. package/src/react/all-types-export.ts +1 -0
  153. package/src/types.ts +102 -3
  154. package/src/utils/processData.ts +11 -11
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.42.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.42.1-alpha.2 */
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-BpSohedu.js');
8309
+ const YAML = await import('./index-BCC3Z072.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, e, thoughtSpotHost, containerEl) {
17462
+ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
17413
17463
  switch (type) {
17414
17464
  case EmbedEvent.CustomAction:
17415
- return processCustomAction(e, thoughtSpotHost);
17465
+ return processCustomAction(eventData, thoughtSpotHost);
17416
17466
  case EmbedEvent.AuthInit:
17417
- return processAuthInit(e);
17467
+ return processAuthInit(eventData);
17418
17468
  case EmbedEvent.NoCookieAccess:
17419
- return processNoCookieAccess(e, containerEl);
17469
+ return processNoCookieAccess(eventData, containerEl);
17420
17470
  case EmbedEvent.AuthFailure:
17421
- return processAuthFailure(e, containerEl);
17471
+ return processAuthFailure(eventData, containerEl);
17422
17472
  case EmbedEvent.AuthLogout:
17423
- return processAuthLogout(e, containerEl);
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 e;
17479
+ return eventData;
17430
17480
  }
17431
17481
 
17432
- var name="@thoughtspot/visual-embed-sdk";var version$1="1.42.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.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};
17482
+ var name="@thoughtspot/visual-embed-sdk";var version$1="1.42.1-alpha.2";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, _c;
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
+ execute: (_c = payload === null || payload === void 0 ? void 0 : payload.data) === null || _c === void 0 ? void 0 : _c.execute,
17734
+ errors: [
17735
+ {
17736
+ errorObj: {
17737
+ title,
17738
+ desc
17739
+ }
17740
+ }
17741
+ ],
17742
+ };
17743
+ return { data: 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
- * Adds a global event listener to window for "message" events.
17903
- * ThoughtSpot detects if a particular event is targeted to this
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
- subscribeToEvents() {
17908
- this.unsubscribeToEvents();
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 = 'Network not Detected. Embed is offline. Please reconnect and refresh';
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
- message: messageEventListener,
17932
- online: onlineEventListener,
17933
- offline: offlineEventListener,
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
- return {
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
- this.subscribeToEvents();
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
- callbackObj.callback(data, (payload) => {
18411
- this.triggerEventOnPort(eventPort, payload);
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
- if (isOnBeforeGetVizDataInterceptEnabled) {
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
- if (isOnBeforeGetVizDataInterceptEnabled) {
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;