@thoughtspot/visual-embed-sdk 1.8.0-alpha.2 → 1.8.0-plugins.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copyright (c) 2021
3
+ *
4
+ * Embed a ThoughtSpot pinboard or visualization
5
+ * https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
6
+ * https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
7
+ *
8
+ * @summary Pinboard & visualization embed
9
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
10
+ */
11
+ import { DOMSelector } from '../types';
12
+ import { V1Embed, ViewConfig } from './ts-embed';
13
+ /**
14
+ * The configuration for the embedded pinboard or visualization page view.
15
+ * @Category Pinboards and Charts
16
+ */
17
+ export interface PinboardViewConfig extends ViewConfig {
18
+ /**
19
+ * If set to true, the embedded object container dynamically resizes
20
+ * according to the height of the pinboard.
21
+ */
22
+ fullHeight?: boolean;
23
+ /**
24
+ * This is the minimum height(in pixels) for a full height pinboard.
25
+ * Setting this height helps resolves issues with empty pinboards and
26
+ * other screens navigable from a pinboard.
27
+ * @default 500
28
+ * * _since 1.5.0_
29
+ */
30
+ defaultHeight?: number;
31
+ /**
32
+ * If set to true, the context menu in visualizations will be enabled.
33
+ */
34
+ enableVizTransformations?: boolean;
35
+ /**
36
+ * The pinboard to display in the embedded view.
37
+ */
38
+ pinboardId: string;
39
+ /**
40
+ * The visualization within the pinboard to display.
41
+ */
42
+ vizId?: string;
43
+ /**
44
+ * If set to true, all filter chips from a
45
+ * pinboard page will be read-only (no X buttons)
46
+ */
47
+ preventPinboardFilterRemoval?: boolean;
48
+ /**
49
+ * An array of vizids which should be visible when this pinboard loads.
50
+ * The ids not in this array are hidden from the pinboard.
51
+ * _since: 1.6.0_
52
+ */
53
+ pinboardVisibleVizs?: string[];
54
+ }
55
+ /**
56
+ * Embed a ThoughtSpot pinboard or visualization
57
+ * @Category Pinboards and Charts
58
+ */
59
+ export declare class PinboardEmbed extends V1Embed {
60
+ protected viewConfig: PinboardViewConfig;
61
+ private defaultHeight;
62
+ constructor(domSelector: DOMSelector, viewConfig: PinboardViewConfig);
63
+ /**
64
+ * Construct a map of params to be passed on to the
65
+ * embedded pinboard or visualization.
66
+ */
67
+ private getEmbedParams;
68
+ /**
69
+ * Construct the URL of the embedded ThoughtSpot pinboard or visualization
70
+ * to be loaded within the iframe.
71
+ * @param pinboardId The GUID of the pinboard.
72
+ * @param vizId The optional GUID of a visualization within the pinboard.
73
+ * @param runtimeFilters A list of runtime filters to be applied to
74
+ * the pinboard or visualization on load.
75
+ */
76
+ private getIFrameSrc;
77
+ /**
78
+ * Set the iframe height as per the computed height received
79
+ * from the ThoughtSpot app.
80
+ * @param data The event payload
81
+ */
82
+ private updateIFrameHeight;
83
+ private embedIframeCenter;
84
+ private handleRouteChangeFullHeightPinboard;
85
+ /**
86
+ * Render an embedded ThoughtSpot pinboard or visualization
87
+ * @param renderOptions An object specifying the pinboard ID,
88
+ * visualization ID and the runtime filters.
89
+ */
90
+ render(): PinboardEmbed;
91
+ }
@@ -6,7 +6,7 @@
6
6
  * @summary Base classes
7
7
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8
8
  */
9
- import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig } from '../types';
9
+ import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig, Plugin } from '../types';
10
10
  export interface LayoutConfig {
11
11
  }
12
12
  /**
@@ -76,6 +76,13 @@ export interface ViewConfig {
76
76
  additionalFlags?: {
77
77
  [key: string]: string | number | boolean;
78
78
  };
79
+ /**
80
+ * Provide a list of plugins, the plugins are executed in the order
81
+ * provided below,
82
+ *
83
+ * @version alpha
84
+ */
85
+ plugins?: Plugin[];
79
86
  }
80
87
  /**
81
88
  * Base class for embedding v2 experience
@@ -121,6 +128,7 @@ export declare class TsEmbed {
121
128
  */
122
129
  private shouldEncodeUrlQueryParams;
123
130
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
131
+ private registerPlugins;
124
132
  /**
125
133
  * Gets a reference to the root DOM node where
126
134
  * the embedded content will appear.
@@ -122,6 +122,7 @@ export interface EmbedConfig {
122
122
  queueMultiRenders?: boolean;
123
123
  /**
124
124
  * Dynamic CSS Url to be injected in the loaded application.
125
+ * You would also need to set `style-src` in the CSP settings.
125
126
  * @version 1.6.0 or later
126
127
  * @default ''
127
128
  */
