@thoughtspot/visual-embed-sdk 1.12.0-alpha.1 → 1.12.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +19 -6
  2. package/README.md +1 -1
  3. package/dist/src/auth.d.ts +4 -1
  4. package/dist/src/auth.spec.d.ts +1 -0
  5. package/dist/src/embed/liveboard.d.ts +7 -1
  6. package/dist/src/embed/search.d.ts +5 -0
  7. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
  8. package/dist/src/embed/ts-embed.d.ts +2 -1
  9. package/dist/src/errors.d.ts +2 -0
  10. package/dist/src/types.d.ts +19 -2
  11. package/dist/src/utils.d.ts +1 -0
  12. package/dist/tsembed.es.js +64 -7
  13. package/dist/tsembed.js +64 -7
  14. package/lib/package.json +4 -2
  15. package/lib/src/auth.d.ts +4 -1
  16. package/lib/src/auth.js +10 -2
  17. package/lib/src/auth.js.map +1 -1
  18. package/lib/src/auth.spec.d.ts +1 -0
  19. package/lib/src/auth.spec.js +4 -1
  20. package/lib/src/auth.spec.js.map +1 -1
  21. package/lib/src/embed/app.spec.js +4 -3
  22. package/lib/src/embed/app.spec.js.map +1 -1
  23. package/lib/src/embed/embed.spec.js +2 -0
  24. package/lib/src/embed/embed.spec.js.map +1 -1
  25. package/lib/src/embed/events.spec.js +1 -0
  26. package/lib/src/embed/events.spec.js.map +1 -1
  27. package/lib/src/embed/liveboard.d.ts +7 -1
  28. package/lib/src/embed/liveboard.js +12 -0
  29. package/lib/src/embed/liveboard.js.map +1 -1
  30. package/lib/src/embed/liveboard.spec.js +18 -4
  31. package/lib/src/embed/liveboard.spec.js.map +1 -1
  32. package/lib/src/embed/pinboard.spec.js +4 -3
  33. package/lib/src/embed/pinboard.spec.js.map +1 -1
  34. package/lib/src/embed/search.d.ts +5 -0
  35. package/lib/src/embed/search.js +10 -2
  36. package/lib/src/embed/search.js.map +1 -1
  37. package/lib/src/embed/search.spec.js +9 -1
  38. package/lib/src/embed/search.spec.js.map +1 -1
  39. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
  40. package/lib/src/embed/searchEmbed-basic-auth.spec.js +96 -0
  41. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  42. package/lib/src/embed/ts-embed.d.ts +2 -1
  43. package/lib/src/embed/ts-embed.js +7 -5
  44. package/lib/src/embed/ts-embed.js.map +1 -1
  45. package/lib/src/embed/ts-embed.spec.js +12 -5
  46. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  47. package/lib/src/errors.d.ts +2 -0
  48. package/lib/src/errors.js +2 -0
  49. package/lib/src/errors.js.map +1 -1
  50. package/lib/src/react/index.js +3 -2
  51. package/lib/src/react/index.js.map +1 -1
  52. package/lib/src/react/index.spec.js +3 -2
  53. package/lib/src/react/index.spec.js.map +1 -1
  54. package/lib/src/types.d.ts +19 -2
  55. package/lib/src/types.js +11 -0
  56. package/lib/src/types.js.map +1 -1
  57. package/lib/src/utils/processTrigger.js +7 -0
  58. package/lib/src/utils/processTrigger.js.map +1 -1
  59. package/lib/src/utils.d.ts +1 -0
  60. package/lib/src/utils.js +11 -0
  61. package/lib/src/utils.js.map +1 -1
  62. package/lib/src/utils.spec.js +22 -1
  63. package/lib/src/utils.spec.js.map +1 -1
  64. package/lib/src/visual-embed-sdk.d.ts +36 -5
  65. package/package.json +5 -3
  66. package/src/auth.spec.ts +10 -1
  67. package/src/auth.ts +11 -2
  68. package/src/embed/app.spec.ts +4 -3
  69. package/src/embed/embed.spec.ts +2 -0
  70. package/src/embed/events.spec.ts +1 -0
  71. package/src/embed/liveboard.spec.ts +27 -4
  72. package/src/embed/liveboard.ts +13 -0
  73. package/src/embed/pinboard.spec.ts +4 -3
  74. package/src/embed/search.spec.ts +11 -1
  75. package/src/embed/search.ts +20 -1
  76. package/src/embed/searchEmbed-basic-auth.spec.ts +115 -0
  77. package/src/embed/ts-embed.spec.ts +19 -5
  78. package/src/embed/ts-embed.ts +8 -5
  79. package/src/errors.ts +3 -0
  80. package/src/react/index.spec.tsx +4 -2
  81. package/src/react/index.tsx +3 -2
  82. package/src/types.ts +17 -0
  83. package/src/utils/processTrigger.ts +9 -0
  84. package/src/utils.spec.ts +29 -0
  85. package/src/utils.ts +16 -0
package/CHANGELOG.md CHANGED
@@ -6,7 +6,20 @@ This project follows Semantic Versioning.
6
6
  ## Unreleased
7
7
 
8
8
  ### New Features
9
- - Events for all actions on Search Embed
9
+ - Event for navigating to a specific page in App embed without any reload
10
+ - Ability to turn on search assist in Search embed
11
+
12
+ ## 1.11.2 (06-10-2022)
13
+ ### Fixed
14
+ - Typescript build that was affecting some Angular project configurations
15
+
16
+ ## 1.11.1 (05-30-2022)
17
+ ### Fixed
18
+ - Whitelabeling - new [action](https://developers.thoughtspot.com/docs/typedoc/enums/Action.html#ReportError) for the ability to turn off TS specific error reporting by end users.
19
+
20
+ ## 1.11.0 (05-20-2022)
21
+ - Release to support TS version 8.3.0.cl
22
+ - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
10
23
 
11
24
  ## 1.10.4 (05-06-2022)
12
25
  ### New Features
@@ -32,7 +45,7 @@ This project follows Semantic Versioning.
32
45
  ## 1.10.0 (04-22-2022)
33
46
 
34
47
  - Release to support TS version 8.2.0.cl
35
- - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=whats-new)
48
+ - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
36
49
 
37
50
  ## 1.9.5 (04-06-2022)
38
51
 
@@ -48,12 +61,12 @@ This project follows Semantic Versioning.
48
61
 
49
62
  ## 1.9.3 (03-22-2022)
50
63
 
51
- ### New Features
64
+ ### New Features
52
65
  - `disableLoginRedirect` option in `EmbedConfig`
53
66
 
54
67
  ## 1.9.2 (03-17-2022)
55
68
 
56
- ### New Features
69
+ ### New Features
57
70
  - Ability to trigger events on React components
58
71
  - Added new `useEmbedRef` hook, check README for usage.
59
72
 
@@ -73,7 +86,7 @@ This project follows Semantic Versioning.
73
86
  ## 1.9.0
74
87
 
75
88
  - Release to support TS version 8.1.0.cl
76
- - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=whats-new)
89
+ - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
77
90
 
78
91
 
79
92
  ## 1.8.1
@@ -94,4 +107,4 @@ This project follows Semantic Versioning.
94
107
 
95
108
  ## 1.7.0 (and earlier)
96
109
 