@@ -379,7 +380,8 @@ export declare enum HostEvent {
379
380
  */
380
381
  SetVisibleVizs = "SetPinboardVisibleVizs",
381
382
  /**
382
- * Update the runtime filters
383
+ * Update the runtime filters. The runtime filters passed here are extended
384
+ * on to the existing runtime filters if they exist.
383
385
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
384
386
  * @version 1.8.0 or later
385
387
  */
@@ -535,3 +537,9 @@ export declare enum OperationType {
535
537
  export interface AnswerServiceType {
536
538
  getAnswer?: (offset: number, batchSize: number) => any;
537
539
  }
540
+ export interface Plugin {
541
+ name: string;
542
+ handlers: {
543
+ [key in EmbedEvent]: (payload: any) => void;
544
+ };
545
+ }
File without changes
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright: ThoughtSpot Inc. 2012-2016
3
+ * Author: Shashank Singh (sunny@thoughtspot.com)
4
+ *
5
+ * @fileoverview ThoughtSpot Javascript API for use of ThoughtSpot in external webpages.
6
+ */
7
+ import { AuthType } from '../types';
8
+ export declare enum Events {
9
+ THOUGHTSPOT_AUTH_EXPIRED = "ThoughtspotAuthExpired",
10
+ EXPORT_VIZ_DATA_TO_PARENT = "exportVizDataToParent",
11
+ ALERT = "alert",
12
+ EXPORT_VIZ_DATA_TO_CHILD = "exportVizDataToChild",
13
+ GET_DATA = "getData"
14
+ }
15
+ declare type Callback = (...args: any[]) => void;
16
+ declare function checkIfLoggedIn(tsHost: string, callback: Callback): void;
17
+ declare function initialize(onInitialized: Callback, onAuthExpiration: Callback, _thoughtspotHost: string, authType: AuthType): void;
18
+ declare function notifyOnAuthExpiration(): void;
19
+ export { initialize, checkIfLoggedIn, notifyOnAuthExpiration };
@@ -379,7 +379,8 @@ var HostEvent;
379
379
  */
380
380
  HostEvent["SetVisibleVizs"] = "SetPinboardVisibleVizs";
381
381
  /**
382
- * Update the runtime filters
382
+ * Update the runtime filters. The runtime filters passed here are extended
383
+ * on to the existing runtime filters if they exist.
383
384
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
384
385
  * @version 1.8.0 or later
385
386
  */
@@ -8894,7 +8895,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
8894
8895
  }
8895
8896
  }
8896
8897
 
8897
- var name="@thoughtspot/visual-embed-sdk";var version="1.8.0-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/**"];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/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","mixpanel-browser":"^2.41.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};
8898
+ var name="@thoughtspot/visual-embed-sdk";var version="1.8.0-plugins.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/**"];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/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag plugins","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","mixpanel-browser":"^2.41.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};
8898
8899
 
8899
8900
  /**
8900
8901
  * Copyright (c) 2022
@@ -8937,6 +8938,7 @@ class TsEmbed {
8937
8938
  this.isError = false;
8938
8939
  this.viewConfig = viewConfig;
8939
8940
  this.shouldEncodeUrlQueryParams = this.embedConfig.shouldEncodeUrlQueryParams;
8941
+ this.registerPlugins(viewConfig === null || viewConfig === void 0 ? void 0 : viewConfig.plugins);
8940
8942
  if (!this.embedConfig.suppressNoCookieAccessAlert) {
8941
8943
  this.on(EmbedEvent.NoCookieAccess, () => {
8942
8944
  // eslint-disable-next-line no-alert
@@ -8944,6 +8946,17 @@ class TsEmbed {
8944
8946
  });
8945
8947
  }
8946
8948
  }
8949
+ registerPlugins(plugins) {
8950
+ if (!plugins) {
8951
+ return;
8952
+ }
8953
+ plugins.forEach((plugin) => {
8954
+ Object.keys(plugin.handlers).forEach((eventName) => {
8955
+ const listener = plugin[eventName];
8956
+ this.on(eventName, listener);
8957
+ });
8958
+ });
8959
+ }
8947
8960
  /**
8948
8961
  * Gets a reference to the root DOM node where
8949
8962
  * the embedded content will appear.
package/dist/tsembed.js CHANGED
@@ -360,7 +360,8 @@
360
360
  */
361
361
  HostEvent["SetVisibleVizs"] = "SetPinboardVisibleVizs";
362
362
  /**
363
- * Update the runtime filters
363
+ * Update the runtime filters. The runtime filters passed here are extended
364
+ * on to the existing runtime filters if they exist.
364
365
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
365
366
  * @version 1.8.0 or later
366
367
  */
@@ -8863,7 +8864,7 @@
8863
8864
  }
8864
8865
  }
8865
8866
 
8866
- var name="@thoughtspot/visual-embed-sdk";var version="1.8.0-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/**"];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/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","mixpanel-browser":"^2.41.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};
8867
+ var name="@thoughtspot/visual-embed-sdk";var version="1.8.0-plugins.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/**"];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/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag plugins","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","mixpanel-browser":"^2.41.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};
8867
8868
 