97
- - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=whats-new)
110
+ - Please check the full list of changes [here](https://developers.thoughtspot.com/docs/?pageid=embed-sdk-changelog)
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <br/>
6
6
 
7
- # ThoughtSpot Visual Embed SDK <br/> [![Coverage Status](https://coveralls.io/repos/github/ts-blink/embed-sdk/badge.svg?branch=main)](https://coveralls.io/github/ts-blink/embed-sdk?branch=main) ![npm (scoped with tag)](https://img.shields.io/npm/v/@thoughtspot/visual-embed-sdk) [![](https://data.jsdelivr.com/v1/package/npm/@thoughtspot/visual-embed-sdk/badge?style=rounded)](https://www.jsdelivr.com/package/npm/@thoughtspot/visual-embed-sdk) ![npm](https://img.shields.io/npm/dm/@thoughtspot/visual-embed-sdk?label=npm%20downloads&style=flat-square) [![Featured on Openbase](https://badges.openbase.com/js/featured/@thoughtspot/visual-embed-sdk.svg?token=IoqZUwE8aX7LYNedeuBLM2w5Wt52hu+Dh0eyKjlpC0E=)](https://openbase.com/js/@thoughtspot/visual-embed-sdk?utm_source=embedded&amp;utm_medium=badge&amp;utm_campaign=rate-badge)
7
+ # ThoughtSpot Visual Embed SDK <br/> [![Coverage Status](https://coveralls.io/repos/github/ts-blink/embed-sdk/badge.svg?branch=main)](https://coveralls.io/github/ts-blink/embed-sdk?branch=main) ![npm (scoped with tag)](https://img.shields.io/npm/v/@thoughtspot/visual-embed-sdk) [![](https://data.jsdelivr.com/v1/package/npm/@thoughtspot/visual-embed-sdk/badge?style=rounded)](https://www.jsdelivr.com/package/npm/@thoughtspot/visual-embed-sdk) ![npm](https://img.shields.io/npm/dm/@thoughtspot/visual-embed-sdk?label=npm%20downloads&style=flat-square) [![Featured on Openbase](https://badges.openbase.com/js/featured/@thoughtspot/visual-embed-sdk.svg?token=IoqZUwE8aX7LYNedeuBLM2w5Wt52hu+Dh0eyKjlpC0E=)](https://openbase.com/js/@thoughtspot/visual-embed-sdk?utm_source=embedded&amp;utm_medium=badge&amp;utm_campaign=rate-badge) ![npm bundle size (scoped)](https://img.shields.io/bundlephobia/minzip/@thoughtspot/visual-embed-sdk?style=flat-square)
8
8
 
9
9
 
10
10
  SDK to embed ThoughtSpot into your web apps.
@@ -2,7 +2,6 @@ import { EmbedConfig } from './types';
2
2
  export declare let loggedInStatus: boolean;
3
3
  export declare let samlAuthWindow: Window;
4
4
  export declare let samlCompletionPromise: Promise<void>;
5
- export declare let sessionInfo: any;
6
5
  export declare const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
7
6
  export declare const EndPoints: {
8
7
  AUTH_VERIFICATION: string;
@@ -23,6 +22,10 @@ export declare enum AuthStatus {
23
22
  SUCCESS = "SUCCESS",
24
23
  LOGOUT = "LOGOUT"
25
24
  }
25
+ /**
26
+ * Return releaseVersion if available
27
+ */
28
+ export declare function getReleaseVersion(): string;
26
29
  /**
27
30
  * Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
28
31
  */
@@ -1,3 +1,4 @@
1
+ export declare const embedConfig: any;
1
2
  export declare const mockSessionInfo: {
2
3
  sessionId: string;
3
4
  genNo: number;
@@ -8,7 +8,7 @@
8
8
  * @summary Liveboard & visualization embed
9
9
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
10
10
  */
11
- import { DOMSelector } from '../types';
11
+ import { DOMSelector, HostEvent } from '../types';
12
12
  import { V1Embed, ViewConfig } from './ts-embed';
13
13
  /**
14
14
  * The configuration for the embedded Liveboard or visualization page view.
@@ -102,6 +102,12 @@ export declare class LiveboardEmbed extends V1Embed {
102
102
  private updateIFrameHeight;
103
103
  private embedIframeCenter;
104
104
  private setIframeHeightForNonEmbedLiveboard;
105
+ /**
106
+ * Triggers an event to the embedded app
107
+ * @param messageType The event type
108
+ * @param data The payload to send with the message
109
+ */
110
+ trigger(messageType: HostEvent, data?: any): Promise<any>;
105
111
  /**
106
112
  * Render an embedded ThoughtSpot Liveboard or visualization
107
113
  * @param renderOptions An object specifying the Liveboard ID,
@@ -44,8 +44,13 @@ export interface SearchViewConfig extends ViewConfig {
44
44
  * using raw answer data.
45
45
  */
46
46
  hideResults?: boolean;
47
+ /**
48
+ * If set to true, expands all the data sources panel.
49
+ */
50
+ expandAllDataSource?: boolean;
47
51
  /**
48
52
  * If set to true, the Search Assist feature is enabled.
53
+ * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
49
54
  */
50
55
  enableSearchAssist?: boolean;
51
56
  /**
@@ -0,0 +1 @@
1
+ export {};
@@ -29,7 +29,7 @@ export interface FrameParams {
29
29
  * This parameters will be passed on the iframe
30
30
  * as is.
31
31
  */
32
- [key: string]: string | number | boolean;
32
+ [key: string]: string | number | boolean | undefined;
33
33
  }
34
34
  /**
35
35
  * The configuration object for an embedded view.
@@ -142,6 +142,7 @@ export declare class TsEmbed {
142
142
  * @default false
143
143
  */
144
144
  private shouldEncodeUrlQueryParams;
145
+ private defaultHiddenActions;
145
146
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
146
147
  /**
147
148
  * Gets a reference to the root DOM node where
@@ -1,4 +1,6 @@
1
1
  export declare const ERROR_MESSAGE: {
2
2
  INVALID_THOUGHTSPOT_HOST: string;
3
3
  LIVEBOARD_VIZ_ID_VALIDATION: string;
4
+ TRIGGER_TIMED_OUT: string;
5
+ SEARCHEMBED_BETA_WRANING_MESSAGE: string;
4
6
  };
@@ -161,6 +161,12 @@ export interface EmbedConfig {
161
161
  * @version SDK: 1.10.4 | ThoughtSpot: *
162
162
  */
163
163
  detectCookieAccessSlow?: boolean;
164
+ /**
165
+ * Hide beta alert warning message for SearchEmbed.
166
+ *
167
+ * @version SDK: 1.12.0 | ThoughtSpot: *
168
+ */
169
+ suppressSearchEmbedBetaWarning?: boolean;
164
170
  }
165
171
  /**
166
172
  * MessagePayload: Embed event payload: message type, data and status (start/end)
@@ -575,7 +581,14 @@ export declare enum HostEvent {
575
581
  * Gets the current pinboard content.
576
582
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
577
583
  */
578
- getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
584
+ getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
585
+ /**
586
+ * Fires the pin action on an embedded object
587
+ * @param - incase of liveboard embed, takes in an object with vizId as a key
588
+ * can be left empty for search and viz embeds
589
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
590
+ */
591
+ Pin = "pin"
579
592
  }
580
593
  /**
581
594
  * The different visual modes that the data sources panel within
@@ -769,7 +782,11 @@ export declare enum Action {
769
782
  /**
770
783
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
771
784
  */
772
- CreateMonitor = "createMonitor"
785
+ CreateMonitor = "createMonitor",
786
+ /**
787
+ * @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
788
+ */
789
+ ReportError = "reportError"
773
790
  }
774
791
  export interface SessionInterface {
775
792
  sessionId: string;
@@ -42,3 +42,4 @@ export declare const embedEventStatus: {
42
42
  export declare const setAttributes: (element: HTMLElement, attributes: {
43
43
  [key: string]: string | number | boolean;
44
44
  }) => void;
45
+ export declare const checkReleaseVersionInBeta: (releaseVersion: string, suppressBetaWarning: boolean) => boolean;
@@ -121,6 +121,17 @@ const setAttributes = (element, attributes) => {
121
121
  Object.keys(attributes).forEach((key) => {
122
122
  element.setAttribute(key, attributes[key].toString());
123
123
  });
124
+ };
125
+ const isCloudRelease = (version) => version.endsWith('.cl');
126
+ /* For Search Embed: ReleaseVersionInBeta */
127
+ const checkReleaseVersionInBeta = (releaseVersion, suppressBetaWarning) => {
128
+ if (releaseVersion !== '' && !isCloudRelease(releaseVersion)) {
129
+ const splittedReleaseVersion = releaseVersion.split('.');
130
+ const majorVersion = Number(splittedReleaseVersion[0]);
131
+ const isBetaVersion = majorVersion < 8;
132
+ return !suppressBetaWarning && isBetaVersion;
133
+ }
134
+ return false;
124
135
  };
125
136
 
126
137
  /**
@@ -534,6 +545,13 @@ var HostEvent;
534
545
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
535
546
  */
536
547
  HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
548
+ /**
549
+ * Fires the pin action on an embedded object
550
+ * @param - incase of liveboard embed, takes in an object with vizId as a key
551
+ * can be left empty for search and viz embeds
552
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
553
+ */
554
+ HostEvent["Pin"] = "pin";
537
555
  })(HostEvent || (HostEvent = {}));