8868
8869
  /**
8869
8870
  * Copyright (c) 2022
@@ -8906,6 +8907,7 @@
8906
8907
  this.isError = false;
8907
8908
  this.viewConfig = viewConfig;
8908
8909
  this.shouldEncodeUrlQueryParams = this.embedConfig.shouldEncodeUrlQueryParams;
8910
+ this.registerPlugins(viewConfig === null || viewConfig === void 0 ? void 0 : viewConfig.plugins);
8909
8911
  if (!this.embedConfig.suppressNoCookieAccessAlert) {
8910
8912
  this.on(exports.EmbedEvent.NoCookieAccess, () => {
8911
8913
  // eslint-disable-next-line no-alert
@@ -8913,6 +8915,17 @@
8913
8915
  });
8914
8916
  }
8915
8917
  }
8918
+ registerPlugins(plugins) {
8919
+ if (!plugins) {
8920
+ return;
8921
+ }
8922
+ plugins.forEach((plugin) => {
8923
+ Object.keys(plugin.handlers).forEach((eventName) => {
8924
+ const listener = plugin[eventName];
8925
+ this.on(eventName, listener);
8926
+ });
8927
+ });
8928
+ }
8916
8929
  /**
8917
8930
  * Gets a reference to the root DOM node where
8918
8931
  * the embedded content will appear.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.8.0-alpha.2",
3
+ "version": "1.8.0-plugins.0",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -34,7 +34,7 @@
34
34
  "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",
35
35
  "posttest": "cat ./coverage/lcov.info | coveralls",
36
36
  "prepublishOnly": "npm run test; npm run tsc; npm run bundle-dts; npm run build",
37
- "publish-dev": "npm publish --tag dev",
37
+ "publish-dev": "npm publish --tag plugins",
38
38
  "publish-prod": "npm publish --tag latest"
39
39
  },
40
40
  "peerDependencies": {
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copyright (c) 2021
3
+ *
4
+ * Embed a ThoughtSpot pinboard or visualization
5
+ * https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
6
+ * https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
7
+ *
8
+ * @summary Pinboard & visualization embed
9
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
10
+ */
11
+ import { DOMSelector } from '../types';
12
+ import { V1Embed, ViewConfig } from './ts-embed';
13
+ /**
14
+ * The configuration for the embedded pinboard or visualization page view.
15
+ * @Category Pinboards and Charts
16
+ */
17
+ export interface PinboardViewConfig extends ViewConfig {
18
+ /**
19
+ * If set to true, the embedded object container dynamically resizes
20
+ * according to the height of the pinboard.
21
+ */
22
+ fullHeight?: boolean;
23
+ /**
24
+ * This is the minimum height(in pixels) for a full height pinboard.
25
+ * Setting this height helps resolves issues with empty pinboards and
26
+ * other screens navigable from a pinboard.
27
+ * @default 500
28
+ * * _since 1.5.0_
29
+ */
30
+ defaultHeight?: number;
31
+ /**
32
+ * If set to true, the context menu in visualizations will be enabled.
33
+ */
34
+ enableVizTransformations?: boolean;
35
+ /**
36
+ * The pinboard to display in the embedded view.
37
+ */
38
+ pinboardId: string;
39
+ /**
40
+ * The visualization within the pinboard to display.
41
+ */
42
+ vizId?: string;
43
+ /**
44
+ * If set to true, all filter chips from a
45
+ * pinboard page will be read-only (no X buttons)
46
+ */
47
+ preventPinboardFilterRemoval?: boolean;
48
+ /**
49
+ * An array of vizids which should be visible when this pinboard loads.
50
+ * The ids not in this array are hidden from the pinboard.
51
+ * _since: 1.6.0_
52
+ */
53
+ pinboardVisibleVizs?: string[];
54
+ }
55
+ /**
56
+ * Embed a ThoughtSpot pinboard or visualization
57
+ * @Category Pinboards and Charts
58
+ */
59
+ export declare class PinboardEmbed extends V1Embed {
60
+ protected viewConfig: PinboardViewConfig;
61
+ private defaultHeight;
62
+ constructor(domSelector: DOMSelector, viewConfig: PinboardViewConfig);
63
+ /**
64
+ * Construct a map of params to be passed on to the
65
+ * embedded pinboard or visualization.
66
+ */
67
+ private getEmbedParams;
68
+ /**
69
+ * Construct the URL of the embedded ThoughtSpot pinboard or visualization
70
+ * to be loaded within the iframe.
71
+ * @param pinboardId The GUID of the pinboard.
72
+ * @param vizId The optional GUID of a visualization within the pinboard.
73
+ * @param runtimeFilters A list of runtime filters to be applied to
74
+ * the pinboard or visualization on load.
75
+ */
76
+ private getIFrameSrc;
77
+ /**
78
+ * Set the iframe height as per the computed height received
79
+ * from the ThoughtSpot app.
80
+ * @param data The event payload
81
+ */
82
+ private updateIFrameHeight;
83
+ private embedIframeCenter;
84
+ private handleRouteChangeFullHeightPinboard;
85
+ /**
86
+ * Render an embedded ThoughtSpot pinboard or visualization
87
+ * @param renderOptions An object specifying the pinboard ID,
88
+ * visualization ID and the runtime filters.
89
+ */
90
+ render(): PinboardEmbed;
91
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Copyright (c) 2021
3
+ *
4
+ * Embed a ThoughtSpot pinboard or visualization
5
+ * https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
6
+ * https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
7
+ *
8
+ * @summary Pinboard & visualization embed
9
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
10
+ */
11
+ import { ERROR_MESSAGE } from '../errors';
12
+ import { EmbedEvent, Param, } from '../types';
13
+ import { getFilterQuery, getQueryParamString } from '../utils';
14
+ import { V1Embed } from './ts-embed';
15
+ /**
16
+ * Embed a ThoughtSpot pinboard or visualization
17
+ * @Category Pinboards and Charts
18
+ */
19
+ export class PinboardEmbed extends V1Embed {
20
+ // eslint-disable-next-line no-useless-constructor
21
+ constructor(domSelector, viewConfig) {
22
+ super(domSelector, viewConfig);
23
+ this.defaultHeight = 500;
24
+ /**
25
+ * Set the iframe height as per the computed height received
26
+ * from the ThoughtSpot app.
27
+ * @param data The event payload
28
+ */
29
+ this.updateIFrameHeight = (data) => {
30
+ this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
31
+ };
32
+ this.embedIframeCenter = (data, responder) => {
33
+ const obj = this.getIframeCenter();
34
+ responder({ type: EmbedEvent.EmbedIframeCenter, data: obj });
35
+ };
36
+ this.handleRouteChangeFullHeightPinboard = (data) => {
37
+ if (data.data.canvasState !== 'EMBED' &&
38
+ data.data.canvasState !== 'pinboard') {
39
+ this.setIFrameHeight(this.defaultHeight);
40
+ }
41
+ };
42
+ }
43
+ /**
44
+ * Construct a map of params to be passed on to the
45
+ * embedded pinboard or visualization.
46
+ */
47
+ getEmbedParams() {
48
+ const params = this.getBaseQueryParams();
49
+ const { enableVizTransformations, fullHeight, preventPinboardFilterRemoval, defaultHeight, pinboardVisibleVizs, } = this.viewConfig;
50
+ if (fullHeight === true) {
51
+ params[Param.fullHeight] = true;
52
+ }
53
+ if (defaultHeight) {
54
+ this.defaultHeight = defaultHeight;
55
+ }
56
+ if (enableVizTransformations !== undefined) {
57
+ params[Param.EnableVizTransformations] = enableVizTransformations.toString();
58
+ }
59
+ if (preventPinboardFilterRemoval) {
60
+ params[Param.preventPinboardFilterRemoval] = true;
61
+ }
62
+ if (pinboardVisibleVizs) {
63
+ params[Param.PinboardVisibleVizs] = pinboardVisibleVizs;
64
+ }
65
+ params[Param.livedBoardEmbed] = true;
66
+ const queryParams = getQueryParamString(params, true);
67
+ return queryParams;
68
+ }
69
+ /**
70
+ * Construct the URL of the embedded ThoughtSpot pinboard or visualization
71
+ * to be loaded within the iframe.
72
+ * @param pinboardId The GUID of the pinboard.
73
+ * @param vizId The optional GUID of a visualization within the pinboard.
74
+ * @param runtimeFilters A list of runtime filters to be applied to
75
+ * the pinboard or visualization on load.
76
+ */
77
+ getIFrameSrc(pinboardId, vizId, runtimeFilters) {
78
+ const filterQuery = getFilterQuery(runtimeFilters || []);
79
+ const queryParams = this.getEmbedParams();
80
+ const queryString = [filterQuery, queryParams]
81
+ .filter(Boolean)
82
+ .join('&');
83
+ let url = `${this.getV1EmbedBasePath(queryString, true, false, false)}/viz/${pinboardId}`;
84
+ if (vizId) {
85
+ url = `${url}/${vizId}`;
86
+ }
87
+ return url;
88
+ }
89
+ /**
90
+ * Render an embedded ThoughtSpot pinboard or visualization
91
+ * @param renderOptions An object specifying the pinboard ID,
92
+ * visualization ID and the runtime filters.
93
+ */
94
+ render() {
95
+ const { pinboardId, vizId, runtimeFilters } = this.viewConfig;
96
+ if (!pinboardId && !vizId) {
97
+ this.handleError(ERROR_MESSAGE.PINBOARD_VIZ_ID_VALIDATION);
98
+ }
99
+ if (this.viewConfig.fullHeight === true) {
100
+ this.on(EmbedEvent.RouteChange, this.handleRouteChangeFullHeightPinboard);
101
+ this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
102
+ this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
103
+ }
104
+ super.render();
105
+ const src = this.getIFrameSrc(pinboardId, vizId, runtimeFilters);
106
+ this.renderV1Embed(src);
107
+ return this;
108
+ }
109
+ }
110
+ //# sourceMappingURL=pinboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinboard.js","sourceRoot":"","sources":["../../../src/embed/pinboard.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * @summary Base classes
7
7
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8
8
  */
9
- import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig } from '../types';
9
+ import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig, Plugin } from '../types';
10
10
  export interface LayoutConfig {
11
11
  }