538
556
  /**
539
557
  * The different visual modes that the data sources panel within
@@ -734,6 +752,10 @@ var Action;
734
752
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
735
753
  */
736
754
  Action["CreateMonitor"] = "createMonitor";
755
+ /**
756
+ * @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
757
+ */
758
+ Action["ReportError"] = "reportError";
737
759
  })(Action || (Action = {}));
738
760
  // eslint-disable-next-line no-shadow
739
761
  var OperationType;
@@ -745,6 +767,8 @@ var OperationType;
745
767
  const ERROR_MESSAGE = {
746
768
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
747
769
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
770
+ TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
771
+ SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
748
772
  };
749
773
 
750
774
  /**
@@ -7232,8 +7256,8 @@ let loggedInStatus = false;
7232
7256
  let samlAuthWindow = null;
7233
7257
  // eslint-disable-next-line import/no-mutable-exports
7234
7258
  let samlCompletionPromise = null;
7235
- // eslint-disable-next-line import/no-mutable-exports
7236
7259
  let sessionInfo = null;
7260
+ let releaseVersion = '';
7237
7261
  const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
7238
7262
  const EndPoints = {
7239
7263
  AUTH_VERIFICATION: '/callosum/v1/session/info',
@@ -7265,12 +7289,20 @@ async function isLoggedIn(thoughtSpotHost) {
7265
7289
  let response = null;
7266
7290
  try {
7267
7291
  response = await fetchSessionInfoService(authVerificationUrl);
7292
+ const sessionInfoResp = await response.json();
7293
+ releaseVersion = sessionInfoResp.releaseVersion;
7268
7294
  }
7269
7295
  catch (e) {
7270
7296
  return false;
7271
7297
  }
7272
7298
  return response.status === 200;
7273
7299
  }
7300
+ /**
7301
+ * Return releaseVersion if available
7302
+ */
7303
+ function getReleaseVersion() {
7304
+ return releaseVersion;
7305
+ }
7274
7306
  function initSession(sessionDetails) {
7275
7307
  sessionInfo = sessionDetails;
7276
7308
  initMixpanel(sessionInfo);
@@ -7736,6 +7768,7 @@ function postIframeMessage(iFrame, message, thoughtSpotHost, channel) {
7736
7768
  channel === null || channel === void 0 ? void 0 : channel.port2,
7737
7769
  ]);
7738
7770
  }
7771
+ const TRIGGER_TIMEOUT = 30000;
7739
7772
  function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
7740
7773
  return new Promise((res, rej) => {
7741
7774
  if (messageType === HostEvent.Reload) {
@@ -7752,11 +7785,16 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
7752
7785
  res(responseData);
7753
7786
  }
7754
7787
  };
7788
+ // Close the messageChannel and resolve the promise if timeout.
7789
+ setTimeout(() => {
7790
+ channel.port1.close();
7791
+ res(new Error(ERROR_MESSAGE.TRIGGER_TIMED_OUT));
7792
+ }, TRIGGER_TIMEOUT);
7755
7793
  return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost, channel);
7756
7794
  });
7757
7795
  }
7758
7796
 
7759
- var name="@thoughtspot/visual-embed-sdk";var version="1.12.0-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/**"];var exports={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","mixpanel-browser":"^2.45.0"};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","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,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};
7797
+ var name="@thoughtspot/visual-embed-sdk";var version="1.12.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/**"];var exports={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","html-react-parser":"^1.4.12","mixpanel-browser":"^2.45.0","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,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};
7760
7798
 
7761
7799
  /**
7762
7800
  * Copyright (c) 2022
@@ -7794,6 +7832,7 @@ class TsEmbed {
7794
7832
  * @default false
7795
7833
  */
7796
7834
  this.shouldEncodeUrlQueryParams = false;
7835
+ this.defaultHiddenActions = [Action.ReportError];
7797
7836
  this.el = this.getDOMNode(domSelector);
7798
7837
  // TODO: handle error
7799
7838
  this.embedConfig = getEmbedConfig();
@@ -7830,7 +7869,7 @@ class TsEmbed {
7830
7869
  error,
7831
7870
  });
7832
7871
  // Log error
7833
- console.log(error);
7872
+ console.error(error);
7834
7873
  }
7835
7874
  /**
7836
7875
  * Extracts the type field from the event payload
@@ -7936,9 +7975,10 @@ class TsEmbed {
7936
7975
  if (disabledActionReason) {
7937
7976
  queryParams[Param.DisableActionReason] = disabledActionReason;
7938
7977
  }
7939
- if (hiddenActions === null || hiddenActions === void 0 ? void 0 : hiddenActions.length) {
7940
- queryParams[Param.HideActions] = hiddenActions;
7941
- }
7978
+ queryParams[Param.HideActions] = [
7979
+ ...this.defaultHiddenActions,
7980
+ ...(hiddenActions !== null && hiddenActions !== void 0 ? hiddenActions : []),
7981
+ ];
7942
7982
  if (Array.isArray(visibleActions)) {
7943
7983
  queryParams[Param.VisibleActions] = visibleActions;
7944
7984
  }
@@ -8499,6 +8539,18 @@ class LiveboardEmbed extends V1Embed {
8499
8539
  url = `${url}${tsPostHashParams}`;
8500
8540
  return url;
8501
8541
  }
8542
+ /**
8543
+ * Triggers an event to the embedded app
8544
+ * @param messageType The event type
8545
+ * @param data The payload to send with the message
8546
+ */
8547
+ trigger(messageType, data = {}) {
8548
+ const dataWithVizId = data;
8549
+ if (this.viewConfig.vizId) {
8550
+ dataWithVizId.vizId = this.viewConfig.vizId;
8551
+ }
8552
+ return super.trigger(messageType, dataWithVizId);
8553
+ }
8502
8554
  /**
8503
8555
  * Render an embedded ThoughtSpot Liveboard or visualization
8504
8556
  * @param renderOptions An object specifying the Liveboard ID,
@@ -8575,7 +8627,7 @@ class SearchEmbed extends TsEmbed {
8575
8627
  */
8576
8628
  getIFrameSrc(answerId, dataSources) {
8577
8629
  var _a;
8578
- const { hideResults, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8630
+ const { hideResults, expandAllDataSource, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8579
8631
  const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
8580
8632
  const queryParams = this.getBaseQueryParams();
8581
8633
  queryParams[Param.HideActions] = [
@@ -8619,6 +8671,11 @@ class SearchEmbed extends TsEmbed {
8619
8671
  const { answerId, dataSources } = this.viewConfig;
8620
8672
  const src = this.getIFrameSrc(answerId, dataSources);
8621
8673
  this.renderIFrame(src, this.viewConfig.frameParams);
8674
+ getAuthPromise().then(() => {
8675
+ if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
8676
+ alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
8677
+ }
8678
+ });
8622
8679
  return this;
8623
8680
  }
8624
8681
  }
package/dist/tsembed.js CHANGED
@@ -127,6 +127,17 @@
127
127
  Object.keys(attributes).forEach((key) => {
128
128
  element.setAttribute(key, attributes[key].toString());
129
129
  });
130
+ };
131
+ const isCloudRelease = (version) => version.endsWith('.cl');
132
+ /* For Search Embed: ReleaseVersionInBeta */
133
+ const checkReleaseVersionInBeta = (releaseVersion, suppressBetaWarning) => {
134
+ if (releaseVersion !== '' && !isCloudRelease(releaseVersion)) {
135
+ const splittedReleaseVersion = releaseVersion.split('.');
136
+ const majorVersion = Number(splittedReleaseVersion[0]);
137
+ const isBetaVersion = majorVersion < 8;
138
+ return !suppressBetaWarning && isBetaVersion;
139
+ }
140
+ return false;
130
141
  };
131
142
 
132
143
  /**
@@ -515,6 +526,13 @@
515
526
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
516
527
  */
517
528
  HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
529
+ /**
530
+ * Fires the pin action on an embedded object
531
+ * @param - incase of liveboard embed, takes in an object with vizId as a key
532
+ * can be left empty for search and viz embeds
533
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
534
+ */
535
+ HostEvent["Pin"] = "pin";
518
536
  })(exports.HostEvent || (exports.HostEvent = {}));