12
12
  /**
@@ -76,6 +76,13 @@ export interface ViewConfig {
76
76
  additionalFlags?: {
77
77
  [key: string]: string | number | boolean;
78
78
  };
79
+ /**
80
+ * Provide a list of plugins, the plugins are executed in the order
81
+ * provided below,
82
+ *
83
+ * @version alpha
84
+ */
85
+ plugins?: Plugin[];
79
86
  }
80
87
  /**
81
88
  * Base class for embedding v2 experience
@@ -121,6 +128,7 @@ export declare class TsEmbed {
121
128
  */
122
129
  private shouldEncodeUrlQueryParams;
123
130
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
131
+ private registerPlugins;
124
132
  /**
125
133
  * Gets a reference to the root DOM node where
126
134
  * the embedded content will appear.
@@ -12,6 +12,7 @@ import { EmbedEvent, Param, } from '../types';
12
12
  import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
13
13
  import { getProcessData } from '../utils/processData';
14
14
  import { processTrigger } from '../utils/processTrigger';
15
+ // eslint-disable-next-line import/no-cycle
15
16
  import pkgInfo from '../../package.json';
16
17
  import { getAuthPromise, getEmbedConfig, renderInQueue } from './base';
17
18
  const { version } = pkgInfo;
@@ -47,6 +48,7 @@ export class TsEmbed {
47
48
  this.isError = false;
48
49
  this.viewConfig = viewConfig;
49
50
  this.shouldEncodeUrlQueryParams = this.embedConfig.shouldEncodeUrlQueryParams;
51
+ this.registerPlugins(viewConfig === null || viewConfig === void 0 ? void 0 : viewConfig.plugins);
50
52
  if (!this.embedConfig.suppressNoCookieAccessAlert) {
51
53
  this.on(EmbedEvent.NoCookieAccess, () => {
52
54
  // eslint-disable-next-line no-alert
@@ -54,6 +56,17 @@ export class TsEmbed {
54
56
  });
55
57
  }
56
58
  }
59
+ registerPlugins(plugins) {
60
+ if (!plugins) {
61
+ return;
62
+ }
63
+ plugins.forEach((plugin) => {
64
+ Object.keys(plugin.handlers).forEach((eventName) => {
65
+ const listener = plugin[eventName];
66
+ this.on(eventName, listener);
67
+ });
68
+ });
69
+ }
57
70
  /**
58
71
  * Gets a reference to the root DOM node where
59
72
  * the embedded content will appear.
@@ -1 +1 @@
1
- {"version":3,"file":"ts-embed.js","sourceRoot":"","sources":["../../../src/embed/ts-embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts-embed.js","sourceRoot":"","sources":["../../../src/embed/ts-embed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAiB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACH,aAAa,EAEb,cAAc,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACH,QAAQ,EAER,eAAe,EACf,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,MAAM,GAET,MAAM,SAAS,CAAC;AAEjB,OAAO,EACH,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,QAAQ;AACR,QAAQ;AACR,IAAI,EACJ,QAAQ,EAER,eAAe,EACf,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,MAAM,GAKT,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAiB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACH,aAAa,EAEb,cAAc,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACH,QAAQ,EAER,eAAe,EACf,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,MAAM,GAGT,MAAM,SAAS,CAAC;AAEjB,OAAO,EACH,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,QAAQ;AACR,QAAQ;AACR,IAAI,EACJ,QAAQ,EAER,eAAe,EACf,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,MAAM,GAKT,CAAC"}
@@ -122,6 +122,7 @@ export interface EmbedConfig {
122
122
  queueMultiRenders?: boolean;
123
123
  /**
124
124
  * Dynamic CSS Url to be injected in the loaded application.
125
+ * You would also need to set `style-src` in the CSP settings.
125
126
  * @version 1.6.0 or later
126
127
  * @default ''
127
128
  */