519
537
  (function (DataSourceVisualMode) {
520
538
  /**
@@ -703,6 +721,10 @@
703
721
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
704
722
  */
705
723
  Action["CreateMonitor"] = "createMonitor";
724
+ /**
725
+ * @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
726
+ */
727
+ Action["ReportError"] = "reportError";
706
728
  })(exports.Action || (exports.Action = {}));
707
729
  // eslint-disable-next-line no-shadow
708
730
  var OperationType;
@@ -714,6 +736,8 @@
714
736
  const ERROR_MESSAGE = {
715
737
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
716
738
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
739
+ TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
740
+ SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
717
741
  };
718
742
 
719
743
  /**
@@ -7201,8 +7225,8 @@
7201
7225
  let samlAuthWindow = null;
7202
7226
  // eslint-disable-next-line import/no-mutable-exports
7203
7227
  let samlCompletionPromise = null;
7204
- // eslint-disable-next-line import/no-mutable-exports
7205
7228
  let sessionInfo = null;
7229
+ let releaseVersion = '';
7206
7230
  const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
7207
7231
  const EndPoints = {
7208
7232
  AUTH_VERIFICATION: '/callosum/v1/session/info',
@@ -7232,12 +7256,20 @@
7232
7256
  let response = null;
7233
7257
  try {
7234
7258
  response = await fetchSessionInfoService(authVerificationUrl);
7259
+ const sessionInfoResp = await response.json();
7260
+ releaseVersion = sessionInfoResp.releaseVersion;
7235
7261
  }
7236
7262
  catch (e) {
7237
7263
  return false;
7238
7264
  }
7239
7265
  return response.status === 200;
7240
7266
  }
7267
+ /**
7268
+ * Return releaseVersion if available
7269
+ */
7270
+ function getReleaseVersion() {
7271
+ return releaseVersion;
7272
+ }
7241
7273
  function initSession(sessionDetails) {
7242
7274
  sessionInfo = sessionDetails;
7243
7275
  initMixpanel(sessionInfo);
@@ -7703,6 +7735,7 @@
7703
7735
  channel === null || channel === void 0 ? void 0 : channel.port2,
7704
7736
  ]);
7705
7737
  }
7738
+ const TRIGGER_TIMEOUT = 30000;
7706
7739
  function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
7707
7740
  return new Promise((res, rej) => {
7708
7741
  if (messageType === exports.HostEvent.Reload) {
@@ -7719,11 +7752,16 @@
7719
7752
  res(responseData);
7720
7753
  }
7721
7754
  };
7755
+ // Close the messageChannel and resolve the promise if timeout.
7756
+ setTimeout(() => {
7757
+ channel.port1.close();
7758
+ res(new Error(ERROR_MESSAGE.TRIGGER_TIMED_OUT));
7759
+ }, TRIGGER_TIMEOUT);
7722
7760
  return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost, channel);
7723
7761
  });
7724
7762
  }
7725
7763
 
7726
- var name="@thoughtspot/visual-embed-sdk";var version="1.12.0-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/**"];var exports$1={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","mixpanel-browser":"^2.45.0"};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","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,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};
7764
+ var name="@thoughtspot/visual-embed-sdk";var version="1.12.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/**"];var exports$1={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","html-react-parser":"^1.4.12","mixpanel-browser":"^2.45.0","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,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};
7727
7765
 
7728
7766
  /**
7729
7767
  * Copyright (c) 2022
@@ -7761,6 +7799,7 @@
7761
7799
  * @default false
7762
7800
  */
7763
7801
  this.shouldEncodeUrlQueryParams = false;
7802
+ this.defaultHiddenActions = [exports.Action.ReportError];
7764
7803
  this.el = this.getDOMNode(domSelector);
7765
7804
  // TODO: handle error
7766
7805
  this.embedConfig = getEmbedConfig();
@@ -7797,7 +7836,7 @@
7797
7836
  error,
7798
7837
  });
7799
7838
  // Log error
7800
- console.log(error);
7839
+ console.error(error);
7801
7840
  }
7802
7841
  /**
7803
7842
  * Extracts the type field from the event payload
@@ -7903,9 +7942,10 @@
7903
7942
  if (disabledActionReason) {
7904
7943
  queryParams[Param.DisableActionReason] = disabledActionReason;
7905
7944
  }
7906
- if (hiddenActions === null || hiddenActions === void 0 ? void 0 : hiddenActions.length) {
7907
- queryParams[Param.HideActions] = hiddenActions;
7908
- }
7945
+ queryParams[Param.HideActions] = [
7946
+ ...this.defaultHiddenActions,
7947
+ ...(hiddenActions !== null && hiddenActions !== void 0 ? hiddenActions : []),
7948
+ ];
7909
7949
  if (Array.isArray(visibleActions)) {
7910
7950
  queryParams[Param.VisibleActions] = visibleActions;
7911
7951
  }
@@ -8461,6 +8501,18 @@
8461
8501
  url = `${url}${tsPostHashParams}`;
8462
8502
  return url;
8463
8503
  }
8504
+ /**
8505
+ * Triggers an event to the embedded app
8506
+ * @param messageType The event type
8507
+ * @param data The payload to send with the message
8508
+ */
8509
+ trigger(messageType, data = {}) {
8510
+ const dataWithVizId = data;
8511
+ if (this.viewConfig.vizId) {
8512
+ dataWithVizId.vizId = this.viewConfig.vizId;
8513
+ }
8514
+ return super.trigger(messageType, dataWithVizId);
8515
+ }
8464
8516
  /**
8465
8517
  * Render an embedded ThoughtSpot Liveboard or visualization
8466
8518
  * @param renderOptions An object specifying the Liveboard ID,
@@ -8537,7 +8589,7 @@
8537
8589
  */
8538
8590
  getIFrameSrc(answerId, dataSources) {
8539
8591
  var _a;
8540
- const { hideResults, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8592
+ const { hideResults, expandAllDataSource, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8541
8593
  const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
8542
8594
  const queryParams = this.getBaseQueryParams();
8543
8595
  queryParams[Param.HideActions] = [
@@ -8581,6 +8633,11 @@
8581
8633
  const { answerId, dataSources } = this.viewConfig;
8582
8634
  const src = this.getIFrameSrc(answerId, dataSources);
8583
8635
  this.renderIFrame(src, this.viewConfig.frameParams);
8636
+ getAuthPromise().then(() => {
8637
+ if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
8638
+ alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
8639
+ }
8640
+ });
8584
8641
  return this;
8585
8642
  }
8586
8643
  }
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.12.0-alpha.1",
3
+ "version": "1.12.1",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -45,7 +45,9 @@
45
45
  "algoliasearch": "^4.10.5",
46
46
  "classnames": "^2.3.1",
47
47
  "eventemitter3": "^4.0.7",
48
- "mixpanel-browser": "^2.45.0"
48
+ "html-react-parser": "^1.4.12",
49
+ "mixpanel-browser": "^2.45.0",
50
+ "use-deep-compare-effect": "^1.8.1"
49
51
  },
50
52
  "devDependencies": {
51
53
  "@mdx-js/mdx": "^1.6.22",
package/lib/src/auth.d.ts CHANGED
@@ -2,7 +2,6 @@ import { EmbedConfig } from './types';
2
2
  export declare let loggedInStatus: boolean;
3
3
  export declare let samlAuthWindow: Window;
4
4
  export declare let samlCompletionPromise: Promise<void>;
5
- export declare let sessionInfo: any;
6
5
  export declare const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
7
6
  export declare const EndPoints: {
8
7
  AUTH_VERIFICATION: string;
@@ -23,6 +22,10 @@ export declare enum AuthStatus {
23
22
  SUCCESS = "SUCCESS",
24
23
  LOGOUT = "LOGOUT"
25
24
  }
25
+ /**
26
+ * Return releaseVersion if available
27
+ */
28
+ export declare function getReleaseVersion(): string;
26
29
  /**
27
30
  * Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
28
31
  */