@@ -379,7 +380,8 @@ export declare enum HostEvent {
379
380
  */
380
381
  SetVisibleVizs = "SetPinboardVisibleVizs",
381
382
  /**
382
- * Update the runtime filters
383
+ * Update the runtime filters. The runtime filters passed here are extended
384
+ * on to the existing runtime filters if they exist.
383
385
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
384
386
  * @version 1.8.0 or later
385
387
  */
@@ -535,3 +537,9 @@ export declare enum OperationType {
535
537
  export interface AnswerServiceType {
536
538
  getAnswer?: (offset: number, batchSize: number) => any;
537
539
  }
540
+ export interface Plugin {
541
+ name: string;
542
+ handlers: {
543
+ [key in EmbedEvent]: (payload: any) => void;
544
+ };
545
+ }
package/lib/src/types.js CHANGED
@@ -267,7 +267,8 @@ export var HostEvent;
267
267
  */
268
268
  HostEvent["SetVisibleVizs"] = "SetPinboardVisibleVizs";
269
269
  /**
270
- * Update the runtime filters
270
+ * Update the runtime filters. The runtime filters passed here are extended
271
+ * on to the existing runtime filters if they exist.
271
272
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
272
273
  * @version 1.8.0 or later
273
274
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,QAwBX;AAxBD,WAAY,QAAQ;IAChB;;OAEG;IACH,yBAAa,CAAA;IACb;;OAEG;IACH,4BAAgB,CAAA;IAChB;;OAEG;IACH,6BAAiB,CAAA;IACjB;;OAEG;IACH,qCAAyB,CAAA;IACzB;;;;;OAKG;IACH,2BAAe,CAAA;AACnB,CAAC,EAxBW,QAAQ,KAAR,QAAQ,QAwBnB;AAqHD;;GAEG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,eAyDX;AAzDD,WAAY,eAAe;IACvB;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,wCAAqB,CAAA;IACrB;;OAEG;IACH,8CAA2B,CAAA;IAC3B;;OAEG;IACH,0CAAuB,CAAA;IACvB;;OAEG;IACH,4CAAyB,CAAA;IACzB;;OAEG;IACH,4CAAyB,CAAA;IACzB;;OAEG;IACH,oCAAiB,CAAA;IACjB;;OAEG;IACH,4BAAS,CAAA;IACT;;OAEG;IACH,4BAAS,CAAA;AACb,CAAC,EAzDW,eAAe,KAAf,eAAe,QAyD1B;AAsBD;;GAEG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,UAsHX;AAtHD,WAAY,UAAU;IAClB;;;OAGG;IACH,2BAAa,CAAA;IACb;;;OAGG;IACH,mCAAqB,CAAA;IACrB;;;OAGG;IACH,2BAAa,CAAA;IACb;;;OAGG;IACH,2BAAa,CAAA;IACb;;;OAGG;IACH,+CAAiC,CAAA;IACjC;;OAEG;IACH,2CAA6B,CAAA;IAC7B;;;;;OAKG;IACH,qCAAuB,CAAA;IACvB;;;OAGG;IACH,uDAAyC,CAAA;IACzC;;;;OAIG;IACH,mDAAqC,CAAA;IACrC;;;;OAIG;IACH,2CAA6B,CAAA;IAC7B;;;;OAIG;IACH,yDAA2C,CAAA;IAC3C;;;OAGG;IACH,6BAAe,CAAA;IACf;;;OAGG;IACH,6BAAe,CAAA;IACf;;OAEG;IACH,mDAAqC,CAAA;IACrC;;;;OAIG;IACH,0CAA4B,CAAA;IAC5B;;;;OAIG;IACH,qDAAuC,CAAA;IACvC;;OAEG;IACH,0CAA4B,CAAA;IAC5B;;;OAGG;IACH,8CAAgC,CAAA;IAChC;;;;;OAKG;IACH,+CAAiC,CAAA;IACjC;;;;OAIG;IACH,2CAA6B,CAAA;IAC7B;;;OAGG;IACH,wCAA0B,CAAA;IAC1B;;;OAGG;IACH,0CAA4B,CAAA;AAChC,CAAC,EAtHW,UAAU,KAAV,UAAU,QAsHrB;AAED;;;;;;GAMG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,SAuCX;AAvCD,WAAY,SAAS;IACjB;;;;OAIG;IACH,8BAAiB,CAAA;IACjB;;;;;;;OAOG;IACH,2CAA8B,CAAA;IAC9B;;;OAGG;IACH,8BAAiB,CAAA;IACjB;;;OAGG;IACH,8BAAiB,CAAA;IACjB;;;;;OAKG;IACH,sDAAyC,CAAA;IACzC;;;;OAIG;IACH,0DAA6C,CAAA;AACjD,CAAC,EAvCW,SAAS,KAAT,SAAS,QAuCpB;AAED;;;GAGG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,oBAaX;AAbD,WAAY,oBAAoB;IAC5B;;OAEG;IACH,uCAAe,CAAA;IACf;;OAEG;IACH,8CAAsB,CAAA;IACtB;;OAEG;IACH,2CAAmB,CAAA;AACvB,CAAC,EAbW,oBAAoB,KAApB,oBAAoB,QAa/B;AAED;;;GAGG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,KA0BX;AA1BD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,0CAAiC,CAAA;IACjC,yCAAgC,CAAA;IAChC,4CAAmC,CAAA;IACnC,kCAAyB,CAAA;IACzB,uEAA8D,CAAA;IAC9D,oCAA2B,CAAA;IAC3B,mCAA0B,CAAA;IAC1B,oCAA2B,CAAA;IAC3B,kCAAyB,CAAA;IACzB,wDAA+C,CAAA;IAC/C,kDAAyC,CAAA;IACzC,kCAAyB,CAAA;IACzB,6DAAoD,CAAA;IACpD,oBAAW,CAAA;IACX,gDAAuC,CAAA;IACvC,wCAA+B,CAAA;IAC/B,4CAAmC,CAAA;IACnC,6CAAoC,CAAA;IACpC,sCAA6B,CAAA;IAC7B,+BAAsB,CAAA;IACtB,0CAAiC,CAAA;IACjC,wCAA+B,CAAA;IAC/B,yCAAgC,CAAA;IAChC,sCAA6B,CAAA;AACjC,CAAC,EA1BW,KAAK,KAAL,KAAK,QA0BhB;AAED;;;GAGG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,MAiFX;AAjFD,WAAY,MAAM;IACd,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,uCAA6B,CAAA;IAC7B,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;IACvB,iCAAuB,CAAA;IACvB,oCAA0B,CAAA;IAC1B,qCAA2B,CAAA;IAC3B,mCAAyB,CAAA;IACzB,yCAA+B,CAAA;IAC/B,yBAAe,CAAA;IACf,iCAAuB,CAAA;IACvB,6CAAmC,CAAA;IACnC,mCAAyB,CAAA;IACzB,qCAA2B,CAAA;IAC3B,yCAA+B,CAAA;IAC/B,2CAAiC,CAAA;IACjC,uCAA6B,CAAA;IAC7B,+BAAqB,CAAA;IACrB,uCAA6B,CAAA;IAC7B,mDAAyC,CAAA;IACzC,+BAAqB,CAAA;IACrB,yCAA+B,CAAA;IAC/B,yCAA+B,CAAA;IAC/B,2CAAiC,CAAA;IACjC,yCAA+B,CAAA;IAC/B,iCAAuB,CAAA;IACvB,iCAAuB,CAAA;IACvB,iCAAuB,CAAA;IACvB,6BAAmB,CAAA;IACnB,6BAAmB,CAAA;IACnB,mCAAyB,CAAA;IACzB,uBAAa,CAAA;IACb,iCAAuB,CAAA;IACvB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;IACnB,+BAAqB,CAAA;IACrB,2BAAiB,CAAA;IACjB,mDAAyC,CAAA;IACzC;;OAEG;IACH,uCAA6B,CAAA;IAC7B,wCAA8B,CAAA;IAC9B,6CAAmC,CAAA;IACnC,2DAAiD,CAAA;IACjD,qBAAW,CAAA;IACX,uCAA6B,CAAA;IAC7B,uCAA6B,CAAA;IAC7B,6BAAmB,CAAA;IACnB,oDAA0C,CAAA;IAC1C,oDAA0C,CAAA;IAC1C,iEAAuD,CAAA;IACvD,yDAA+C,CAAA;IAC/C,8CAAoC,CAAA;IACpC,wDAA8C,CAAA;IAC9C,mDAAyC,CAAA;IACzC,6BAAmB,CAAA;IACnB,yCAA+B,CAAA;IAC/B,qDAA2C,CAAA;IAC3C;;OAEG;IACH,mCAAyB,CAAA;IACzB;;OAEG;IACH,yCAA+B,CAAA;IAC/B;;OAEG;IACH,qDAA2C,CAAA;IAC3C;;OAEG;IACH,2CAAiC,CAAA;IACjC;;OAEG;IACH,qCAA2B,CAAA;AAC/B,CAAC,EAjFW,MAAM,KAAN,MAAM,QAiFjB;AAQD,qCAAqC;AACrC,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,sDAAqC,CAAA;IACrC,sEAAqD,CAAA;AACzD,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/utils/plugin.ts"],"names":[],"mappings":""}
@@ -439,6 +439,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
439
439
  queueMultiRenders?: boolean;
440
440
  /**
441
441
  * Dynamic CSS Url to be injected in the loaded application.
442
+ * You would also need to set `style-src` in the CSP settings.
442
443
  * @version 1.6.0 or later
443
444
  * @default ''
444
445
  */
@@ -696,7 +697,8 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
696
697
  */
697
698
  SetVisibleVizs = "SetPinboardVisibleVizs",
698
699
  /**
699
- * Update the runtime filters
700
+ * Update the runtime filters. The runtime filters passed here are extended
701
+ * on to the existing runtime filters if they exist.
700
702
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
701
703
  * @version 1.8.0 or later
702
704
  */
@@ -852,6 +854,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
852
854
  export interface AnswerServiceType {
853
855
  getAnswer?: (offset: number, batchSize: number) => any;
854
856
  }
857
+ export interface Plugin {
858
+ name: string;
859
+ handlers: {
860
+ [key in EmbedEvent]: (payload: any) => void;
861
+ };
862
+ }
855
863
  }
856
864
 
857
865
  declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
@@ -863,7 +871,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
863
871
  * @summary Base classes
864
872
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
865
873
  */
866
- import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig } from '@thoughtspot/visual-embed-sdk/types';
874
+ import { DOMSelector, HostEvent, EmbedEvent, MessageCallback, Action, RuntimeFilter, EmbedConfig, Plugin } from '@thoughtspot/visual-embed-sdk/types';
867
875
  export interface LayoutConfig {
868
876
  }
869
877
  /**
@@ -933,6 +941,13 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
933
941
  additionalFlags?: {
934
942
  [key: string]: string | number | boolean;
935
943
  };
944
+ /**
945
+ * Provide a list of plugins, the plugins are executed in the order
946
+ * provided below,
947
+ *
948
+ * @version alpha
949
+ */
950
+ plugins?: Plugin[];
936
951
  }
937
952
  /**
938
953
  * Base class for embedding v2 experience
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.8.0-alpha.2",
3
+ "version": "1.8.0-plugins.0",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -34,7 +34,7 @@
34
34
  "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",
35
35
  "posttest": "cat ./coverage/lcov.info | coveralls",
36
36
  "prepublishOnly": "npm run test; npm run tsc; npm run bundle-dts; npm run build",
37
- "publish-dev": "npm publish --tag dev",
37
+ "publish-dev": "npm publish --tag plugins",
38
38
  "publish-prod": "npm publish --tag latest"
39
39
  },
40
40
  "peerDependencies": {
@@ -28,10 +28,12 @@ import {
28
28
  RuntimeFilter,
29
29
  Param,
30
30
  EmbedConfig,
31
+ Plugin,
31
32
  } from '../types';
32
33
  import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
33
34
  import { getProcessData } from '../utils/processData';
34
35
  import { processTrigger } from '../utils/processTrigger';
36
+ // eslint-disable-next-line import/no-cycle
35
37
  import pkgInfo from '../../package.json';
36
38
  import { getAuthPromise, getEmbedConfig, renderInQueue } from './base';
37
39
 
@@ -117,6 +119,13 @@ export interface ViewConfig {
117
119
  * @version 1.8.0
118
120
  */
119
121
  additionalFlags?: { [key: string]: string | number | boolean };
122
+ /**
123
+ * Provide a list of plugins, the plugins are executed in the order
124
+ * provided below,
125
+ *
126
+ * @version alpha
127
+ */
128
+ plugins?: Plugin[];
120
129
  }
121
130
 
122
131
  /**
@@ -185,6 +194,8 @@ export class TsEmbed {
185
194
  this.isError = false;
186
195
  this.viewConfig = viewConfig;
187
196
  this.shouldEncodeUrlQueryParams = this.embedConfig.shouldEncodeUrlQueryParams;
197
+ this.registerPlugins(viewConfig?.plugins);
198
+
188
199
  if (!this.embedConfig.suppressNoCookieAccessAlert) {
189
200
  this.on(EmbedEvent.NoCookieAccess, () => {
190
201
  // eslint-disable-next-line no-alert
@@ -195,6 +206,18 @@ export class TsEmbed {
195
206
  }
196
207
  }
197
208
 
209
+ private registerPlugins(plugins: Plugin[]) {
210
+ if (!plugins) {
211
+ return;
212
+ }
213
+ plugins.forEach((plugin) => {
214
+ Object.keys(plugin.handlers).forEach((eventName: EmbedEvent) => {
215
+ const listener = plugin[eventName];
216
+ this.on(eventName, listener);
217
+ });
218
+ });
219
+ }
220
+
198
221
  /**
199
222
  * Gets a reference to the root DOM node where
200
223
  * the embedded content will appear.
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ import {
25
25
  DataSourceVisualMode,
26
26
  Action,
27
27
  EmbedConfig,
28
+ Plugin,
28
29
  } from './types';
29
30
 
30
31
  export {
package/src/types.ts CHANGED
@@ -135,6 +135,7 @@ export interface EmbedConfig {
135
135
 
136
136
  /**
137
137
  * Dynamic CSS Url to be injected in the loaded application.
138
+ * You would also need to set `style-src` in the CSP settings.
138
139
  * @version 1.6.0 or later
139
140
  * @default ''
140
141
  */
@@ -402,7 +403,8 @@ export enum HostEvent {
402
403
  */
403
404
  SetVisibleVizs = 'SetPinboardVisibleVizs',
404
405
  /**
405
- * Update the runtime filters
406
+ * Update the runtime filters. The runtime filters passed here are extended
407
+ * on to the existing runtime filters if they exist.
406
408
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
407
409
  * @version 1.8.0 or later
408
410
  */
@@ -565,3 +567,10 @@ export enum OperationType {
565
567
  export interface AnswerServiceType {
566
568
  getAnswer?: (offset: number, batchSize: number) => any;
567
569
  }
570
+
571
+ export interface Plugin {
572
+ name: string;
573
+ handlers: {
574
+ [key in EmbedEvent]: (payload: any) => void;
575
+ };
576
+ }
@@ -0,0 +1,2 @@
1
+
2
+